嵌入式程序设计-打地鼠游戏设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式程序设计-打地鼠游戏设计
嵌入式程序设计
打地鼠
2013年6月3日
目录
1开发背
景 ..................................................................... ........................... 3 2功能描
述 ..................................................................... ........................... 3 3.基本原
理 ..................................................................... ........................... 3 4.系统总体设
计 ..................................................................... . (4)
4.1界面设
计 ..................................................................... . (4)
4.2 相关变量定
义 ..................................................................... .. (6)
4.3 内部类定义及方法说
明 (6)
5系统测
试 ..................................................................... . (16)
5.1 运行界面...................................................................... . (16)
1开发背景
打地鼠是一款常见的小游戏,简单有趣,深受人们的喜爱,本项目作为基于嵌入式WinCE课程设计和简单游戏编程而提出。希望通过开发《打地鼠》游戏,了解并掌握WinCE软件开发工具的使用,同时提高嵌入式设计的能力。
2功能描述
基本功能:地鼠随机出现在地图上,跟据鼠标点击事件捕获鼠标指针所在区域是否出现地鼠来判断玩家是否击中地鼠,玩家有10次失误机会。
3.基本原理
玩家触发游戏后,地鼠会随机出现在地图上,玩家通过鼠标击打地鼠,地鼠每隔一段时间机会随机出现在地图某一块,若玩家反映不及没有触发鼠标事件,地鼠随机出现别的地方玩家分数不变;若已触发鼠标事件且没有击中地鼠,玩家分数减少;击中则分数增加。
系统流程图:(主要部分的流程图)
4.系统总体设计
4.1界面设计
本系统设计了三个界面,一个是游戏运行界面,一个是成绩保存,一个历史最高纪录显示界面(玩家成绩)。
4.2 相关变量定义
int scorce;//得分
int randx=0,randy=0;//随机得到的地鼠坐标 int Total=10;//若有Total次击不中则游戏结束 typedef struct{
TCHAR name[20];//姓名
int score;//成绩
}User;
4.3 内部类定义及方法说明 void ReadScoreFile();//读取历史分数记录void WriteScoreFile();//将玩家的游戏分数写到文件中 void SortList();//对玩家分数排序
void InitData();//初始化数据
void EndGame();//游戏结束
void clearPicture(); //还原背景图
void drawPicture(int bmpNum);//画图 void chilkTrue(int x,int y);//判定是否击中
BOOL CDadishuDlg::OnInitDialog()
游戏初始化函数。
void CMengSnakeDlg::OnTimer(UINT nIDEvent)
计时器函数,自动根据时间变量来执行程序,随机为地鼠生
成一个坐标,并绘制到地图上。
void CDadishuDlg::OnLButtonDown(UINT nFlags, CPoint point)
消息处理函数,鼠标左键点击触发,主要用来打击地鼠。
void CDadishuDlg::OnPaint()
重绘函数,实现地图区域的绘制
游戏界面部分相关代码:
OOL CDadishuDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
// TODO: Add extra initialization here
HWND hwndCB;
hwndCB = CommandBar_Create(AfxGetInstanceHandle(), GetSafeHwnd(),0);
CommandBar_InsertMenubar(hwndCB, AfxGetInstanceHandle(), IDR_MENU1, 0);
return TRUE; // return TRUE unless you set the focus to a control }
//还原背景图
void CDadishuDlg::clearPicture()
{
PDC = GetDC();
CDC bmpDC;
bmpDC.CreateCompatibleDC(PDC);
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP3);
BITMAP bm;
bmp.GetBitmap(&bm);
bmpDC.SelectObject(bmp);