WPF制作贪吃蛇小游戏
初学WPF,需要一个小程序来锻炼自己,而贪吃蛇是每一个小白(包括我自己)必学的经典案例,此文就来介绍一下,接近完美的贪吃蛇是如何制作的 . . .学习源于赵庆明老师的课程(腾讯课堂)此文将只对游戏重要的部分进行讲解, 完整源码可在 GitHub 中查看:GitHub --> Gluttonous-Snake效果效果如下:其中这个游戏是有声音(吃到东西的声音,游戏结束读取分数的声音). . .
初学WPF,需要一个小程序来锻炼自己,而贪吃蛇是每一个小白(包括我自己)必学的经典案例,此文就来介绍一下,接近完美的贪吃蛇是如何制作的 . . .
学习源于赵庆明老师的课程(腾讯课堂)
此文将只对游戏重要的部分进行讲解, 完整源码可在 GitHub 中查看:
效果效果如下:
其中这个游戏是有声音(吃到东西的声音,游戏结束读取分数的声音). . .
各种音效可到 爱给网 中下载,完全免费 . . .
比如吃东西的声音、游戏结束的声音(没有进入高分榜、进入高分榜等)各种各样的声音 . . .
让游戏变的更加有趣 . . .
.
这个程序的核心部分就是 蛇的移动
、高分榜
、语音合成
(XML 文件的读取与存入) . . .
蛇的移动有两种方式:
- 真正的移动(每一节蛇身 移动到前一节蛇身的位置)
- 障眼法(蛇其实没有移动)
此文将使用障眼法来对蛇的移动进行操作,那么这个障眼法移动蛇是如何工作的呢?
下面这个图将解释这个障眼法原理:
图中 1, 2, 3 表示的分别是:
- 删除蛇的尾巴
- 将蛇头变成蛇身的颜色
- 添加新的蛇头
我们只需要反复的进行上面的操作,就可以造成蛇移动的假象 . . .
游戏核心部分详解
-
UI 界面我们采用
Canvas
进行布局,因为它可以进行绝对定位
,可以利用元素的坐标将元素放在界面的任何地方:
对 Canvas进行 布局,访问他的名字(GameArea进行操作) . . . -
游戏地图部分(那些小格子):
-
画蛇:
这个方法调用的比较频繁,因为蛇每移动一次,这个方法就要调用一次 . . .
方法解析:当我们使用障眼法插入一上新蛇头时,这个蛇头还没添加到地图之中,所以我们在画蛇的方法之中,需要判断一下,并且判断颜色(蛇头与蛇身不一样) . . . -
蛇的移动(核心部分):
每一行代码都加以注释 . . . -
蛇的其它操作在此处就不写了,主要就是一些细节上的实现,并不是太复杂 . . .
比如下面的这些方法实现:
- 游戏结束的判断
- 蛇吃到食物的判断
- 更新游戏分数
- 开始新的游戏
- 画出食物
- 键盘按下改变蛇的方向
- 游戏的暂停
-
高分榜(对 XML文件的操作):
第一方法是将高分榜中的数据保存到 XML文件之中,Xml文件的 序列化操作,取前五名 . . .
第二方法是将 XML文件中的数据加载到程序之中,Xml文件的 反序列化操作 . . .
第三方法是将一个数据添加到高分榜之中,并进行逆序排列 . . . -
语音合成部分:
在游戏结束的时候,我们判断这个分数是否进入了高分榜,如何进入则利用语音合成报出分数:
.
源码在 GitHub之中,大家可以自己查阅 ^ _ ^ . . .
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)