MFC实现贪吃蛇小游戏
来源:互联网 发布:顶点软件股票 编辑:程序博客网 时间:2024/05/16 09:19
1、概述
贪吃蛇是一个很经典的小游戏,这里介绍如何分离UI和逻辑来设计该游戏。
2、设计思路
整个游戏有三个组成部分:背景面板、食物、蛇。面板划分成不同的网格,食物和蛇都出现在网格中。
1)食物的随机生成要保证在网格内;
2)蛇的移动要保证按照格子大小进行。
3、类描述
1)属性
1 /**食物 2 * 1.位置 3 * 2.宽度 4 * 3.高度 5 */ 6 7 class CFood 8 { 9 private:10 CPoint m_nPos;11 int m_nWidth;12 int m_nHeight; 13 }
1 /** 2 * 蛇身 3 * 1.位置 4 * 2.宽度 5 * 3.高度 6 */ 7 8 class CSection 9 {10 private:11 CPoint m_nPos;12 int m_nWidth;13 int m_nHeight; 14 }
1 /** 2 * 蛇 3 * 1.移动方向 4 * 2.蛇头位置 5 * 3.蛇身集合 6 */ 7 8 typedef enum 9 {10 LEFT, RIGHT, TOP, BOTTOM11 }DIRECTION;12 13 class CSection14 {15 private:16 DIRECTION m_way;17 CPoint m_head;18 CPtrList m_list;19 }
2)行为
1 /** 2 * 1.形状展示 3 * 2.获取位置 4 * 3.设置位置 5 */ 6 7 class CFood 8 { 9 public:10 void Draw(CDC *pDC);11 CPoint& GetPosition();12 void SetPosition(CPoint &pos); 13 }
1 /** 2 * 1.形状展示 3 * 2.获取位置 4 * 3.设置位置 5 */ 6 7 class CSection 8 { 9 public:10 void Draw(CDC *pDC);11 CPoint& GetPosition();12 void SetPosition(CPoint &pos); 13 }
1 /** 2 * 1.形状展示 3 * 2.获取位置 4 * 3.设置位置 5 * 4. 移动 6 * 5. 移动方向的设置或获取 7 * 6. 吃食物 8 * 7. 是否结束(碰到墙或自身) 9 */10 11 class CSnake12 {13 public:14 void Draw(CDC *pDC);15 void EatFood();16 bool IsOver();17 void Move();18 void SetWay(DIRECTION dir);19 DIRECTION GetWay; 20 }
4、运行结果
完整代码:
https://git.oschina.net/zhujf21st/Snake.git
阅读全文
0 0
- MFC实现贪吃蛇小游戏
- MFC 小游戏之贪吃蛇
- MFC对话框贪吃蛇小游戏
- Java ,实现贪吃蛇小游戏
- JavaScript, 实现贪吃蛇小游戏
- java实现贪吃蛇小游戏
- js实现贪吃蛇小游戏
- 贪吃蛇小游戏 C++实现
- 《Java小游戏实现》:贪吃蛇
- python实现小游戏-贪吃蛇
- JS实现贪吃蛇小游戏
- Javascript实现贪吃蛇小游戏
- html5实现贪吃蛇小游戏
- js实现贪吃蛇小游戏
- TypeScript实现贪吃蛇小游戏
- 使用MFC做贪吃蛇小游戏
- Excel下实现贪吃蛇小游戏
- js实现的贪吃蛇的小游戏
- 兼容各大主流浏览器的常用CSS Hack汇总
- Puppet的在centos6.6下的初步安装配置以及证书注册
- 获取应用程序所在目录的方法
- 折腾wordpress之路
- java web 基础学习步骤,,很适合初学者
- MFC实现贪吃蛇小游戏
- java排序之 选择排序
- TypeScript实现贪吃蛇小游戏
- WebStorm2016.1 破解 激活
- (转)关于尾递归的解释
- 何为Monad
- iperf3已不再支持双工模式测试
- Nginx报错403 forbidden (13: Permission denied)的解决办法
- Node.js中如何处理耗时长的任务