在这个系列中,我们基于多人游戏 贪吃蛇 来制作一个异步的 Python 程序。
- 代码戳这里
制作一个完整的游戏
4.1 工程概览
在此部分,我们将回顾一个完整在线游戏的设计。这是一个经典的贪吃蛇游戏,增加了多玩家支持。你可以自己在 (http://snakepit-game.com) 亲自试玩。源码在 GitHub 的这个仓库。游戏包括下列文件:
- server.py - 处理主游戏循环和连接。
- game.py - 主要的Game 类。实现游戏的逻辑和游戏的大部分通信协议。
- player.py - Player 类,包括每一个**玩家的数据和蛇的展现。这个类负责获取玩家的输入并相应地移动蛇。
- datatypes.py - 基本数据结构。
- settings.py - 游戏设置,在注释中有相关的说明。
- index.html - 客户端所有的 html 和 javascript代码都放在一个文件中。
4.2 游戏循环内窥
多人的贪吃蛇游戏是个用于学习十分好的例子,因为它简单。所有的蛇在每个帧中移动到一个位置,而且帧以非常低的频率进行变化,这样就可以让你就观察到游戏引擎到底是如何工作的。因为速度慢,对于玩家的按键不会立马响应。按键先是记录下来,然后在一个游戏循环迭代的最后计算下一帧时使用。