原文链接:https://www.pygame.org/docs/tut/ImportInit.html
作者:Pete Shinners
导入和初始化Pygame是一个非常简单的过程。它也很灵活,你可以自己掌控发生的事情。Pygame把不同的模块收集到了一个python库里面。有些模块是用C语言写的,有些是用Python写的。有些模块是可选的,可能有时候没有。
这里只是简单地介绍一下当你导入pygame的时候发生了什么事情。要想得到更清楚的解释,肯定还是得看pygame的例子。
导入(Import)
首先,我们必须导入pygame库。自从pygame1.4版本以来,这项工作已经被更新得简单多了。大多数游戏会像下面这样导入pygame的全部:
import pygame
from pygame.locals import *
只有第一行代码是必不可少的。它把所有可用的Pygame模块都导进了pygame库。第二行代码是可选的,它把有限的常量和函数导进了你脚本的全局命名空间。
有件事情很重要,要牢牢记住:有几个pygame模块是可选的。比方说,其中的一个就是font(字体)模块。当你写下了"import pygame", pygame就会去查看font(字体)模块是否可用。如果字体模块可用,它就会被导入为"pygame.font"。如果这个模块不可用,"pygame.font"就会被设置为None。这使得我们后续可以很容易地检查font(字体)模块是否存在。
初始化(Init)
在你使用pygame之前,你需要把它初始化。最常用的做法就是调用一个函数:
pygame.init()
这行代码就会尝试为你初始化所有的pygame模块。不是所有的pygame模块都需要被初始化,但是这一步会自动初始化那些需要的。你也可以很容易地手动初始化每个Pygame模块。比方说,如果你只想初始化font模块,你就可以这样写:
pygame.font.init()
注意,如果你使用代码"pygame.init()"完成初始化的时候出现了错误,它会悄悄地失败(不会报错)。当你像上面这行代码一样手动初始化模块的时候,任何错误都会抛出异常。每个必须被初始化的模块都有一个"get_init()"函数,如果当前模块被初始化了,它就会返回True。
在任何一个模块上调用多次init()函数都是安全的。
退出(Quit)
那些被初始化的模块通常也有一个用于清理的函数quit().不需要显式地调用这些函数,因为python运行结束后,pygame会把所有初始化了的模块清理得干干净净。