Привет, я создаю игру, где у меня несколько этапов. Я хочу сделать так, чтобы каждый раз, когда пользователь нажимает клавишу a
, запускается следующий этап. Вот пример моего кода.Pygame: Как получить KEYDOWN для ввода только один раз?
gameStage = 0 ## outside while loop
##INSIDE whileloop
if gameStage == 0:
##insert drawings,music, etc
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
gameStage += 1
if gameStage == 1:
##insert drawings,music, etc
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
gameStage += 1
моя проблема заключается в том, что, когда пользователь нажимает клавишу a
, a
будет введено более чем один раз в зависимости, как долго держится ключ. Поэтому он просто пропустит весь путь до моего последнего этапа. Как сделать так, чтобы gameStage
был + = 1 только при нажатии и нажатии клавиши? Скажите, пожалуйста, если я не понимаю. Цените любую помощь. Благодарю.
Как использовать вместо этого ключ? –
Где ваше событие 'for в pygame.event.get():' loop на данный момент? С вашим текущим макетом кода, похоже, вам нужен отдельный цикл событий на каждом этапе. – Marius