WPF制作贪吃蛇小游戏

   日期:2020-05-20     浏览:96    评论:0    
核心提示:初学WPF,需要一个小程序来锻炼自己,而贪吃蛇是每一个小白(包括我自己)必学的经典案例,此文就来介绍一下,接近完美的贪吃蛇是如何制作的 . . .学习源于赵庆明老师的课程(腾讯课堂)此文将只对游戏重要的部分进行讲解, 完整源码可在 GitHub 中查看:GitHub --> Gluttonous-Snake效果效果如下:其中这个游戏是有声音(吃到东西的声音,游戏结束读取分数的声音). . .各种音效可到 爱给网 中下载,完全免费 . . .比如吃东西的声音、游戏结束的声音(没有.游戏

初学WPF,需要一个小程序来锻炼自己,而贪吃蛇是每一个小白(包括我自己)必学的经典案例,此文就来介绍一下,接近完美的贪吃蛇是如何制作的 . . .
学习源于赵庆明老师的课程(腾讯课堂)

此文将只对游戏重要的部分进行讲解, 完整源码可在 GitHub 中查看:

GitHub --> Gluttonous-Snake

效果效果如下:

其中这个游戏是有声音(吃到东西的声音,游戏结束读取分数的声音). . .

各种音效可到 爱给网 中下载,完全免费 . . .
比如吃东西的声音、游戏结束的声音(没有进入高分榜、进入高分榜等)各种各样的声音 . . .

让游戏变的更加有趣 . . .

.

这个程序的核心部分就是 蛇的移动高分榜语音合成(XML 文件的读取与存入) . . .

蛇的移动有两种方式:

  • 真正的移动(每一节蛇身 移动到前一节蛇身的位置)
  • 障眼法(蛇其实没有移动)

此文将使用障眼法来对蛇的移动进行操作,那么这个障眼法移动蛇是如何工作的呢?
下面这个图将解释这个障眼法原理:

图中 1, 2, 3 表示的分别是:

  1. 删除蛇的尾巴
  2. 将蛇头变成蛇身的颜色
  3. 添加新的蛇头

我们只需要反复的进行上面的操作,就可以造成蛇移动的假象 . . .

游戏核心部分详解

  1. UI 界面我们采用 Canvas 进行布局,因为它可以进行 绝对定位,可以利用元素的坐标将元素放在界面的任何地方:

    对 Canvas进行 布局,访问他的名字(GameArea进行操作) . . .

  2. 游戏地图部分(那些小格子):

  3. 画蛇:

    这个方法调用的比较频繁,因为蛇每移动一次,这个方法就要调用一次 . . .
    方法解析:当我们使用障眼法插入一上新蛇头时,这个蛇头还没添加到地图之中,所以我们在画蛇的方法之中,需要判断一下,并且判断颜色(蛇头与蛇身不一样) . . .

  4. 蛇的移动(核心部分):
    每一行代码都加以注释 . . .

  5. 蛇的其它操作在此处就不写了,主要就是一些细节上的实现,并不是太复杂 . . .

    比如下面的这些方法实现:

    • 游戏结束的判断
    • 蛇吃到食物的判断
    • 更新游戏分数
    • 开始新的游戏
    • 画出食物
    • 键盘按下改变蛇的方向
    • 游戏的暂停
  6. 高分榜(对 XML文件的操作):
    第一方法是将高分榜中的数据保存到 XML文件之中,Xml文件的 序列化操作,取前五名 . . .
    第二方法是将 XML文件中的数据加载到程序之中,Xml文件的 反序列化操作 . . .
    第三方法是将一个数据添加到高分榜之中,并进行逆序排列 . . .

  7. 语音合成部分:

    在游戏结束的时候,我们判断这个分数是否进入了高分榜,如何进入则利用语音合成报出分数:

.

源码在 GitHub之中,大家可以自己查阅 ^ _ ^ . . .

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服