WPF 2048游戏的实现
2024-08-31 07:59:24
前几天空闲的时候,实现了一个2048游戏。除了可以设置行数和列数之外,支持修改显示名称,比如下面,改成神雕侠侣中的角色名称:
游戏逻辑比较简单,大家都应该玩过。
这里主要实现了四个类:Game、GameBoard还有ColorBlock和BoardGridLine。
Game类主要用来实现游戏的控制,比如初始化、添加新的色块、移除色块、控制色块上下左右移动、改变积分,触发游戏结束等。
GameBoard继承自Canvas,实现了色块的合并、检测每个格子的状态等,另外提供了Game控制色块移动的接口。
ColorBlock类继承自Shape类,用于自定义色块的显示,包含XY坐标、颜色、显示文字等依赖属性,可以进行动画,另外还实现了具体的上下左右移动的方法。最初几个颜色是手动设置,等到色块越来越多,就随机生成一种颜色。
BoardGridLine也继承自Shape类,用于绘制Canvas底部的网格。
另外,游戏使用一个简单的文本文件保存设置,包括行数与列数,以及显示文字及其对应颜色,具体操作在Settings类中。
最后,按键事件封装在KeysNavigation中。
图标使用Expression Design制作:
游戏效果如下:
源码下载地址:
http://download.csdn.net/detail/xiangshimoni/8278267
最新文章
- APUE中fcntl.h的使用及O_SYNC在Mac与Ubuntu下的测试
- /etc/sysconfig/下找不到iptables文件解决方法
- CentOS配置Nginx+Tomcat7的多站点支持
- 机器学习库shark安装
- 根据执行计划优化sql语句
- Linux学习之路:shell变量(一)
- [IoLanguage]Io Programming Guide[转]
- jQuery插件开发 格式与解析2
- UNIX 技巧: UNIX 高手的另外 10 个习惯
- Rhel6.6---执行命令df -h卡住不动
- C# UserControl集合属性使用
- js获取当前星期几
- Linux设备驱动剖析之IIC(二)
- 2018.4.2 sqlite优化
- Hibernate @Entity注解配置说明
- 拓展javascript内置函数
- js+css+div的点击后显示或者隐藏
- 矩阵快速幂——POJ3070
- C++中如何强制inline函数(MSVC, GCC)
- 如何使用Node爬虫利器Puppteer进行自动化测试