制作一个基本的游戏,我试图让我的角色在按下空间时跳跃
我有一个模拟的重力,当空间释放时将其拉下来
但当我向下推空间时,它上升并且没有停止
我希望它只能持续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
就像我说的那样,当空间被释放时,这个代码会使精灵上升,当空间被释放时它会下降但是当它被按下时我希望它等待一秒然后使精灵回落,即使空格键仍然是向下的
请帮忙!!
谢谢
解决方法:
你应该介绍两件事.国家和速度.
为了让玩家摔倒,我们希望他只有当他在地面时才会跳.所以我们定义了2个状态.站立和跳跃.现在按空格只会让玩家跳起来,如果他的状态是STANDING.
为了让球员像球一样坠落,我们引入速度.当玩家在地面上时,我们将速度设置为0.按空格键时,将速度更改为100.
在每个循环中,如果玩家状态为JUMPING,我们会根据地球的引力降低速度.
要检查的最后一件事是,当玩家到达地面时,你应该将速度设置为0,将玩家状态设置为STANDING.