【发布时间】:2021-03-25 11:00:19
【问题描述】:
我正处于使用 pygame 制作 Jetpack Joyride 风格游戏的早期阶段。 我目前有当你按下空格时,它会向上移动角色,当你不按住空格时,角色会掉到地上,但问题是它没有地面,我的屏幕周围没有边框,所以角色可能会消失. 到目前为止,我为游戏编写的代码如下,我试图添加那些边框/块,无论它叫什么,但我就是找不到可行的方法。如果有人可以提供帮助,将非常感谢
import pygame
pygame.init()
width=800
height=800
x=(width*0.45)
y=(height*0.6)
bgspeed=30
x_change=0
y_change=0
speed=2.5
mainDisplay=pygame.display.set_mode((width,height))
pygame.display.set_caption("jetpack")
bg=pygame.image.load("bg.png")
bg=pygame.transform.scale(bg,(width,height))
bgX=0
bgX2=bg.get_width()
dababy_jetpack=pygame.image.load("dababy.png")
dababy_jetpack.convert()
rect=dababy_jetpack.get_rect()
rect.center=0,0
player_rect=dababy_jetpack.get_rect(topleft=(200,200))
mainDisplay_rect=mainDisplay.get_rect()
jetpacker=pygame.image.load("dababy.png")
jetpacker=pygame.transform.scale(jetpacker,(100,200))
mainDisplay_rect=mainDisplay.get_rect()
player_rect=jetpacker.get_rect()
def redrawWindow():
mainDisplay.blit(bg,(bgX,0))
mainDisplay.blit(bg,(bgX2,0))
pygame.display.update()
clock=pygame.time.Clock()
def test(x,y):
mainDisplay.blit(jetpacker,(x,y))
crashed=False
while not crashed:
redrawWindow()
bgX-=1.4
bgX2-=1.4
if bgX<bg.get_width()*-1:
bgX=bg.get_width()
elif bgX2<bg.get_width()*-1:
bgX2=bg.get_width()
for event in pygame.event.get():
if event.type==pygame.QUIT:
crashed=True
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_SPACE:
y_change=-1*speed
elif event.type==pygame.KEYUP:
if event.key==pygame.K_SPACE:
y_change=0.7*speed
y+=y_change
test(x,y)
player_rect.clamp_ip(mainDisplay_rect)
pygame.display.update()
clock.tick(60)
pygame.quit()
quit()
【问题讨论】:
标签: python python-3.x pygame border helper