为何pygame.display.fill()在主显示对象场景下无法生效?
问题原因与解决方法
你的代码里pygame.display.fill()无法工作的核心原因是调用对象错误:
pygame.display是Pygame中负责管理显示窗口的模块,它并没有fill()方法。fill()是Surface对象的方法,你通过pygame.display.set_mode()创建的screen变量,才是代表显示窗口的可绘制Surface对象。
修正后的代码如下:
import pygame pygame.init() SCREEN_LENGTH = 800 SCREEN_WIDTH = 600 screen = pygame.display.set_mode((SCREEN_LENGTH, SCREEN_WIDTH)) run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False # 修正:调用screen对象的fill方法 screen.fill((0, 0, 255)) pygame.display.update() pygame.quit()
补充说明:
- 所有针对窗口内容的绘制操作(填充背景、绘制图形等),都需要通过
set_mode()返回的Surface对象执行。 pygame.display模块的作用是管理窗口生命周期、更新显示内容(比如pygame.display.update())、设置窗口标题等,并不负责具体的像素绘制。
内容的提问来源于stack exchange,提问作者Haseen Siddiqui
相关产品推荐
相关产品推荐

