You need to enable JavaScript to run this app. 运行Pygame程序时窗口打开后立即关闭,代码存在什么问题该如何修复?
优惠活动
大模型
产品
解决方案
定价
更多

运行Pygame程序时窗口打开后立即关闭,代码存在什么问题该如何修复?

问题诊断
  • 核心崩溃原因:代码中直接使用K_RIGHT、K_LEFT常量,没有加pygame.前缀,运行时会触发NameError导致程序直接终止,这就是窗口打开后立刻关闭的原因。这两个按键常量属于pygame模块的内置常量,必须指定模块命名空间才能调用。
  • 功能缺陷:主循环中仅定义了x_change位移变量,没有添加x += x_change的坐标更新逻辑,修复崩溃问题后按左右键方块也不会移动。
  • 体验优化点:每次绘制新方块前没有重绘背景,方块移动时会产生连续的白色拖影。
修复后的完整代码
import pygame
import random
pygame.init()
x=480
y=680
tick=pygame.time.Clock()
x_change=0
red=(0,0,255)
green=(0,255,0)
white=(255,255,255)
graphic=pygame.display.set_mode((700,700))
noexit=True
while noexit:
    # 重绘背景消除拖影
    graphic.fill(green)
    pygame.draw.rect(graphic,white,(x,y,20,20))
    pygame.display.flip()
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            noexit=False
        elif event.type==pygame.KEYDOWN:
            # 补充pygame命名空间前缀
            if event.key==pygame.K_RIGHT:
                x_change=2
            elif event.key==pygame.K_LEFT:
                x_change=-2
        elif event.type==pygame.KEYUP:
            if event.key==pygame.K_RIGHT or event.key==pygame.K_LEFT:
                x_change=0
    # 增加x坐标更新逻辑
    x += x_change
    tick.tick(60)

pygame.quit()
quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 02:00:05