我已经开始了一个新的项目,在Python使用pyGame和背景,我想要的下半部分填充灰色和顶部黑色。我以前在项目中使用过RECT绘图,但由于某种原因,它似乎被打破了?我不知道我做错了什么。最奇怪的是,每次我运行程序时,结果都不同。有时只有一个黑色的屏幕,有时一个灰色的矩形覆盖了屏幕的一部分,但从来没有半个屏幕。
import pygame, sys
from pygame.locals import *
pygame.init()
DISPLAY=pygame.display.set_mode((800,800))
pygame.display.set_caption("thing")
pygame.draw.rect(DISPLAY, (200,200,200), pygame.Rect(0,400,800,400))
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
2条答案
按热度按时间8dtrkrch1#
只需将您的代码更改为:
这应该会有帮助
x9ybnkn62#
您需要更新显示屏。您实际上是在
Surface
对象上绘制。如果您在与PyGame显示相关联的Surface上绘制,这在显示中不会立即可见。当使用pygame.display.update()
或pygame.display.flip()
更新显示时,更改会变得可见。参见
pygame.display.flip()
:这将更新整个显示的内容。
pygame.display.flip()
将更新整个显示屏的内容,而pygame.display.update()
只允许更新屏幕的一部分,而不是整个区域。pygame.display.update()
是pygame.display.flip()
的优化版本,适用于软件显示,但不适用于硬件加速显示。典型的PyGame应用程序循环必须:
pygame.event.pump()
或pygame.event.get()
处理事件。pygame.display.update()
或pygame.display.flip()
更新显示pygame.time.Clock.tick
限制每秒帧数以限制CPU使用repl.it/@Rabbid76/PyGame-MinimalApplicationLoop另见Event and application loop