Я хотел бы знать, есть ли способ использовать poll()
или get()
, не удаляя события из очереди.Pygame очередь событий
В моей игре я проверяю ввод в разных местах (не только в основном цикле), а иногда мне нужно проверить одно и то же событие в разных местах, но когда я его проверю, как только он удалит его из очереди. Я попытался использовать peek()
, но проблема в том, что я не могу получить ключ, соответствующий событию.
while 1:
event = pygame.event.poll()
if event.type == KEYDOWN:
return event.key
else:
pass
#works but removes event from the queue
Это может получить ключ, соответствующий этому событию, но с peek()
он не может:
pygame.event.peek(pygame.KEYDOWN).key
#dosent work
Однако я не могу использовать первый метод, потому что удаляет события из очереди, так что я могу Не проверять ключевые события в других местах программы.
Я плохо понимаю, как работает queue
, поэтому, возможно, я просто ошибаюсь, но я попробовал первый в другом месте и только в первый раз, когда я проверил событие, в котором он работал.
Моя цель - проверить события в разных классах в моей игре.
Спасибо за вашу помощь
ОК спасибо за ваш ответ так что я буду иметь один основной цикл и отправить событие, как и аргументы для моих других функций. Также, как работает почта? Я читаю документацию, но я не могу это понять. – John