- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
手把手教 “MFC版贪吃蛇教程”
写在前面的话
本次贪吃蛇教程主要知识点包括以下几个方面
1 CView 类中的消息响应
2 控件的消息响应
3 基于 CView 类内的具体游戏实现
4 数组
5 游戏图形的实现用 CDC 类实现。
本版游戏的具体实现是在 CViewl 类中实现,所以其他类不用添加任何代码。
由于此次贪吃蛇需要MFC 的开发环境,所以打开VisualC++新建一个 MFC AppWizard 单文档
工程,随意取名一个工程名称。
本次贪吃蛇基本流程与大体思想
1 定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的初始位置,长
度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。
2 用数组初始化长度为 3 的贪吃蛇,并且默认食物未出现
3 在 CView 类上运用 MFC 提供的 Windows 消息中 WM_TIMER 消息,运用 OnTimer()函数让系统
提供一个时钟节拍,更新游戏
4 具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中还包括根据蛇
的长度来进行游戏难度的改变。
5 具体键盘游戏操作运用到 Windows 消息响应中的 WM_KEYDOWN,用OnKeyDown()来响应玩家
的实际操作。
///////////////////////////////////////////////////////////////////////
第一部分
首先在已有工程下的 “ClassView”中右键CView 类添加以 Windows 信息
1 WM_KEYDOWN
2 WM_RBUTTONDOWN
3 WM_TIMER
再右键 CView 类选择 “ADD Virtual Funciton”选 OnInitialUpdate()
OnInitialUpdate()的功能如下:
视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用 OnDraw 前会调用
OnInitialUpdate,因此 OnInitialUpdate 是设置滚动视图的逻辑尺寸和映射模式的最合适
的地方。
时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate 后窗
口产生,然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,
就是 ONCREATE 只是产生 VIEW 的基本结构和变量而在OnInitialUpDate()中,主要初始化视
图中控件等。对各个变量进行初始化操作
所以我们要用这个函数来进行贪吃蛇的初始化工作。
再者还要添加一个成员函数 oninit()
进行贪吃蛇外观的初始化
控件的设计
再者是设计游戏的一些控件来控制 “游戏开始” “游戏结束” 和 “游戏暂停”。
我们可以点击 “工作空间”的 “ResourceView”进行控件的具体设计,这里我们在 Menu 文
件夹中把 “IDR_MAINFRAME”中默认的控件全部删除
右键其中的标题栏,点击属性,会得到一个菜单栏标题,我们分别建立 1 个菜单栏标题。这
里我们分别建 “游戏”。
点击并且在已有控件中的列表中点击属性,进行 “菜单项目属性”的设置。我们本别建立的
属性 “标明”与对应的 ID 有
游戏开始 IDM_START
游戏暂停 IDM_PAUSE
游戏继续 IDM_CONTINUE
游戏退出 IDM_EXIT
此处控件的设计是 “可见即可得”的控件操作
成功设置 ID 之后 我们分别右键
各项属性进行消息响应处理函数的生成
具体方法操作例子如
1 右键 “游戏开始”
2 点击 “类向导建立”
3 在 Message Maps 页面,在要进行消息响应的控件 ID 列表 Object IDs 中上选择对应的
ID, 这里我们选择 IDM_START,具体实现的环境是CView 类,所以我们必须把 “Class
name”的默认 “CMainFrame”改为 “CView类”,并且在 “Messages”类型设置中,用
“COMMAND”设置为其为命令消息。其余各项也按照同理进行设置。
PS:Windows 消息的分类有 3 种,标准消息,命令消息,通告消息
1 标准消息除 COMMAND 之外,所以 WM_开头都是标准消息
2 命令消息就是 COMMAND
3 通告消息由控件产生的消息,这类信息也能以 WM_COMMAND 类型出现
最后我们回到原来的 ClassView 去看看我们一共添加的函数
所有的函数集合全部有以
在此处我们可以看到我们添加的
您可能关注的文档
最近下载
- 苏州联控LNC820 860用户手册.pdf
- 除尘器滤筒计算.xlsx VIP
- 应急救援考试题及答案.docx VIP
- 【上海中考化学】2025年上海市中考化学试卷与答案(回忆版).docx VIP
- ”交通安全伴我行“中小学生交通安全主题班会.pptx VIP
- 计算机组成原理(电子科技大学)中国大学 MOOC 慕课 期末考试 答案.docx VIP
- TB 10433-2023 铁路工程混凝土实体质量检测技术规程 培训.pdf
- 小儿消滞颗粒调节小儿厌食症的肠道菌群变化(初诊)新.docx VIP
- 部编版六年级语文上册期末测试卷(含答案).doc VIP
- Lewa 里瓦G3F维护保养手册.pdf VIP
原创力文档


文档评论(0)