You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pygame中event.type按键判断仅单分支生效问题求助

问题根因

ESC退出分支的判断逻辑存在属性调用错误:你写了event.type == pygame.K_ESCAPE,但pygame.K_ESCAPE是按键常量,属于事件的key属性,不属于type属性,所以这个判断条件永远无法成立,自然触发不了退出逻辑。之前出现两个分支效果反转的情况,大概率是你此前写反了两个分支的属性判断逻辑。

修正后的代码

gamestate.draw(window)
pygame.display.update()

for event in pygame.event.get():
    if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
        finis = True
    if event.type == pygame.KEYDOWN and event.key == pygame.K_UP:
        print("ok")
pygame.display.update()

可选优化建议

  • 可以将相同的KEYDOWN事件判断抽出来嵌套,减少重复判断,逻辑也更清晰:
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        finis = True
    elif event.type == pygame.KEYDOWN:
        if event.key == pygame.K_ESCAPE:
            finis = True
        elif event.key == pygame.K_UP:
            print("ok")
  • 你当前代码重复调用了两次pygame.display.update(),实际只需要保留一次即可,重复调用不会产生额外效果,还会增加不必要的性能消耗。

内容的提问来源于stack exchange,提问作者lvbartow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:45:03