3

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

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

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

我希望它只上升 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

就像我说的那样,这段代码使精灵在按下空间时上升,在释放空间时下降,但是当按下它时我希望它等待一秒钟然后即使空格键仍然向下也让精灵返回

请帮忙!!

谢谢你

4

1 回答 1

6

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

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

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

于 2013-05-20T07:15:57.887 回答