私は pygame と livewires を使用してギャラクティカ タイプのゲームに取り組んでいます。ただし、このゲームでは、敵の代わりに、自分が発射する風船があります。マウスを 25 回クリックするたびに、値 1 に設定された dy プロパティを使用して、風船を 1 行下に移動させます。風船が一番下に到達すると、ゲームは終了します。ただし、これを 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 ステートメントの下に置くアルゴリズムです。time モジュールに関する python ドキュメントを調べましたが、この目的に合ったものを見つけることができないようです。また、実際のタイマーが必要な間、コンピューターはこれらの結果を即座にチェックするため、ここでは while ループを使用してもうまくいかないと思います。