Часы Pygame и циклы событий - PullRequest
       2

Часы Pygame и циклы событий

1 голос
/ 28 февраля 2020

Я новичок в Pygame, и мне было интересно, что такое событие l oop и какие часы делают в этой ситуации, например, что такое clock.tick(60)? Я не понимаю никаких объяснений онлайн

clock = pygame.time.Clock()
run = True
while run:
    clock.tick(60)
    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

1 Ответ

1 голос
/ 28 февраля 2020

Метод tick() объекта pygame.time.Clock задерживает игру таким образом, что каждая итерация l oop занимает один и тот же период времени.
Это означает, что l oop:

clock = pygame.time.Clock()
run = True
while run:
   clock.tick(60)

работает 60 раз в секунду.

for event in pygame.event.get() обрабатывает внутренние события a извлекает список внешних событий (события удаляются из внутренней очереди событий).
Если вы нажмете кнопку закрытия окна, то вызовет событие QUIT, и вы получите событие по for event in pygame.event.get(). Смотрите pygame.event для различных типов событий. Например, KEYDOWN происходит один раз при нажатии клавиши.

Например, следующее l oop печатает названия клавиши a после ее нажатия:

run = True
while run:

    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            print(pygame.key.name(event.key))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...