В моей игре в понг, когда кто-то забивает (мяч уходит влево или вправо), положение мяча возвращается в середину экрана, и он ждет одну секунду перед перемещением. В течение одной секунды у меня немного анимации.Остановить время без замораживания программы
Моя проблема в том, что если я приостанавливаю игру в середине анимации, , хотя ни один из объектов не обновляется, и нарисован только текст паузы, время продолжает катиться. , анимация просто останавливается сразу после того, как я приостанавливаю игру. Вот что я имею в виду. Это обновление шар:
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()
Возвращает количество millisconds начиная с pygame.init() называется. Перед Pygame инициализируется это всегда будет 0.
Так что даже если ничего не рисуется или обновляться в то время как игра приостановлена, pygame.time.get_ticks() будет возвращать время, прошедшее с pygame.init
. Как я могу это решить? Извините, если это немного сложно понять, я отправлю остальную часть кода, если это необходимо.
Это было немного сложнее, но ваш ответ получил меня в правильном пути. Благодарю. – Jovito