运行此代码时:
import pygame,time
GREEN = (30, 156, 38)
WHITE = (255,255,255)
pygame.init()
screen = pygame.display.set_mode((640, 480))
screen.fill(WHITE)
pygame.draw.rect(screen, GREEN, (0,0,100,100))
time.sleep(3)
Pygame 显示黑屏 3 秒,但不绘制矩形。
我正在使用 Atom 使用 script
包来运行代码
最佳答案
您必须实现一个应用程序循环。典型的 PyGame 应用程序循环必须:
- 通过
pygame.event.pump()
处理事件或pygame.event.get()
. - 根据输入事件和时间(分别为帧)更新游戏状态和对象位置
- 清除整个显示或绘制背景
- 绘制整个场景(
blit
所有对象) - 通过
pygame.display.update()
更新显示或pygame.display.flip()
- 限制每秒帧数以限制 CPU 使用率
import pygame
GREEN = (30, 156, 38)
WHITE = (255,255,255)
pygame.init()
screen = pygame.display.set_mode((640, 480))
clock = pygame.time.Clock()
# applicaition loop
run = True
while run:
# limit frames per second
clock.tick(60)
# event loop
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# clear display
screen.fill(WHITE)
# draw objects
pygame.draw.rect(screen, GREEN, (0, 0, 100, 100))
# update display
pygame.display.flip()
pygame.quit()
exit()
注意,您必须进行事件处理。请参阅pygame.event.get()
分别pygame.event.pump()
:
For each frame of your game, you will need to make some sort of call to the event queue. This ensures your program can internally interact with the rest of the operating system.
关于python - 未绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66891768/