贪吃蛇C++设计报告.doc

贪吃蛇C++设计报告.doc

ID:57048192

大小:66.50 KB

页数:17页

时间:2020-07-31

贪吃蛇C++设计报告.doc_第1页
贪吃蛇C++设计报告.doc_第2页
贪吃蛇C++设计报告.doc_第3页
贪吃蛇C++设计报告.doc_第4页
贪吃蛇C++设计报告.doc_第5页
资源描述:

《贪吃蛇C++设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、中南大学本科生课程设计(实践)任务书、设计报告(C++程序设计)题目贪吃蛇学生姓名张华强指导教师曹岳辉学院土木工程学院专业班级土建1221学生学号1208122119计算机基础教学实验中心2013年7月1日  贪吃蛇内容:1CView类中的消息响应2控件的消息响应3基于CView类内的具体游戏实现4数组5游戏图形的实现用CDC类实现。关键字:CViewShakeMFC函数1.贪吃蛇开发设计思想1定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以

2、及食物是否被吃掉的判断。2用数组初始化长度为3的贪吃蛇,并且默认食物未出现3在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer()函数让系统提供一个时钟节拍,更新游戏4具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇的长度来进行游戏难度的改变。5具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown()来响应玩家的实际操作。2.系统功能及系统设计介绍详细设计:第一部分首先在已有工程下的“ClassView”中右键CVie

3、w类添加以下Windows信息1WM_KEYDOWN2WM_RBUTTONDOWN3WM_TIMER再右键CView类选择“ADDVirtualFunciton”选OnInitialUpdate()OnInitialUpdate()的功能如下:视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用OnDraw前会调用OnInitialUpdate,因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,

4、然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中控件等。对各个变量进行初始化操作所以我们要用这个函数来进行贪吃蛇的初始化工作。再者还要添加一个成员函数oninit()进行贪吃蛇外观的初始化控件的设计再者是设计游戏的一些控件来控制“游戏开始”“游戏结束”和“游戏暂停”。我们可以点击“工作空间”的“ResourceView”进行控件的具体设计,这里我们在Menu文件夹中把“IDR_MA

5、INFRAME”中默认的控件全部删除右键其中的标题栏,点击属性,会得到一个菜单栏标题,我们分别建立1个菜单栏标题。这里我们分别建“游戏”。点击并且在已有控件中的列表中点击属性,进行“菜单项目属性”的设置。我们本别建立的属性“标明”与对应的ID有游戏开始IDM_START游戏暂停IDM_PAUSE游戏继续IDM_CONTINUE游戏退出IDM_EXIT此处控件的设计是“可见即可得”的控件操作成功设置ID之后我们分别右键各项属性进行消息响应处理函数的生成第二部分具体实现游戏、Step1首先我们在文件开头处分别定义蛇和食物的全局变量

6、structSnake{intx,y;intlen;intdirect;}Snake[50];structFood{intx;inty;intisfood;}Food;再者voidCSNAKEView::OnInitialUpdate(){CView::OnInitialUpdate();Snake[0].x=10;Snake[0].y=10;Snake[1].x=11;Snake[1].y=10;Snake[2].x=12;Snake[2].y=10;Snake[0].direct=3;Snake[0].len=3;Food

7、.isfood=1;//TODO:Addyourspecializedcodehereand/orcallthebaseclass}代码说明:初始化贪吃蛇起初有3个节点,长度为3,起始坐标;食物默认为1无0有当然我更加喜欢0无1有Step2对OnKeyDown()具体添加代码voidCSNAKEView::OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags){//TODO:Addyourmessagehandlercodehereand/orcalldefaultswitch(nChar){c

8、aseVK_UP:if(Snake[0].direct!=2)Snake[0].direct=1;break;caseVK_DOWN:if(Snake[0].direct!=1)Snake[0].direct=2;break;caseVK_LEFT:if(Snake[0].d

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

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

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