【发布时间】:2013-10-06 04:11:30
【问题描述】:
在我的乒乓球比赛中,每当有人得分(球向左或向右出球)时,球的位置都会重置到屏幕中间,并在移动前等待一秒钟。在那一秒钟内,我正在播放一个小动画。
我的问题是这样的:如果我在动画中间暂停游戏,即使没有更新任何对象并且只绘制了暂停文本,时间也会滚滚而来。如果我等待足够的时间,动画在我取消暂停游戏后立即停止。这就是我的意思。这是球更新:
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 以来经过的时间。我该如何解决这个问题?抱歉,如果这有点难以理解,如果需要,我会发布其余代码。
【问题讨论】:
标签: python animation time pygame