Как создавать несколько таймеров в pygame?

Пользователь

от eudora , в категории: Python , 8 месяцев назад

Как создавать несколько таймеров в pygame?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от maymie , 7 месяцев назад

@eudora 

В Pygame можно создать несколько таймеров, используя модуль pygame.time. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import pygame

pygame.init()
screen = pygame.display.set_mode((400, 400))

# Создаем два таймера
timer1 = pygame.time.set_timer(pygame.USEREVENT + 1, 1000) # таймер 1, идентификатор 1, 1000 мс (1 сек)
timer2 = pygame.time.set_timer(pygame.USEREVENT + 2, 2000) # таймер 2, идентификатор 2, 2000 мс (2 сек)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.USEREVENT + 1:
            print("Таймер 1 сработал!")
        elif event.type == pygame.USEREVENT + 2:
            print("Таймер 2 сработал!")


Здесь мы создаем два таймера с помощью функции pygame.time.set_timer(). Функция принимает два аргумента: идентификатор таймера (в данном случае мы используем pygame.USEREVENT + 1 и pygame.USEREVENT + 2) и время в миллисекундах, через которое таймер должен сработать.


Затем мы запускаем бесконечный цикл while, в котором проверяем события в очереди с помощью функции pygame.event.get(). Если событие имеет тип pygame.QUIT, то мы выходим из программы. Если событие имеет тип pygame.USEREVENT + 1, то сработал первый таймер, и мы выводим сообщение "Таймер 1 сработал!". Аналогично, если событие имеет тип pygame.USEREVENT + 2, то сработал второй таймер, и мы выводим сообщение "Таймер 2 сработал!".


Обратите внимание, что мы используем константу pygame.USEREVENT при определении идентификаторов таймеров. Это позволяет нам создавать свои собственные типы событий, чтобы не пересекаться с типами событий, используемыми в Pygame.