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

Pygame窗口无响应但未抛出错误问题排查求助

问题原因&修复方案

  • 核心问题是你没有给主循环加帧率控制,程序会以CPU能支撑的最大速率反复执行循环,CPU占用过高后系统就会判定窗口无响应,这也是控制台没有报错的原因:程序本身逻辑没有语法类错误,只是资源占用过高被系统拦截。
  • 次要问题1:你定义的player()绘制函数没有在主循环的绘制流程中调用,运行代码时看不到你预设的蓝色玩家矩形。
  • 次要问题2:主循环结束后没有调用pygame.quit()释放Pygame初始化占用的资源,可能会导致关闭窗口后出现残留进程或者卡死的情况。

修改后可正常运行的代码

import pygame

pygame.init()

screen = pygame.display.set_mode((800,600))
pygame.display.set_caption("Space Invaders")

BLUE = (0, 0, 255)
# 初始化时钟对象用于控制帧率
clock = pygame.time.Clock()

def player():
    pygame.draw.rect(screen,BLUE,(200,150,100,50))
 
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
             
    screen.fill((0,0,0))
    # 调用玩家绘制函数
    player()
     
    pygame.display.update()
    # 限制帧率为60帧/秒,避免CPU占用过高
    clock.tick(60)

# 退出时释放Pygame占用的资源
pygame.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:48:02