欢迎来到天天文库
浏览记录
ID:43419236
大小:135.01 KB
页数:10页
时间:2019-10-01
《贪吃蛇游戏设计报告(C++)[2]》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、青岛理工大学琴岛学院设计报告课题名称:贪吃蛇游戏设计学院:青岛理工大学琴岛学院专业班级:计算机网络技术091学号:200903120017学生:王三鹏指导教师:张秀国、宋传磊青岛理工大学琴岛学院教务处2010年12月29日10学生王三鹏指导教师张秀国、宋传磊课题名称贪吃蛇游戏设计设计时间2010.12.20-2010.12.31设计地点图书馆501设计目的熟练使用vc++,提高自身对MFC类的理解及更好的应用MFC类制作软件。指导教师评语系部教研室意见10目录一、需求分析………………………………………4二、设计说明………………………………………41.设计思路…………
2、…………………………………42.程序框图……………………………………………53.主要函数……………………………………………7三、代码实现………………………………………61.构造函数……………………………………………62.放置食物……………………………………………63.碰撞检测……………………………………………7四、问题解决………………………………………9五、总结展望………………………………………10六、参考文献………………………………………1010一、需求分析1.选题接到课程设计任务后,我们对曾经非常感兴趣的几款经典小游戏作了分析并筛选,然后发现使用MFC类库都可以
3、完成这些游戏的编译,但是我们刚刚学习,还不能完全掌握MFC类的使用和复杂的算法,但是我们相信通过一个简单的贪吃蛇游戏可以让我们对MFC得到充分的锻炼。2.功能使用MFC编译的游戏,我们预计实现游戏的开始、暂停、继续、等级的提升、难度的增加。3.重要的MFC1)CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。2)CDocumen
4、t文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)3)CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。4)CDialog对话框5)CPen笔,画线6)CBrush刷子,填充7)CBitmap位图8)CRgn区域,指定一块区域可以用于做特殊处理。9)CString字符串。封
5、装了C中的字符数组,非常实用。10)CPoint点,就是(x,y)对11)CRect矩形,就是(left,top,right,bottom)二、总体设计说明1.设计思路在数据结构上,用数组存储蛇以及蛇的运动区域。在数组中,每个元素有四个云感动方向,分别为RIGHT,LEFT,UP,DOWN.在没有蛇身的区域,数组的元素值为0。在蛇身的每个节点,用一个数组元素存储当前蛇节点的运动方向。通过改变数组中元素的值来表示蛇身的移动。在程序中运用定时器来保证蛇的持续移动。每个一定的时间间隔,蛇移动一格。在设计界面时。在VisualStudioC++6.0的环境下,建立基于对话框
6、的工程,在工程下设计游戏界面,实现贪食蛇运行算法。在对话框中画出一个矩形,在大矩形中,用20x20的像素单位表示每一个蛇的节点。当数组节点的值不为0的时候,在大矩形中画出相应的蛇的节点矩形。并在蛇每移动一小格的时候,重绘整个窗口。在对蛇身进行绘画时。通过数组元素的值将蛇身在对话框的矩形中显示出来。10在蛇身运动时,首先在蛇头位置蛇身增长一个节点,然后判断蛇头是否到达食物所在位置,若在食物所在位置,则蛇尾不减一,蛇身继续移动,若蛇头不在食物位置,则蛇尾减一,蛇身继续移动。若蛇头越界或者蛇头与蛇身重叠,则游戏结束。2.程序框图操作控制:如图1所示图1游戏控制:如图2所示
7、图2103.主要函数和变量:如表1表2所示表1主要函数和变量函数名所属类功能ReDisplay()CSnakeView刷新界面函数voidIniAim()CSnakeView消息处理函数m_nDirectCSnakeView运动方向m_pAimCSnakeView目前指向m_nGameStatusCSnakeView游戏是否进行m_nCountCSnakeView计分m_nTime,m_nTime1CSnakeView计时表2按钮控件资源清单ID按钮功能ID_APP_ABOUTVK_F1游戏介绍ID_GAME_STARTVK_F2游戏开始ID_APP_EXITV
此文档下载收益归作者所有