在Pygame中制作精灵跳转

Ser*_*ial 3 python pygame sprite event-handling python-2.7

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

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

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

我希望它只能持续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
Run Code Online (Sandbox Code Playgroud)

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

请帮忙!!

谢谢

Bar*_*ski 5

你应该介绍两件事.国家和速度.

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

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