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

Pygame黑色背景下绘制图像显示扭曲破损问题求助

问题原因

  • Pygame的绘图操作默认在后台离屏缓冲区执行,你的代码完成绘制后没有触发屏幕刷新接口,所以绘制的矩形不会同步到可见窗口上,就会出现显示异常的情况。

解决方法

在主循环的draw()调用后添加pygame.display.update()(或者pygame.display.flip())即可完成屏幕刷新,修复后的完整代码如下:

import pygame

BLACK = (0, 0, 0)
WHITE = (200, 200, 200)
SIZE = width, height = 500, 700

def main() -> None:
    global SCREEN
    pygame.init()

    SCREEN = pygame.display.set_mode(SIZE)
    pygame.display.set_caption('Tetronur')
    running = True
    SCREEN.fill(BLACK)

    while running:
        draw()
        # 新增屏幕刷新代码
        pygame.display.update()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
        

def draw():
    rect = pygame.Rect(100, 100, 400, 600)
    pygame.draw.rect(SCREEN, WHITE, rect, 1)


if __name__ == '__main__':
    main()

补充说明

  • pygame.display.update()支持传入指定区域参数实现局部刷新,不传参数时效果和pygame.display.flip()一致,会刷新整个屏幕
  • 如果你使用高DPI的Windows设备,还可以在pygame初始化前添加pygame.display.set_dpi_aware(True),避免窗口缩放导致的显示模糊问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:36:05