您的 PyGame 项目旨在使用 pygame.draw.rect() 创建一个灰色底部和黑色顶部的背景功能。尽管以前使用此功能有成功的经验,但您仍会遇到不一致的绘图结果。有时,您会看到黑屏,而其他时候,屏幕上会出现部分灰色矩形。
造成混乱的原因在于,仅绘图不会在 PyGame 中产生可见输出。修改关联的表面后,您需要更新显示以使这些更改可见。
绘图发生在与 PyGame 显示关联的 Surface 对象上。但是,这些更改不会自动反映在显示中。要使它们可见,您必须使用 pygame.display.update() 或 pygame.display.flip() 显式更新显示。
pygame.display.flip() 更新整个显示,而 pygame.display.update() 为屏幕的特定区域提供更具选择性的更新。它通常针对软件显示进行了更优化,但不支持硬件加速显示。
典型的 PyGame 应用程序循环由几个步骤组成:
以下是包含显示更新的修改后的代码:
import pygame from pygame.locals import * pygame.init() DISPLAY = pygame.display.set_mode((800,800)) pygame.display.set_caption("thing") clock = pygame.time.Clock() run = True while run: # handle events for event in pygame.event.get(): if event.type == QUIT: run = False # clear display DISPLAY.fill(0) # draw scene pygame.draw.rect(DISPLAY, (200,200,200), pygame.Rect(0,400,800,400)) # update display pygame.display.flip() # limit frames per second clock.tick(60) pygame.quit() exit()
通过合并必要的显示更新,您现在应该看到预期的背景,底部为灰色,顶部为黑色。
以上是为什么我的 PyGame 代码没有绘制任何内容?的详细内容。更多信息请关注PHP中文网其他相关文章!