资源描述:
《可视化大作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、武汉理工大学《可视化编程》课程设计说明书目录1.概述及课设要求21.1基于MFC的贪吃蛇游戏设计与实现21.2概述22.简单的操作及功能说明33.MFC具体设计过程及相应模块的功能43.1创建工程43.2添加消息,成员函数,控件.43.3定义全局变量并确定贪吃蛇的基本大小43.4响应键盘操作的消息63.5对OnRButtonDown()具体添加代码73.6对贪吃蛇初始化(画图)73.7对相关控件的的功能设定83.8用画刷画一个背景,并画3个矩形区域.103.9贪吃蛇的前行中的具体的算法和判断.114.游戏运行的界面及相关的截图145系统设计过程中自己所遇到的问题及相
2、应的解决方法和解决过程。166结束语187参考文献:19本科课程论文评分标准2021武汉理工大学《可视化编程》课程设计说明书1.概述及课设要求1.1基于MFC的贪吃蛇游戏设计与实现1.游戏界面设计2.食物的初始化3.游戏开始以及具体实现1.2概述此次课程设计我利用MFC编写了一个贪吃蛇游戏,游戏拥有结束时计分,开始,暂停,继续,退出,重新开始等功能,并且随着贪吃蛇的长度的增加,刷新的速度(移动的速度)也会变快.21武汉理工大学《可视化编程》课程设计说明书2.简单的操作及功能说明⑴运行程序,游戏界面打开。⑵点击“游戏->游戏开始”,出现围墙界面,一条蛇在密闭的白色矩形
3、内,在围墙内随机出现一个食物,游戏开始。⑶通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束。⑷点击“游戏->游戏暂停”,暂停游戏。⑸点击“游戏->游戏继续”,继续游戏。⑹点击“游戏->游戏退出”,退出游戏。⑺点击“游戏->重新开始”,重新开始。⑻游戏会根据蛇身的长度自动调节难易程度。21武汉理工大学《可视化编程》课程设计说明书3.MFC具体设计过程及相应模块的功能3.1创建工程打开VisualC++新建一个MFCAppWizard单文档工程,取名snake3.2添加消息,成员函数,控件.首先在已有工程下的“Class
4、View”中右键CView类添加以下Windows信息1WM_KEYDOWN2WM_RBUTTONDOWN3WM_TIMER右键CView类选择“ADDVirtualFunciton”选OnInitialUpdate()这里的OnInitialUpdate()是对视图的初始化.后再在csnakeview类中添加一个成员函数oninit()用来对贪吃蛇的外观进行初始化.“ResourceView”进行控件的具体设计,这里我们在Menu文件夹中把“IDR_MAINFRAME”中默认的控件全部删除,后自己添加控件并建立类向导,如下图所示;3.3定义全局变量并确定贪吃蛇的基
5、本大小structSnake{21武汉理工大学《可视化编程》课程设计说明书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;F
6、ood.isfood=1;21武汉理工大学《可视化编程》课程设计说明书//TODO:Addyourspecializedcodehereand/orcallthebaseclass}我们假设贪吃蛇开始有3个节点,食物则是认为1无0有.3.4响应键盘操作的消息voidCSnakeView::OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags){//TODO:Addyourmessagehandlercodehereand/orcalldefaultswitch(nChar){caseVK_UP:if(Snake[0].direct!=
7、2)Snake[0].direct=1;break;caseVK_DOWN:if(Snake[0].direct!=1)Snake[0].direct=2;break;caseVK_LEFT:if(Snake[0].direct!=4)Snake[0].direct=3;break;caseVK_RIGHT:if(Snake[0].direct!=3)Snake[0].direct=4;break;}CView::OnKeyDown(nChar,nRepCnt,nFlags);CView::OnKeyDown(nChar,nRepCnt,nFlags);}分别对