任务目标
在屏幕上进行贪吃蛇小游戏。
知识点
1、认识pygame库
2、学习使用pygame库创建游戏窗口的方法
3、学习使用pygame库绘制图形、绘制文本、更新屏幕显示的方法
4、学习使用pygame库实现键盘交互的方法
知识储备
1、贪吃蛇小游戏实现原理与逻辑
(1)实现原理
在这个贪吃蛇游戏中,我们将整个游戏区域划分成一个个的小格子,每一个格子的所在位置可以通过行列来表示,由一组连在一起的小格子组成“蛇”,“蛇”分为“蛇头”和“蛇身”两部分。“蛇头”用一个格子表示,“蛇身”用一个列表来存储,结合不同的颜色,这样一条“蛇”就出来了。“蛇”的移动则是将下一格的行列位置添加到列表开头,并移除列表的最后一个元素,就相当于“蛇”向前移动了一格。食物同样以格子的形式随机呈现,当“蛇头”与食物的位置重合,那么“蛇”就吃到了食物,而当“蛇”移动超出了范围亦或者“蛇头”撞在了“蛇身”上,那么游戏结束并计算食物数量。
(2)游戏逻辑图
由于游戏包含了蛇的移动、吃食物、事件监测、结束游戏等多个功能,在编程时,我们可以通过定义函数的方式,实现各个不同的功能部分,之后依据游戏逻辑在所需处调用即可。
2、什么是pygame库
pygame是专为电子游戏设计的跨平台Python库。通过它,我们可以设计包含图像、声音等元素的电子游戏。pygame做游戏开发的优势在于不需要过多地考虑底层相关的内容,而可以把重心放在游戏逻辑上,例如,pygame中集成了很多和底层相关的模块,如访问显示设备、管理事件、使用字体等。关于pygame常用的一些模块可参考下表。
参考资料
【行空板Python入门教程】第六课:贪吃蛇小游戏 DF创客社区 (dfrobot.com.cn)
动手实践
任务描述1:创建游戏窗口
通过pygame库创建一个游戏窗口界面。
任务描述2:添加游戏元素
在窗口上添加游戏中的最重要的角色元素—蛇和食物。
任务描述3:设定游戏机制
设定游戏机制,使得能通过行空板的板载按键a和b控制蛇左右移动来吃食物,并且,食物由原来在固定位置生成改为随机生成。
任务描述4:结束游戏并计分
添加结束游戏和计分机制。
挑战自我
1、和同学比一比,看谁的得分更高吧!
2、尝试减小屏幕刷新的时间间隔,使蛇移动得更快,加大难度试一试吧!
3、想一想,我们是否可以给不同难度的游戏设置关卡呢,自己动手修改程序,练习一下吧!