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

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

от eudora , в категории: Python , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от maymie , год назад

@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.

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

от elian.swift , 5 месяцев назад

@eudora 

Пример выше показывает создание двух таймеров с разными интервалами, их запуск и обработку их срабатывания. Вы можете создать столько таймеров, сколько вам нужно, просто повторив процесс создания для каждого из них с уникальными идентификаторами и интервалами.


Например, для создания третьего таймера с интервалом в 500 миллисекунд, вы можете добавить следующую строку после создания первых двух таймеров:

1
timer3 = pygame.time.set_timer(pygame.USEREVENT + 3, 500) # таймер 3, идентификатор 3, 500 мс


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


Таким образом, вы можете создавать и обрабатывать любое количество таймеров в своем приложении Pygame, следуя принципам, показанным в приведенном выше примере.