pygame的“定时事件”功能

时间:2019-05-03 13:41:26

标签: python pygame

我从来没有找到关于如何在pygame中创建定时事件的明确答案,

我想创建一个具有持续时间和冷却时间的定时动作。 (在本示例中,分别为1和2)。 类似于游戏中的逃避或冲刺技能

我已经编辑了代码,并且:

dash_now = 0
dash_cooldown = 2
    if dash:
        while dash_now < 2 and dash_cooldown >= 0:
            dash_now +- clock.tick(60) / 1000
            player.dash()
            firing == False
        else:
            dash = not dash
            dash_now ==  0
            dash_cooldown == 3
            dash_cooldown +- clock.tick(60) / 1000

到目前为止还不能正常工作...我肯定是在犯一个愚蠢的错误,我看不到它是什么。

1 个答案:

答案 0 :(得分:2)

实际上非常简单:

假设您有一个计时器变量

timer = 0

此后,在每次迭代中,您添加自上一帧以来经过的时间:

timer += my_clock.tick(60) / 1000

最后,在代码的后面,您可以检查它是否满足特定阈值。

if timer >= 2:
    # Insert whatever you want

    timer = 0

因此,只要您不希望整个运动陷入循环,就可以像这样大大简化代码。

self.dash_delay = 0
self.is_dashing = 0

def dash(self):
        if dash_delay < 0 and self.is_dashing < 2:

            self.rect.x += self.speedx * 2
            self.rect.y += self.speedy * 2
            self.is_dashing +- clock.tick(60) / 1000

        elif self.is_dashing > 2:
            self.dash_delay = 3
            self.is_dashing = 0

        self.dash_delay -= clock.tick(60) / 1000