Python编程从入门到实践第十二章,设置screen的颜色时尝试运行如下代码:
def run_game():
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Alien Invasion")
# 设置背景色
bg_color = (230, 230, 230)
# 每次循环时都重绘屏幕
screen.fill(bg_color)
# 让最近绘制的屏幕可见
pygame.display.flip()
run_game()
发现程序虽然可以运行,且无报错。但screen一闪而过。
目的:使screen一直保持在屏幕上,除非我手动关闭它。改进如下:
def run_game():
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Alien Invasion")
# 设置背景色
bg_color = (230, 230, 230)
while True:
# 每次循环时都重绘屏幕
screen.fill(bg_color)
# 让最近绘制的屏幕可见
pygame.display.flip()
run_game()
加了一个While循环之后,目的实现了。
猜测是由于pygame的screen需要不断刷新以配合游戏动态效果,因此每个screen停留的时间都很短,设置无限循环才能使他一直保持在被打开的状态。只是不会跳出Processed finish。