私の卓球ゲームでは、誰かが得点する (ボールが左または右に出る) たびに、ボールの位置が画面の中央にリセットされ、移動する前に 1 秒待機します。その 1 秒間に、小さなアニメーションが進行中です。
私の問題は次のとおりです。アニメーションの途中でゲームを一時停止すると、オブジェクトは更新されず、一時停止テキストのみが描画されますが、時間が進み続けます。十分な時間を待つと、アニメーションはちょうど停止しますゲームの一時停止を解除した後。これが私の言いたいことです。これはボールの更新です:
def update(self, dt):
now = pygame.time.get_ticks() / 1000
# if time elapsed since the ball got out >= BALL_WAIT_TIME
if now - self._spawn_time >= BALL_WAIT_TIME:
self.rect = self.calcnewpos(dt)
self.handle_collision()
# spawn animation
else:
step = 255 / (FPS * BALL_WAIT_TIME)
value = int(self._frame * step)
rgb = (value, value, value)
self._draw_ball(rgb)
self._frame += 1
http://pygame.org/docs/ref/time.html#pygame.time.get_ticksから:
pygame.time.get_ticks()
pygame.init() が呼び出されてからのミリ秒数を返します。pygame が初期化される前は、これは常に 0 です。
そのため、ゲームが一時停止している間は何も描画または更新されませんが、pygame.time.get_ticks() は からの経過時間を返しpygame.init
ます。どうすればこれを解決できますか? わかりにくいかもしれませんが、必要に応じて残りのコードを投稿します。