0

ゲームで pygame.Timer を実行しており、描画関数を毎秒 32 回呼び出しています。描画メソッドは、画面上のすべての要素から位置を取得し、それに応じてそれらをブリットします。ただし、主人公は他のオブジェクトの動きよりもゆっくりと歩き回ってほしいです。

専用のタイマーを設定する必要がありますか、それとも同じフレームを数回ブリットする必要がありますか? それを行うより良い方法はありますか?正しい方向へのプッシュは素晴らしいでしょう:)

(誰かが興味を持っている場合は、図面に送信するフレームを現在制御しているコードを次に示します: http://github.com/kallepersson/subterranean-ng/blob/master/Player.py#L88 )

4

1 に答える 1

1

歩行サイクル フレーム (すべてのモーションと同様) は、フレーム カウントではなく、絶対時間の関数である必要があります。例えば:

def walk_frame(millis, frames_per_second, framecount, start_millis=0):
    millis_per_frame = 1000 / frames_per_second
    elapsed_millis = millis - start_millis
    total_frames = elapsed_millis / millis_per_frame
    return total_frames % framecount
于 2009-10-29T13:37:12.167 に答える