
我们的贪吃蛇游戏基本功能已经实现,可以完成吃食物,吃到食物变长,得分增加,食物再次随机出现。
但是我们有发现贪吃蛇可以穿到屏幕外面去,这显然是不合适的。
这一次我们需要完善的是:
- 游戏结束
- 游戏结束后重新开始
- 背景音乐和音效
游戏结束
我们设置一个布尔值变量dead,如果dead为True,则游戏结束,开始布尔值变量dead的值位False。
dead
边界检测:
# 边界检测
满足任何一个条件,都需要将dead设为True。
碰到自己:
如果蛇足够长的话,在移动过程中,出现蛇的头和身体发生碰撞,游戏结束。
# 撞到自己
遍历列表中的位置坐标和蛇的头的位置坐标,进行判断,只要出现一个碰撞,则变量dead就为True,其余的也就不再进行遍历,使用break可以直接跳出。
游戏结束:
使用if语句判断,当dead变量为True的时候,游戏结束,蛇的头不再运动,我们将速度speed变量修改为0。
if
增加一段文本显示,记录玩家的得分战绩,提示玩家按下空格键重启游戏。
if
游戏结束后重新开始:
当我们按下空格键的时候,重新开启游戏。
elif
添加了一个条件,只有在dead为True的时候,才可以按下空格键重启游戏。

背景音乐和音效:
注意:音乐和音效文件要和“.py”文件放到同一个目录中。
# 背景音乐
这里不再详细讲解,具体可以参考“Pong游戏”。
暂停背景音乐:
当游戏结束的时候,背景音乐需要暂停播放。
if
重启背景音乐:
当按下空格键的时候,游戏重启,背景音乐也要重新播放。
elif
播放音效:
当蛇吃到一个食物的时候,添加一个吃食物的音效。
if
好了游戏到这里基本完成了,其实还有好多可以完善,大家也可以自己做修改,使其拥有更多的功能。

完整代码和音效文件,回复关键字《贪吃蛇》即可获取!
Pygame游戏——贪吃蛇
陪孩子一起学编程:Pygame游戏——贪吃蛇(一)zhuanlan.zhihu.com

