1.函数的概念
函数是带名字的代码块,用于完成具体的工作。要执行函数定义的特定任务,可调用该函数。当需要在程序中多次执行同一项任务时,无须反复编写完成该任务的代码,只需要调用执行该任务的函数,让 Python 运行其中的代码即可。
2.函数的格式
函数的格式如下所示。
cpp
def 函数名(参数):
函数体
其中,关键字 def 来告诉Python,要定义一个函数。接下来是函数名,就像变量名一样,通过函数名来使用这个函数。函数名后面的圆括号里包含的是函数的参数,参数表示函数为完成任务需要什么样的信息,如果不需要额外信息,可以不设置参数,也就是圆括号内为空。最后,函数定义以冒号结尾。
接下来新起一行,作为函数体代码,也就是这个函数具体的功能代码。需要注意的是,函数体的代码都是有缩进的。
3.函数的定义及调用
定义及调用函数的代码如图1所示。

图1 函数的定义及调用
其中,第8-12行代码定义了一个函数名为show_sum的函数,该函数的参数为空。第9-12行为函数的函数体,在函数体中,分别定义了三个整型变量a、b和c。最后,使用print()函数输出这三个变量的和。第14行代码调用了show_sum()函数。运行代码后,会输出6。
3.1 pgzero中的draw()函数
在pgzero库中,draw()函数的作用是绘制游戏窗口。只需要定义这个函数,由pgzero库自动调用它。代码如图2所示。

图2 pgzero中的draw()函数
图2所示代码定义了draw()函数,在该函数中,第9行代码的screen表示游戏窗口,screen.fill()函数的作用是使用指定颜色填充游戏窗口,该函数的参数是一个字符串,'green'表示绿色。以上代码运行的效果如图3所示。

图3 代码运行效果
相关链接1 字符串表示不同颜色:'red'红色,'blue'蓝色,'green'绿色,'yellow'黄色,'pink'粉色,'orange'橙色,'white'白色,'black'黑色,'brown'棕色。
也可以在定义函数前,首先定义一个表示屏幕背景颜色的字符串变量,在draw()函数中使用该变量设置游戏窗口背景色,代码如图4所示。

图4 使用变量设置游戏窗口背景色的代码
后续如果需要改变游戏窗口的背景颜色,只需修改变量screen_color的值即可。
3.2 pgzero库的update()函数
update()函数与draw()函数类似,也由pgzero库自动调用。但是update()函数的作用不是绘制,而是更新。比如更新游戏中玩家或者敌人的位置、速度、血量等状态。定义该函数的代码如图5所示。

图5 update()函数的代码
此时,update()函数的作用是输出"你好"。代码运行效果如图6所示。

图6 代码运行效果
从图6中可以看出,程序运行后,update()函数会被pgzero库循环调用。
相关链接2 在pgzero游戏中,每调用一次update()函数,可以看作是游戏中的一帧。pgzero一秒钟大概调用60次update()。
4.完整代码
以上内容的完整代码如下所示。
python
import pgzrun
WIDTH = 480
HEIGHT = 960
TITLE = '我的第一个pgzero游戏'
ICON = 'car.png'
screen_color = 'green'
def draw():
screen.fill(screen_color)
def update():
print('你好')
pgzrun.go()