WPF制作贪吃蛇小游戏
初学WPF,需要一个小程序来锻炼自己,而贪吃蛇是每一个小白(包括我自己)必学的经典案例,此文就来介绍一下,接近完美的贪吃蛇是如何制作的 . . .
学习源于赵庆明老师的课程(腾讯课堂)
此文将只对游戏重要的部分进行讲解, 完整源码可在 GitHub 中查看:
GitHub --> Gluttonous-Snake
效果效果如下:
其中这个游戏是有声音(吃到东西的声音,游戏结束读取分数的声音). . .
各种音效可到 爱给网 中下载,完全免费 . . .
比如吃东西的声音、游戏结束的声音(没有进入高分榜、进入高分榜等)各种各样的声音 . . .
让游戏变的更加有趣 . . .
.
这个程序的核心部分就是 蛇的移动
、高分榜
、语音合成
(XML 文件的读取与存入) . . .
蛇的移动有两种方式:
- 真正的移动(每一节蛇身 移动到前一节蛇身的位置)
- 障眼法(蛇其实没有移动)
此文将使用障眼法来对蛇的移动进行操作,那么这个障眼法移动蛇是如何工作的呢?
下面这个图将解释这个障眼法原理:
图中 1, 2, 3 表示的分别是:
- 删除蛇的尾巴
- 将蛇头变成蛇身的颜色
- 添加新的蛇头
我们只需要反复的进行上面的操作,就可以造成蛇移动的假象 . . .
游戏核心部分详解
UI 界面我们采用
Canvas
进行布局,因为它可以进行绝对定位
,可以利用元素的坐标将元素放在界面的任何地方:
对 Canvas进行 布局,访问他的名字(GameArea进行操作) . . .游戏地图部分(那些小格子):
画蛇:
这个方法调用的比较频繁,因为蛇每移动一次,这个方法就要调用一次 . . .
方法解析:当我们使用障眼法插入一上新蛇头时,这个蛇头还没添加到地图之中,所以我们在画蛇的方法之中,需要判断一下,并且判断颜色(蛇头与蛇身不一样) . . .蛇的移动(核心部分):
每一行代码都加以注释 . . .蛇的其它操作在此处就不写了,主要就是一些细节上的实现,并不是太复杂 . . .
比如下面的这些方法实现:
- 游戏结束的判断
- 蛇吃到食物的判断
- 更新游戏分数
- 开始新的游戏
- 画出食物
- 键盘按下改变蛇的方向
- 游戏的暂停
高分榜(对 XML文件的操作):
第一方法是将高分榜中的数据保存到 XML文件之中,Xml文件的 序列化操作,取前五名 . . .
第二方法是将 XML文件中的数据加载到程序之中,Xml文件的 反序列化操作 . . .
第三方法是将一个数据添加到高分榜之中,并进行逆序排列 . . .语音合成部分:
在游戏结束的时候,我们判断这个分数是否进入了高分榜,如何进入则利用语音合成报出分数:
.
源码在 GitHub之中,大家可以自己查阅 ^ _ ^ . . .
WPF制作贪吃蛇小游戏相关推荐
- C# 制作贪吃蛇小游戏,最简单的实现
C# 制作贪吃蛇小游戏 目录 画蛇 实现蛇的上下左右移动 随机生成目标物 开始游戏 计分 重新开始 增加难度 死亡判定 1.1 画蛇的一节 Class Element()Graphics g;publ ...
- JavaScript制作贪吃蛇小游戏
目录 效果展示 原理分析 Game.js文档 Snake.js文档 Food.js文档 附上源代码 写了这么久的代码 是否你和我一样感到枯燥乏味了呢? 是否没有前进的动力了呢? 别忘了当时的你踌躇满志 ...
- 51制作贪吃蛇小游戏,附带Proteus仿真
一.代码解读 一个按钮来启动游戏的开始,开始以后LCD1602上显示当前的关卡和得分,当长到一定长度后会进入下一个关卡,每个关卡移动的速度不一样(越到后面速度越快,用到定时器) 有关蛇和食物里的属性都 ...
- python制作贪吃蛇小游戏,畅玩无限制
前言 大家早好.午好.晚好吖 ❤ ~ 现在这年头,无论玩个什么游戏都有健康机制, 这让我们愉悦玩游戏得步伐变得承重起来, 于是无聊之下我写了个贪吃蛇小游戏,来玩个快乐 代码展示 导入模块 import ...
- 基于html5贪吃蛇小游戏,使用HTML5 Canvas制作贪吃蛇小游戏
近重要在研究OAuth2,等demo完成了,会给大家来一个专题分享. 看到我身边的一个同事在玩 蛇蛇争霸 感觉蛮有意思的,这里找了一个 贪吃蛇的游戏 分享给大家. 按理说canvas与其应用是老生常谈 ...
- Unity制作贪吃蛇小游戏
从开始学习到现在也做了不少小游戏,但是很多都堆积再同一个项目中,并且还有许多不完善之处,所以最近会逐渐发上来一些之前做的小游戏,希望对大家有所帮助. 今天发上来的是最开始做的一个,也是挺经典的 ...
- 大学生的小乐趣:html画布制作贪吃蛇小游戏
源代码已存放在github上:https://github.com/WYKXLDZ/CollegeJoy/tree/master/snake 最终效果: 做贪吃蛇游戏需要Html5,部分Css美化,重 ...
- 贪吃蛇小游戏制作(5)
贪吃蛇小游戏制作(5)-给游戏场景添加可视的边界
- 100行代码,使用 Pygame 制作一个贪吃蛇小游戏!
作者 | 周萝卜 来源 | 萝卜大杂烩 相信我们大家都玩过贪吃蛇游戏,今天我们就从头一起来写一个贪吃蛇小游戏,只需要100多行的代码就完成了. 用到的 Pygame 函数 贪吃蛇小游戏用到的函数 功能 ...
最新文章
- 如何快速优化机器学习的模型参数
- Linux设置程序开机启动-tomcat开机启动
- 语言auc_Phoenix建模语言(PML)中AUC的计算方法
- 每日英语-7/21/2009
- 女儿问了我一个问题:什么是抽象?
- ❤️时间管理大师!我是如何规划自己的时间的?充分利用每一分一秒!❤️
- php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)
- 变结构滑模控制抖振处理(1)------动态滑模法
- [Web Chart系列之一]Web端图形绘制SVG,VML, HTML5 Canvas 技术比较
- 误Ghost数据恢复图文教程
- NOSQL,MongoDB是什么?
- html embed自动播放,embed嵌入多个优酷视频并自动播放
- 你的编程能力从什么时候开始突飞猛进?
- C语言实现客房管理系统
- 利用Xenu查询网站死链
- tcpreplay linux,Linux——Tcpreplay
- 14.1 来自Bitly的USA.gov的数据(2)
- SPA项目开发之CRUD+表单验证
- java快速生成数据库文档
- openwrt配置文件选项 /etc/config/wireless