0

我正在开发一个气球弹出类型的游戏,玩家有一个发射器,他们可以在屏幕上移动并按下鼠标左键发射导弹并弹出气球。我想要做的是,在发射 25 枚导弹后,使用 dy 属性向下移动一排气球。除了运动的时间之外,我已经完成了所有工作。我唯一能弄清楚的是如何让行无限期地移动,但我无法让它停止。我只想让它动一下。我该怎么做这样的事情?顺便说一句,如果有帮助,我正在使用 pygame 和 livewires。

这是用于定义单击鼠标左键时导弹发射的模块:

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:
            a = 0
            while a < 10000000:
                SPEED = 2
                a += 1

目前,我尝试使用一个巨大的增量计数器,但这只是冻结了游戏几秒钟,并且没有移动气球。所以我基本上是想找到一种方法来告诉 python 在一定时间内使 SPEED 等于 2。

4

1 回答 1

0

while问题是当你的循环运行时,游戏中不会发生任何其他事情。

一种方法是将变量设置为您希望气球移动的秒数。

    if CLICKS == 25:
        self.balloon_moves = 2.0 # move for 2 seconds

move_balloons然后从主循环的某个地方调用一个函数/方法,在那里你有一个变量dt表示自上一帧以来的时间

def move_baloons(self, dt):
    if self.ballon_moves <=0:
        return
    self.balloon_moves -= dt
        for b in self.balloon_list:
            b.dy += shiftamount*dt
于 2013-07-08T01:50:20.910 回答