让某段代码运行指定的时间

时间:2013-07-07 19:23:47

标签: python if-statement pygame livewires

我正在使用pygame和livewires开发一种类似于galactica的游戏。但是,在这个游戏中,你可以使用气球代替敌人。每按25次鼠标,我就会使用设置为值为1的dy属性将气球向下移动一行。如果气球到达底部,则游戏结束。但是,我在弄清楚如何让它仅运行1秒或2秒时遇到一些麻烦。因为我没有办法“计时”结果,所以dy值无限期地设置为1.因此,在前25次点击之后,该行只是继续向下移动。这没关系,但就像我说的那样,这不是我想要的结果。

以下是此操作到目前为止的代码:

if games.mouse.is_pressed(0):
        new_missile = missile(self.left + 6, self.top)
        games.screen.add(new_missile)
        MISSILE_WAIT = 0 #25
        CLICKS += 1
        if CLICKS == 25:
            SPEED = 1
            CLICKS = 0

CLICKS和MISSILE_WAIT是在此代码块之前创建并设置为初始值0的全局变量。我想弄清楚的是算法放在if CLICKS语句下面。我查看了时间模块上的python文档,但似乎找不到任何适合此目的的文档。此外,我不认为使用while循环可以在这里工作,因为计算机会立即检查这些结果,而我需要一个实际的计时器。

1 个答案:

答案 0 :(得分:0)

我不确定我是否得到了你的问题,但我的建议是:

class Foo():
    def __init__(self):
        self.start_time = time.time()
        self.time_delay = 25 # seconds

    def my_balloon_func(self):
        if(time.time() - self.start_time) > self.time_delay:
            self.start_time = time.time()
        else:
            # do something