制作一个基本游戏,我试图让我的角色在按下空格时跳跃
我有一个模拟的重力,当空间释放时将其拉下来
但当我向下推空间时,它会上升并且不会停止
我希望它只能持续1秒钟,然后再回去
以下是我的按键处理代码段:
key = pygame.key.get_pressed()
if key[pygame.K_LEFT]:
self.rect.x -= 30
if key[pygame.K_RIGHT]:
self.rect.x += 30
if key[pygame.K_SPACE]:
self.rect.y += -20
if key[pygame.K_SPACE] == False:
self.rect.y += 20
就像我说的那样,当空间被按下时,精灵会上升,当空间被释放时它会下降但是当它被按下时我希望它等待一秒钟,然后让精灵恢复下来,即使空格键仍然是
请帮忙!!
谢谢
答案 0 :(得分:5)
您应该介绍两件事。状态和速度。
为了让玩家摔倒,我们希望他只有当他在地面时才会跳。所以我们定义了2个状态。 STANDING
和JUMPING
。现在按空格只会让玩家跳跃,如果状态为STANDING
。
为了让玩家像球一样摔倒,我们会介绍velocity
。当玩家在地面上时,我们将速度设置为0.按空格键时,将速度更改为100。
在每个循环中,如果玩家状态为JUMPING
,我们会根据地球的引力减少velocity
。
最后要检查的是,当玩家到达地面时,你应该将velocity
设置为0,将玩家状态设置为STANDING
。