第1、2行代码:导入了模块sys 和pygame 。模块pygame 包含开发游戏所需的功能。玩家退出时,我们将使用模块sys 来退出游戏。

第3行至19行,是函数run_game()的实现。

第5行,代码行pygame.init() 初始化背景设置,让Pygame能够正确地工作。

第6行,我们调用pygame.display.set_mode() 来创建一个名为screen 的显示窗口,这个游戏的所有图形元素都将在其中绘制。实参(1200, 700) 是一个元组,指定了游戏窗口的尺寸。通过将这些尺寸值传递给pygame.display.set_mode() ,我们创建了一个宽1200像素、高700像素的游戏窗口(你可以根据自己的显示器尺寸调整这些值)。

第7行,设置游戏窗口的标题。

第9行,我们创建了一种背景色,并将其存储在bg_color 中。该颜色只需指定一次,因此我们在进入主while 循环前定义它。在Pygame中,颜色是以RGB值指定的。这种颜色由红色、绿色和蓝色值组成,其中每个值的可能取值范围都为0~255。颜色值(255, 0, 0)表示红色,(0, 255, 0)表示绿色,而(0, 0,255)表示蓝色。通过组合不同的RGB值,可创建1600万种颜色。在颜色值(230, 230, 230)中,红色、蓝色和绿色量相同,它将背景设置为一种浅灰色。

第11行,本游戏由一个while 循环控制,其中包含一个事件循环以及管理屏幕背景色及更新的代码。事件是用户玩游戏时执行的操作,如按键或移动鼠标。为让程序响应事件,我们编写一个事件循环,以侦听事件,并根据发生的事件执行相应的任务。第13行的for 循环就是一个事件循环。

第13行,为访问Pygame检测到的事件,我们使用方法pygame.event.get() 。所有键盘和鼠标事件都将促使for 循环运行。在这个循环中,我们在后续章节将编写一系列的if 语句来检测并响应特定的事件。这里,玩家单击游戏窗口的关闭按钮时,将检测到pygame.QUIT 事件,而我们调用sys.exit() 来退出游戏。

第17行,我们调用方法screen.fill() ,用背景色填充屏幕;这个方法只接受一个实参:一种颜色。

第19行,调用了pygame.display.flip() ,命令Pygame让最近绘制的屏幕可见。在这里,它在每次执行while 循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元素时,pygame.display.flip() 将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。

第20行代码,最后一行调用run_game() ,这将初始化游戏并开始主循环。

本程序完成了一个基本的游戏结构代码,如果此时运行这些代码,你将看到一个空的Pygame窗口。