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

Pygame窗口无法打开,新手运行图形绘制代码无响应求助

问题原因

你代码里的核心错误有3个:

  • 事件处理逻辑错误:当前逻辑是只要收到任意事件就直接终止主循环,程序启动后只要有任何事件触发就会直接退出,没有机会渲染展示窗口
  • 核心渲染代码缩进错误:窗口填充、界面刷新、帧率控制的代码全部写在while主循环外部,只有程序退出前才会执行一次,无法正常渲染内容
  • 部分代码存在多余的前置空格,虽然不影响运行但不符合Python编码规范
修正后可直接运行的代码
# 导入库
import pygame
import math

# 初始化pygame
pygame.init()

# 帧率控制时钟
clock = pygame.time.Clock()

# 窗口配置
screen_width = 500
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))

# RGBA颜色定义
Black = (0, 0, 0)
White = (255, 255, 255)
Blue = (0, 0, 255)
Red = (255, 0, 0)
Green = (0, 255, 0)

# 主循环
running = True
while running:
    # 事件处理
    for event in pygame.event.get():
        # 仅点击窗口关闭按钮时退出
        if event.type == pygame.QUIT:
            running = False

    # 窗口渲染逻辑(放在主循环内)
    screen.fill(Black)
    # 后续新增的图形绘制代码都放在此处即可
    pygame.display.update()
    # 控制帧率为30FPS
    clock.tick(30)

# 退出程序
pygame.quit()
quit()
改动说明
  • 调整了事件判断逻辑,仅捕获到窗口关闭事件时才终止主循环
  • 将所有渲染、刷新、帧率控制的代码缩进放入while主循环内,保证每帧都会执行
  • 调整了不合理的变量命名和多余空格,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:27:03