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問題は、ループの実行中にゲーム内で他に何も起こらないことです。

1 つの方法は、バルーンを移動する秒数に変数を設定することです。

    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 に答える