MFC写的贪吃蛇代码.doc

MFC写的贪吃蛇代码.doc

ID:57013741

大小:1.14 MB

页数:33页

时间:2020-07-30

MFC写的贪吃蛇代码.doc_第1页
MFC写的贪吃蛇代码.doc_第2页
MFC写的贪吃蛇代码.doc_第3页
MFC写的贪吃蛇代码.doc_第4页
MFC写的贪吃蛇代码.doc_第5页
资源描述:

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

1、手把手教“MFC版贪吃蛇教程”写在前面的话本次贪吃蛇教程主要知识点包括以下几个方面1CView类中的消息响应2控件的消息响应3基于CView类内的具体游戏实现4数组5游戏图形的实现用CDC类实现。本版游戏的具体实现是在CViewl类中实现,所以其他类不用添加任何代码。由于此次贪吃蛇需要MFC的开发环境,所以打开VisualC++新建一个MFCAppWizard单文档工程,随意取名一个工程名称。本次贪吃蛇基本流程与大体思想1定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长度

2、,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。2用数组初始化长度为3的贪吃蛇,并且默认食物未出现3在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer()函数让系统提供一个时钟节拍,更新游戏4具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇的长度来进行游戏难度的改变。5具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown()来响应玩家的实际操作。/////////

3、//////////////////////////////////////////////////////////////第一部分首先在已有工程下的“ClassView”中右键CView类添加以下Windows信息1WM_KEYDOWN2WM_RBUTTONDOWN3WM_TIMER再右键CView类选择“ADDVirtualFunciton”选OnInitialUpdate()OnInitialUpdate()的功能如下:视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用OnDraw前会调

4、用OnInitialUpdate,因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中控件等。对各个变量进行初始化操作所以我们要用这个函数来进行贪吃蛇的初始化工作。再者还要添加一个成员

5、函数oninit()进行贪吃蛇外观的初始化控件的设计再者是设计游戏的一些控件来控制“游戏开始”“游戏结束”和“游戏暂停”。我们可以点击“工作空间”的“ResourceView”进行控件的具体设计,这里我们在Menu文件夹中把“IDR_MAINFRAME”中默认的控件全部删除右键其中的标题栏,点击属性,会得到一个菜单栏标题,我们分别建立1个菜单栏标题。这里我们分别建“游戏”。点击并且在已有控件中的列表中点击属性,进行“菜单项目属性”的设置。我们本别建立的属性“标明”与对应的ID有游戏开始IDM_STAR

6、T游戏暂停IDM_PAUSE游戏继续IDM_CONTINUE游戏退出IDM_EXIT此处控件的设计是“可见即可得”的控件操作成功设置ID之后我们分别右键各项属性进行消息响应处理函数的生成具体方法操作例子如下1右键“游戏开始”2点击“类向导建立”3在MessageMaps页面,在要进行消息响应的控件ID列表ObjectIDs中上选择对应的ID,这里我们选择IDM_START,具体实现的环境是CView类,所以我们必须把“Classname”的默认“CMainFrame”改为“CView类”,并且在“Me

7、ssages”类型设置中,用“COMMAND”设置为其为命令消息。其余各项也按照同理进行设置。PS:Windows消息的分类有3种,标准消息,命令消息,通告消息1标准消息除COMMAND之外,所以WM_开头都是标准消息2命令消息就是COMMAND3通告消息由控件产生的消息,这类信息也能以WM_COMMAND类型出现最后我们回到原来的ClassView去看看我们一共添加的函数所有的函数集合全部有以下在此处我们可以看到我们添加的Windows消息所有的消息响应函数的声明//////////////////

8、////////////////////////////////////////第二部分具体实现游戏、Step1首先我们在文件开头处分别定义蛇和食物的全局变量structSnake{intx,y;intlen;intdirect;}Snake[50];structFood{intx;inty;intisfood;}Food;再者voidCSNAKEView::OnInitialUpdate(){CView::OnInitialUpdate();Snake

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

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

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