所以我有这个平台游戏,我在pygame编程。我有一个跳转方法,我想在跳转之间添加一个dely。那样我就不会一直跳进天花板。继承人的代码
def jump(self):
if (self.onGround == True):
return
self.velocity = 10
self.onGround = False
这就是在主游戏循环中调用它的原因:
if (event.key==pygame.K_UP):
player.jump()
答案 0 :(得分:0)
跟踪您上次跳跃的时间,或下次允许跳跃的时间(使用pygame.time
):
def __init__(self, …):
# ...
self.next_jump = 0
def jump(self):
if pygame.time.get_ticks() < self.next_jump:
return
# ...
self.next_jump = pygame.time.getticks() + 500
根据您使用的循环类型(传统事件循环,帧速率限制循环,无限帧速率循环),可能有更好的答案,例如,设置计时器或使用Clock
,但这适用于任何类型。