Как я могу создать цикл, основанный на времени, в pygame

#python #pygame

#python #pygame

Вопрос:

У меня пока есть игра, которая работает со скоростью 60 кадров в секунду, но мне нужно, чтобы у персонажа была анимация, когда он ходит. Я просматривал исходные тексты в течение нескольких дней, но не нашел ничего о том, как заставить этот цикл работать на основе времени. Если бы вы могли создать пример и объяснить, как это работает, я был бы очень благодарен!

Комментарии:

1. Я предлагаю вам показать несколько примеров кода.

2. Попросите персонажа отслеживать, в каком кадре (игры) он начал свою анимацию, а затем отобразить следующий кадр анимации, когда пройдет достаточно игровых кадров.

Ответ №1:

Меняйте анимацию каждые 1 секунду (1000 мс) — используя тики pygame.

 current_time = pygame.time.get_ticks()

next_move = current_time   1000 # 1s = 1000ms

# mainloop
while True:

   current_time = pygame.time.get_ticks()

   if next_move <= current_time:
      change_animation()
      next_move = current_time   1000
  

Этот код не зависит от FPS.