在Pygame中制作精灵跳转

时间:2013-05-20 06:39:28

标签: python python-2.7 event-handling pygame sprite

制作一个基本游戏,我试图让我的角色在按下空格时跳跃

我有一个模拟的重力,当空间释放时将其拉下来

但当我向下推空间时,它会上升并且不会停止

我希望它只能持续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

就像我说的那样,当空间被按下时,精灵会上升,当空间被释放时它会下降但是当它被按下时我希望它等待一秒钟,然后让精灵恢复下来,即使空格键仍然是

请帮忙!!

谢谢

1 个答案:

答案 0 :(得分:5)

您应该介绍两件事。状态和速度。

为了让玩家摔倒,我们希望他只有当他在地面时才会跳。所以我们定义了2个状态。 STANDINGJUMPING。现在按空格只会让玩家跳跃,如果状态为STANDING

为了让玩家像球一样摔倒,我们会介绍velocity。当玩家在地面上时,我们将速度设置为0.按空格键时,将速度更改为100。 在每个循环中,如果玩家状态为JUMPING,我们会根据地球的引力减少velocity。 最后要检查的是,当玩家到达地面时,你应该将velocity设置为0,将玩家状态设置为STANDING