MFC贪吃蛇实验报告.doc

MFC贪吃蛇实验报告.doc

ID:50812018

大小:674.13 KB

页数:11页

时间:2020-03-14

MFC贪吃蛇实验报告.doc_第1页
MFC贪吃蛇实验报告.doc_第2页
MFC贪吃蛇实验报告.doc_第3页
MFC贪吃蛇实验报告.doc_第4页
MFC贪吃蛇实验报告.doc_第5页
资源描述:

《MFC贪吃蛇实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、贪吃蛇实验报告201221143049信计1212许圣概述此次课程设计我利用MFC制作了一个贪吃蛇游戏,用户可以通过上下左右控制蛇的移动方向,游戏会根据贪吃蛇身体的长度自动增加难度。在游戏过程中,会记录运行时间和所得分数,我还添加了bmp格式的图片作为游戏背景。1.功能描述2.1 设计思路本软件主要由三个模块构成,它们分别是蛇运行模块,初始化处理模块和显示模块。它们的作用分别是,初始化处理:初始化蛇头位置与第一个点位置;蛇运行模块:控制蛇的上下左右运行,并对蛇的运行状态进行判断,根据(吃点、未吃点、死亡等)状态进行不同的子程序模块处理以及游戏者是否能晋

2、级的判断;显示模块:根据对蛇和点子的当前状态进行动画显示。主要有以下步骤:1.定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。2.用数组初始化长度为4的贪吃蛇,并且默认出现一个食物。3.在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer()函数让系统提供一个时钟节拍,更新游戏4.具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇的长度来进行游戏难度的改变。5.具体键盘游戏操作

3、运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown()来响应玩家的实际操作。6.添加了bmp格式的图片作为游戏背景。整体流程图如下图1。设置自动移动定时器和增加食物定时器游戏开始桌面初始化初始化蛇头和蛇移动方向随机初始化一个食物到桌面蛇移动蛇吃食?蛇增长继续?蛇死亡?桌面上随机生成食物退出程序是是否否图1:系统流程图2.2功能介绍⑴运行程序,出现围墙界面,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,出现bmp格式图片的背景。⑵点击“游戏->游戏开始”,游戏开始。还可暂停游戏继续⑶游戏开始后,界面右下角会同步游戏得分。⑷通过四

4、个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束。⑸游戏会根据蛇身的长度自动调节难易程度。1.详细设计3.1 主要函数lvoidCSnakeView::OnDraw(CDC*pDC)//显示背景图片lvoidCSnakeView::OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags)//按照用户的按键来控制蛇的移动lvoidCSnakeView::OnTimer(UINTnIDEvent)//根据蛇的长度来进行SetTimer()函数的定义,可以根据长度来进行游戏难度的设定。

5、//撞界判断//蛇身相撞判断//抹掉蛇行走的痕迹//判断吃豆的条件,撞到就吃//如果食物被吃了就生成lvoidCSnakeView::oninit()//进行贪吃蛇外观的初始化lvoidCSnakeView::OnGameStart()//开始游戏lvoidCSnakeView::IniAim()//初始化目标的位置lvoidCSnakeView::IniGame()//初始化游戏lvoidCSnakeView::ReDisplay(CPointpPoint)lboolCSnakeView::ReadBmp(char*bmpName)3.2主要功能介绍

6、:3.2.1背景图片加载:定义变量和函数用于读取bmp图片做准备:BITMAPINFOHEADERhead;unsignedchar*pBmpBuf;boolReadBmp(char*bmpName);定义ReadBmp函数用于读取bmp格式的图片,在初始化的时候调用该函数ReadBmp("BootPic.bmp"),来读取背景图片。在OnDraw函数中实现对图片的刷新:CRectrec;GetClientRect(&rec);SetStretchBltMode(pDC->m_hDC,HALFTONE);SetBrushOrgEx(pDC->m_hDC

7、,0,0,NULL);StretchDIBits(pDC->m_hDC,rec.left,rec.top,rec.Width(),rec.Height(),0,0,head.biWidth,head.biHeight,pBmpBuf,(BITMAPINFO*)&head,DIB_RGB_COLORS,SRCCOPY);3.2.2初始化游戏:主要初始化蛇的初始化位置,实物的初始化位置:voidCSnakeView::IniGame(){m_nLeft=20;m_nTop=20;m_nWidth=40;m_nHeight=30;m_nSize=10;m_n

8、GameStatus=0;m_nDirect=1;m_nCount=0;m_aBody.Rem

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。