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

Pygame窗口无提示崩溃求助:窗口空白交互即无响应

Pygame窗口空白无响应问题排查与修复

核心问题分析

  • 无限嵌套循环阻塞主流程:主循环内的while page == 0及其他page值的循环是死循环,page初始值为0且循环内部未修改page或done变量,程序会一直卡在该循环,永远执行不到屏幕填充、绘制、刷新代码,导致窗口空白。同时事件处理仅在主循环开头执行一次,后续无法处理新事件,交互时窗口无响应。
  • 缺失颜色常量定义:代码使用RED绘制矩形,但未定义该常量(仅定义了WHITE和LYELLOW),运行时会抛出NameError。
  • 叉号绘制坐标错误:当前两条线坐标完全相同,且位置在红色矩形上方,即便执行到绘制代码,也无法显示正确的内部叉号。

修复后的代码示例

# Imports
import pygame
import math
import sys
import os

pygame.init()

# Setting variables and constants
PI = math.pi
WHITE = (255, 255, 255)
LYELLOW = (255, 255, 165)
RED = (255, 0, 0)  # 补充RED颜色定义
BLACK = (0, 0, 0)  # 补充BLACK颜色定义

size = (1050, 750)
done = False
page = 0

test = 0

# Other admin
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Coursework Program, Benjamin Youell-Wright")
clock = pygame.time.Clock()

# Main Program
while not done:
    # 每次循环都处理事件,保证响应及时
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
        # 示例:按键切换page
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_1:
                page = 1
            elif event.key == pygame.K_0:
                page = 0

    # 用if判断替代while死循环,避免阻塞主流程
    if page == 0:
        test = 0
    elif page == 1:
        test = 0
    elif page == 2:
        test = 0
    elif page == 3:
        test = 0
    elif page == 4:
        test = 0

    # 绘制流程:先填充背景,再绘制元素,最后刷新显示
    screen.fill(WHITE)

    # 绘制红色矩形按钮
    pygame.draw.rect(screen, RED, [775, 595, 20, 20], 2)
    
    # 绘制矩形内部的叉号(两条对角线)
    pygame.draw.line(screen, BLACK, [779, 599], [791, 611], 1)
    pygame.draw.line(screen, BLACK, [791, 599], [779, 611], 1)
    
    pygame.display.flip()
    
    clock.tick(20)

pygame.quit()

关键修复说明

  • 替换死循环为条件判断:将while page == x改为if page == x,确保主循环能完整执行所有逻辑,不会阻塞。如需切换page,可在事件处理中添加触发逻辑(如按键切换)。
  • 补充缺失的颜色常量:添加RED和BLACK的定义,避免运行时报错。
  • 修正叉号坐标:调整线条坐标,让两条对角线位于红色矩形内部,形成正确的叉号样式。
  • 保证事件处理及时性:事件处理放在主循环最前端,确保程序能及时响应窗口关闭、按键等操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:45:08