gpt4 book ai didi

python - Pygame:如何让 KEYDOWN 只输入一次?

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:56 24 4
gpt4 key购买 nike

您好,我正在创建一个有多个阶段的游戏。我想做的是,每次用户按下键 a 时,都会触发下一阶段。这是我的代码示例。

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?如果我不清楚,请告诉我。感谢任何帮助。谢谢。

最佳答案

您可以使用 pygame.KEYUP 事件。

例如

if event.type == pygame.KEYUP:

但是你不应该收到重复的 KEYDOWN 消息,除非你调用了 pygame.key.set_repeat 并设置了一个非零重复值。

即使您仅捕获 KEYUP 消息,您也会得到 GameStage 的重复增量这一事实表明您的代码中存在其他一些问题。

关于python - Pygame:如何让 KEYDOWN 只输入一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com