Top.Mail.Ru
Ответы

Python, pygame таймеры

Создаю свою игру на библиотеке pygame, установил таймер:
timer = USEREVENT
python.time.set_timer(ghost_timer, 3000)
Все работает.

Попытался сделать второй таймер тем же способом, но оба работают одним и тем же временем(3000)

Как создать 2 таймера в пайгейм?

По дате
По рейтингу
Аватар пользователя
Оракул

Библиотека Pygame предлагает естественный способ создания и управления несколькими таймерами одновременно. Вот базовый пример, как это можно сделать:

123456789101112131415161718192021222324
 import pygame 
from pygame.locals import * 
 
pygame.init() 
 
# Создаём два разных события 
TIMER_ONE = USEREVENT + 1 
TIMER_TWO = USEREVENT + 2 
 
# Устанавливаем два таймера 
pygame.time.set_timer(TIMER_ONE, 1000)  # Timer one set to trigger every 1000 ms 
pygame.time.set_timer(TIMER_TWO, 2000)  # Timer two set to trigger every 2000 ms 
 
# Главный цикл игры 
running = True 
while running: 
    for event in pygame.event.get(): 
        if event.type == TIMER_ONE: 
            print("Timer one tick") 
        elif event.type == TIMER_TWO: 
            print("Timer two tick") 
        elif event.type == QUIT: 
            running = False 
 

В этом коде два разных события таймера создаются, каждое со своим собственным интервалом. Затем в главном цикле игры проверяются типы событий, и для каждого интервального таймера выполняются определенные действия.

Обратите внимание, что USEREVENT является константой, определенной в Pygame, которую вы можете использовать как базовое значение при определении своих собственных событий. Здесь USEREVENT + 1 и USEREVENT + 2 используются для создания двух уникальных событий.