問題タブ [pygame-tick]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ゲームのメインループのpygame clock.tick()とフレームレート
すべての pygame には、次のようなゲーム ループがあります。
のAPIによるとget_ticks()
:
pygame.init() が呼び出されてからのミリ秒数を返します。pygame が初期化される前は、これは常に 0 です。
しかしclock.tick()
:
このメソッドは、フレームごとに 1 回呼び出す必要があります。の数を計算します。前回の呼び出しからミリ秒が経過しました。
オプションのフレームレート引数を渡すと、関数は遅延して、指定されたティック/秒よりも遅くゲームを実行し続けます。これは、ゲームの実行速度を制限するために使用できます。フレームごとに 1 回 Clock.tick(40) を呼び出すことにより、プログラムは 1 秒あたり 40 フレームを超えて実行されることはありません。
少し混乱していますが、それclock.tick()
はゲームの開始から経過したミリ秒数に直接影響するということですか?
つまりclock.tick(40)
、1 秒あたり 40 フレームを「発行」し、while ループが 1 秒あたり 40 回実行されるということですか?
fps と ticks の関係がわかりません。
更新: 実際にテストしたところ、orget_ticks()
にどのような fps を指定しても、mls 単位で REAL 時間が返されます。tick() - 0.1
30
60
したがって、ゲームの実行速度またはwhile loop が自分自身を更新する頻度をclock.tick()
設定するだけのようです。
しかし、私はまだ少し混乱しています。他の回答は大歓迎です。
python - Pygame - 3 秒間のイベントを 1 回だけ実行する
私は PyGame の初心者で、スペース シューティング ゲームを作成しています。このゲームの一部はパワーアップであり、プレイヤーが特定のパワーアップを拾ったときに、プレイヤーが 3 秒間射撃できないようにしたいと考えています。撮影はマウスクリックで行います。
パワーアップを拾うことができます。プレイヤーが最後に拾ったパワーアップはわかっていますが、イベントに苦労しています。私が実装を考えている方法は次のとおりです。
- Can't Shoot パワーアップを拾う -> 完了
- マウス ボタンをブロックする
- ゲームの残りの部分がまだ実行されている間、3 秒間待ちます
- マウス ボタンのブロックを解除します。
待機などの Python 関数が役に立たないことは承知しています。
アイデア/提案はありますか?ありがとう
python - Pygame 3.4 で一時停止機能を動作させることができません
Pong ゲームを作成していますが、何を試しても、CTRL + C を押すと停止する一時停止システムを実装できません。
私は試した:
と:
と:
CTRL + C が押されるまでゲームを一時停止するにはどうすればよいですか?
python - pygameとの一貫性のない動き
プログラムを実行するたびに円を同じ場所に移動させようとしているという問題があります。しかし、コードを実行するたびに、ドットが常に整列するとは限りません。実行ごとに比較するために、同じ場所にテストサークルがあります。赤い円は白い円を完全に覆うはずですが、プログラムを実行するたびに変化します。すべての時間を計るために pygame.time.get_ticks() を使用しているため、カーネルをリセットしています。
python - pygameでカーソルの動きでスプライト画像を移動するには?
今私がやったことの下に、示されているようにスプライトを作成するだけです..さらに興味深いことをするために、スレッド化を考えて、カーソル位置をチェックするスレッドを追加しました。 display.update 私は初心者なので、多くの点で間違っている可能性があります...だからご容赦ください.... よろしくお願いします
***以下は私の最新のコードです----------回答に従って更新されました***確認してください
python - 更新ループ内の描画ループ (1 秒あたり)
私のコードは単純化されました:
それがすべきことは、UPS 値に等しい数の更新が毎秒存在することです。各更新後、描画されるフレーム数は FPU と等しくなります。FPS が UPS*FPU であることを意味します。
私の質問は、それをスムーズで流暢に設定する方法です。滑らかさは、この質問の重要な質問です。
私は、それぞれが互いにgame.draw()
(時間的に)等しく離れている必要があります。
draw * FPUの回数だけ更新が行われるため、動作しませんClock = pygame.clock
。Clock.tick(UPS*FPU)
クロック内のクロックを使用する必要がありますか? それはうまくいくでしょうか?(試してみましたが、結果についてはわかりません-すべての極端な場合に機能するかどうか。)
それとも時計の内側だけですか?それはうまくいくでしょうか?
tick.tick_busy_loop()の使用を検討しているpygame.Clockがありますが、それは実験の問題であり、この質問の問題ではありません。
python - Pong のループの速度を制御しようとしています
私は卓球ゲームを特定の fps でループを実行させようとしていますが、いくつか試してみましたがうまくいきませんでした。自分で出て
ループを特定の速度で実行して、よりスムーズに見えるようにしようとしています.dxまたは変更したときに移動する位置を編集すると、分厚いように見えるため、パドルの代わりに10 xダウン(見える分厚い)私はそれを1倍下に何度も動かしたいので、10倍と同じくらい速く下に移動しますが、よりスムーズです
完全なコード