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

avatar
conyieie
28 февраля 2020 в 01:42
1034
1
1

я новичок в pygame, и мне интересно, что такое цикл событий и что часы делают в этой ситуации, например, что такое 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)

avatar
Rabbid76
28 февраля 2020 в 07:22
2

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

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

выполняется 60 раз в секунду.

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

например. Следующий цикл печатает имена клавиш после нажатия:

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))