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
相关产品推荐
相关产品推荐

