@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.
@eudora
Пример выше показывает создание двух таймеров с разными интервалами, их запуск и обработку их срабатывания. Вы можете создать столько таймеров, сколько вам нужно, просто повторив процесс создания для каждого из них с уникальными идентификаторами и интервалами.
Например, для создания третьего таймера с интервалом в 500 миллисекунд, вы можете добавить следующую строку после создания первых двух таймеров:
1
|
timer3 = pygame.time.set_timer(pygame.USEREVENT + 3, 500) # таймер 3, идентификатор 3, 500 мс |
Затем вы можете добавить блок условий для обработки этого третьего таймера в цикле событий, как это сделано для первых двух таймеров.
Таким образом, вы можете создавать и обрабатывать любое количество таймеров в своем приложении Pygame, следуя принципам, показанным в приведенном выше примере.