Pygame Zero之贪吃蛇(二)
本文来研究如何移动小蛇,而且仅限于向右移动,严格的说其实是「前进」。这里需要思考的问题是:为什么不是上下左右移动呢?
因为在游戏中,上下左右是相对于游戏窗口的,小蛇的移动方向只有前进,也就是朝着蛇头的方向(小蛇是不能倒退的哦)。如果想要往其他方向移动,只能改变蛇头的方向,这时蛇的形状就会发生改变,我们下次再来研究。

在小蛇向右移动一格的时,大概经历了下边的过程。

移动一格分为两步完成:
- 在旧蛇头右侧添加一个新蛇头,旧蛇头编程蛇身的一部分
- 删除旧蛇尾,原来挨着旧蛇尾的蛇身变成了新蛇尾
这样,我们可以在update()
函数中编写这部分代码:
1 | # 前置代码见9-1.py |
结果如下:

可以看到小蛇移动速度非常快,因此我们可以导入time
库来减速。比如每次update()
以后,暂停0.2
秒:
1 | import time |
运行程序,有一种古老游戏的感觉了,小蛇看起来是在一格一格的前进!