Pygame学习笔记(二):模块导入与初始化

学习资料:《Import and Initialize

Pygame是许多不同模块的一个集合。有些模块是用C写的,有些模块是用Python写的。有一些模块是可选的,可能在当前的包中不存在。

下面简单介绍一下,导入Pygame时,到底发生了什么。

导入

首先,我们导入Pygame包。大部分游戏都会用这种方式进行导入:

import pygame
from pygame.locals import *

其中,只有第一行是必须的。它把所有可用的Pygame模块导入到了Pygame包中。第二行是可选的,它把一些有用的常量和函数放到了全局命名空间里。

一定要记住,有几个Pygame模块是可选的。例如,font模块。当你“import pygame”时,Pygame会检查font模块是否存在。如果存在,则将之导入为“pygame.font”;如果不存在,则将“pygame.font”设为None

初始化

在你使用Pygame之前,必须先进行初始化。最常用的初始化方式是:

pygame.init()

它会尝试初始化所有Pygame模块,即使有些模块是游戏中不需要的。也可以手动对单个模块初始化,例如,可以用下面的方式初始化font模块:

pygame.font.init()

注意,如果在执行“pygame.init()”的过程中遇到错误,会直接被忽略(silently fail)。如果是手动初始化过程中遇到错误,则会抛出异常。所有必须进行初始化的模块,都有一个“get_init()”方法,如果模块初始化成功,它会返回True

对任何模块多次调用init()函数,都是安全的。

退出

初始化之后的模块,通常都有一个quit()函数用来执行退出操作(clean up)。好消息是,我们不需要显式调用它们,当Python程序执行完毕时,Pygame会干净地退出所有初始化之后的模块。