毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
VC++贪吃蛇游戏设计+流程图(11)
(4)英雄榜对话框的设计
贪吃蛇英雄榜对话框的设计,单击英雄榜菜单栏时,即弹出当前英雄榜所记录的最高得分以及当前等级与大名。如图1.8所示。
(5)游戏帮助菜单的设计
贪吃蛇游戏帮助菜单的设计,单击游戏帮助菜单栏时,会弹出相关帮助对话框。如图1.9所示。
图1.9游戏帮助对话框
1.1.2 主游戏类设计
(1)果实出现的设计思路
A:采用随机数生成果实出现坐标。
B:判断当前生成的果实坐标是否在贪吃蛇身体范围内。
C:如果在,重新生成直至不在为止。如果不在,则把坐标位置返回给调用对象。
(2)贪吃蛇更新的设计思路
A:接收玩家按下的方向键消息,并保存到方向变量中。
B:定义一个时间定时器,时间间隔由游戏等级决定如图1.10所示。
时间间隔 游戏等级
100ms 低
50ms 中
30ms 高
图1.10时间间隔与游戏等级对照
C:当每次时间间隔到达时,则根据方向变量来更新贪吃蛇body向量。
D:判断body向量的第一个元素中的坐标数据是否碰到边界或者蛇身如果有转到G步
E:判断body向量中的第一个元素中的坐标数据是否与当前坐标重合,如果有,表示贪吃蛇已迟到果实。这时就向贪吃蛇body向量添加一个元素,并重新生成一个果实。
F:重绘整个贪吃蛇界面及果实。重复前面步骤A~F
G:游戏结束时,计算当前游戏分数,如果分数超过最高分,设置英雄榜中的写入标志并弹出英雄榜对话框;否则提示游戏结束。
1.1.3 核心算法设计
(1)主游戏类的实现
A:主游戏类的声明中包含了绘制蛇身函数,初始化游戏函数,随机果实分配函数以及设置当前游戏等级函数等的声明。代码如下:
#ifndef __SNAKE_GAME_H__
#define __SNAKE_GAME_H__
//主游戏类
#include "Afxtempl.h" //插入模板头文件
#define GAME_LEVEL_LOW 2
#define GAME_LEVEL_NOR 4
#define GAME_LEVEL_HIGH 8
#define DIREC_UP 1
#define DIREC_DOWN 2
#define DIREC_RIGHT 3
#define DIREC_LEFT 4
#define LOW_LEVEL_SLEEP 100
#define NOR_LEVEL_SLEEP 50
#define HIGH_LEVEL_SLEEP 30
class CSnakeGame:public CWnd
{
public:
void HeroWrite();
void ReDrawBody(CPoint pt);
void InitGame();
CSnakeGame();
virtual ~CSnakeGame();
BOOL GameStart(); //游戏开始函数
void InitFoods(); //初始化果实函数
void SetGameLevel(int level);
private:
CPoint m_psFood; //当前食物坐标
int m_nDirect; //当前蛇先进方向
int m_nScore; //当前游戏分数
int m_nlevel; //当前游戏等级
int m_nHighScore; //当前游戏最高分
CArray<CPoint,CPoint> m_body; //蛇身向量
共15页:
上一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
下一页
上一篇:
C#公司销售薪资系统设计+需求分析+ER图
下一篇:
asp.net操作系统教学网站设计论坛模块
vc++几种排序算法演示软件实现
VC++在线学习平台的设计
VC++BlackList的主机防火墙设计+源代码
VC++五子棋游戏的设计
VC++基于GPU高光谱图像目标检测方法
基于VC++五子连珠游戏的设计
基于VC++俄罗斯方块游戏的设计
AT89C52单片机的超声波测距...
10万元能开儿童乐园吗,我...
志愿者活动的调查问卷表
承德市事业单位档案管理...
神经外科重症监护病房患...
公寓空调设计任务书
C#学校科研管理系统的设计
医院财务风险因素分析及管理措施【2367字】
中国学术生态细节考察《...
国内外图像分割技术研究现状