从零开始学Python游戏编程20-游戏循环模式2
2.2 processInput()函数
processInput()函数的作用是处理玩家的输入,其代码如图4所示。
图4 processInput()函数的代码
其中,第13行代码提示玩家输入数字;第14-21行代码处理玩家的输入;最后第22行将玩家的输入作为返回值。对于玩家来说,processInput()函数就像黑盒子一样,不用去管它的内部结构,只需要知道通过它能够得到玩家输入的数字即可。
2.3 update()函数
update()函数的作用是根据玩家输入来更新游戏状态和游戏数据,因此该函数的参数有三个,分别表示游戏状态、游戏数据和玩家输入,代码如图5所示。
图5 update()函数的代码
其中,gameStatus表示游戏状态,magicNumber表示游戏数据,playerNumber表示玩家输入;该函数中,根据playerNumber和magicNumber的关系,设置gameStatus,即完成了游戏状态的更新,最后以元组的方式返回更新后的游戏状态和游戏数据。
2.4 render()函数
render()函数的作用是显示更新后的游戏状态和游戏数据,因此该函数的参数有两个,分别表示游戏状态和游戏数据,代码如图6所示。
图6 render()函数的代码
其中,参数gameStatus表示游戏状态,参数magicNumber表示游戏数据;在函数中根据游戏的不同状态,打印不同的信息。
2.5 runGame()函数
runGame()函数的作用是通过调用以上自定义函数,启动游戏。根据《从零开始学Python游戏编程19-游戏循环模式1》中提到的结构,其代码如图7所示。
图7 runGame()函数的代码
在runGame()中,第45行代码通过init()函数对游戏状态和游戏数据进行初始化;第46行代码根据游戏状态判断游戏是否继续运行,当状态不是“win”并且也不是“end”时,游戏继续运行(是这两种状态之一时,则游戏结束);第47行代码通过processInput()函数获取玩家的输入;第48行代码通过update()更新游戏状态和游戏数据;第49行代码通过render()函数显示更新后的游戏状态和游戏数据。
3 游戏主程序
游戏的主程序只有一行代码,即调用runGame()函数启动游戏,如图8所示。
图8 游戏主程序
4 游戏运行效果
游戏运行效果如图9所示。
图9 游戏运行效果