傻大方


首页 > 学习 >

基于|基于mfc的贪吃蛇程序设计(课程设计报告)( 二 )



按关键词阅读: 报告 课程设计 基于 程序设计 贪吃 MFC


把CDC想象成一张纸 , 每个窗口都有一个CDC相联系 , 负责画窗口 。
CDC有个常用子类CClientDC(窗口客户区) , 画图通常通过CClientDC完成 。
5 CDialog对话框 6 CWinApp应用程序类 。
似于C中的main函数 , 是程序执行的入口和管理者 , 负责程序建立、消灭 , 主窗口和文档模板的建立 。
最常用函数InitInstance():初始化 。
7 CGdiObject及子类,用于向设备文本画图 。
它们都需要在使用前选进DC 8 CPen笔 , 画线 9 CBrush刷子 , 填充 10 CFont字体 。

8、 , 控制文字输出的字体 11 CBitmap位图 12 CPalette调色板 13 CRgn区域 , 指定一块区域可以用于做特殊处理 。
14 CFile文件 。
最重要的不外是Open(打开),Read(读入),Write15 CString字符串 。
封装了C中的字符数组 , 非常实用 。
16 CPoint点 , 就是(x,y)CRect矩形 , 就是(left,top,right,bottom) 7数据结构7.1蛇的全局变量struct Snakeint x,y;
int len;
int direct;
Snake50;
7.2食物的全局变量struct Foodint x;
int y;
int isfood;
Food;


9、8主要函数1 void CMFCexp8_4View:OnDraw(CDC* pDC)/显示背景图片2 void CMFCexp8_4View:OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)/按照用户的按键来控制蛇的移动3 void CMFCexp8_4View:OnRButtonDown(UINT nFlags, CPoint point)/用鼠标右键屏幕 , 就会马上显示当前位置的坐标信息4 void CMFCexp8_4View:OnTimer(UINT nIDEvent)/根据蛇的长度来进行SetTimer()函数的定义 , 可以根据长度来进行 。

10、游戏难度的设定 。
/撞界判断/蛇身相撞判断/抹掉蛇行走的痕迹/判断吃豆的条件,撞到就吃/如果食物被吃了 就生成5 void CMFCexp8_4View:oninit()/进行贪吃蛇外观的初始化6 void CMFCexp8_4View:OnStart()/开始游戏7 void CMFCexp8_4View:OnPause()/游戏暂停8 void CMFCexp8_4View:OnContinue()/继续游戏9 void CMFCexp8_4View:OnExit()/退出游戏10 void CMFCexp8_4View:OnInitialUpdate()/初始化蛇的位置11 void CM 。

11、FCexp8_4View:OnDrawNew()/第二层白色正方形背景以及右下角的文字9代码实现9.1添加Windows信息在已有工程下的“ClassView”中右键CView类添加以下Windows信息3 WM_KEYDOWN3 WM_RBUTTONDOWN3 WM_TIMER右键CView类选择 “ADD Virtual Funciton”选OnInitialUpdate() , 再者还要添加一个成员函数oninit()进行贪吃蛇外观的初始化9.2控件的设计 我们可以点击“工作空间”的“ResourceView”进行控件的具体设计 , 设计游戏的一些控件来控制“游戏开始” “游戏结束” 和“游戏暂 。

12、停” 。
右键其中的标题栏 , 点击属性 , 会得到一个菜单栏标题 , 我们建立“游戏”菜单栏标题 。
点击并且在已有控件中的列表中点击属性 , 进行“菜单项目属性”的设置 。
分别建立的属性“标明”与对应的ID有游戏开始IDM_START游戏暂停IDM_PAUSE游戏继续IDM_CONTINUE游戏退出IDM_EXIT 成功设置ID之后 , 分别单击右键各项属性进行消息响应处理函数的生成 , 具体方法操作例子如下:右键“游戏开始”点击“类向导建立”在Message Maps页面 , 在要进行消息响应的控件ID列表Object IDs中上选择对应的ID, 这里我们选择IDM_START , 具体实现的环境是CView类 , 所以我们必须 。

13、把“Class name”的默认“CMainFrame”改为“CView类” , 并且在“Messages”类型设置中 , 用“COMMAND”设置为其为命令消息 。
其余各项也按照同理进行设置 。
9.3具体实现游戏9.3.1在文件开头处分别定义蛇和食物 的全局变量/定义蛇的全局变量struct Snakeint x,y;
int len;
int direct;
Snake50;
/定义食物的全局变量struct Foodint x;
int y;
int isfood;
Food;
9.3.2初始化蛇的位置void CMFCexp8_4View:OnInitialUpdate() CView:OnInitialUpda 。

14、te();
Snake0.x=10;
/初始化起点坐标Snake0.y=10;
Snake1.x=11;
Snake1.y=10;
Snake2.x=12;
Snake2.y=10;
Snake0.direct=3;
/初始化贪吃蛇起初有3个节点 , 长度为3Snake0.len=3;
Food.isfood=1;
/食物默认为1无0有OnInitialUpdate()的功能如下:视图窗口完全建立后第一个被框架调用的函数 。
框架在第一次调用OnDraw前会调用OnInitialUpdate , 因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方 。
时间上 , 两者先后顺序不同 , 构造函数生成本类的对 。

15、象 , 但没有产生窗口 , OnCreate后窗口产生 , 然后才是视图的OnInitialUpDate , 一般在这里对视图的显示做初始化 。
简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中控件等 。
对各个变量进行初始化操作 , 所以我们要用这个函数来进行贪吃蛇的初始化工作 。


稿源:(未知)

【傻大方】网址:/a/2021/0707/0022751787.html

标题:基于|基于mfc的贪吃蛇程序设计(课程设计报告)( 二 )


上一篇:基于|基于mfc的贪吃蛇程序设计(课程设计报告)

下一篇:六一|庆六一领导讲话稿