游戏软件课程设计贪吃蛇07数媒0861203李建光

上传人:人*** 文档编号:432543565 上传时间:2023-12-06 格式:DOC 页数:21 大小:509KB
返回 下载 相关 举报
游戏软件课程设计贪吃蛇07数媒0861203李建光_第1页
第1页 / 共21页
游戏软件课程设计贪吃蛇07数媒0861203李建光_第2页
第2页 / 共21页
游戏软件课程设计贪吃蛇07数媒0861203李建光_第3页
第3页 / 共21页
游戏软件课程设计贪吃蛇07数媒0861203李建光_第4页
第4页 / 共21页
游戏软件课程设计贪吃蛇07数媒0861203李建光_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《游戏软件课程设计贪吃蛇07数媒0861203李建光》由会员分享,可在线阅读,更多相关《游戏软件课程设计贪吃蛇07数媒0861203李建光(21页珍藏版)》请在金锄头文库上搜索。

1、游戏软件设计课程报告(贪吃蛇游戏的实现)院系:数学与计算机科学系专业: 07数字媒体学号:20070861203姓名: 李建光指导教师:胥楚贵2010年10月23日目录一、应用程序的最终界面- 1 -1.1选题背景- 1 -1.2关于编译软件- 1 -1.3关于兼容性- 1 -第二章 概要设计- 2 -2.1软件主要功能设计- 2 -2.1.1程序结构- 2 -2.1.2程序流程- 2 -第三章 游戏实现- 4 -3.1变量函数及资源的声明- 4 -3.1.1函数声明- 4 -3.1.2变量声明- 4 -3.1.3资源- 5 -3.2主要功能的实现- 5 -3.2.1游戏界面控制- 5 -3.

2、2.2初始化食物- 6 -3.2.3游戏控制- 7 -3.2.4英雄榜- 9 -3.2.5游戏设置- 9 -第四章 结果与讨论- 10 -4.1程序运行- 10 -4.2错误调试与分析- 12 -一、应用程序的最终界面本游戏是通过键盘的方向键来控制贪吃蛇的运动的,最终运行所产生的界面效果如下:1.1.选题背景贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从

3、实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。1.2关于编译软件本程序采用Microsoft Visual C+6.0的英文版本进行编译。VisualC+6.0是Microsoft公司推出的基于Windows操作系统的可视化C+编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于其良好的界面和可操作性,加上支持标准C/C+规范,但仍有相当多的编程人员使用VisualC+6.0进行应用系统的开发。1.3关于兼容性本程序经过调试,可以在XP系统下编译运行,也可以在Vista下运行,界面稍有不同,但不影响运行结果。第二章 概要设计2.1软件主要功能设计2.1.1

4、程序结构根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,音乐音效的添加与控制,游戏帮助提示与英雄榜的显示等等。具体的程序结构如下面的图1-1所示。图2-1 贪吃蛇结构图2.1.2程序流程根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括: 游戏开始,随机出现食物;按下ToolBar中的暂停按钮或Space键可以实现暂停功能;按下帮助键或ToolBar中的“?”键可获得游戏帮助说明;可播放背景音乐和音效并可通过菜单以及ToolBar控制其播放或停止等等。图2-2 贪吃蛇流程图第三章 游戏实现3.1变量函数及资源的声明根据程序的结构,将贪

5、吃蛇需要实现的功能细化成为相应的函数。3.1.1函数声明void CYuShuoView:OnDraw(CDC* pDC) /在OnDraw函数中绘制游戏背景、游戏文字以及控制蛇的样式颜色。void CYuShuoView:YsInitFood() /初始化贪吃蛇的食物,使其随机生成void CYuShuoView:YsInitGame() /初始化贪吃蛇游戏参数void CYuShuoView:YsReDisplay(CPoint ysPoint) /重绘游戏窗口void CYuShuoView:OnYsBegin() /开始游戏(菜单响应消息)void CYuShuoView:OnYsPa

6、use() /暂停游戏(菜单响应消息)void CYuShuoView:OnYsStop() /停止游戏(菜单响应消息)void CYuShuoView:OnYsExit() /退出游戏(菜单响应消息)void CYuShuoView:OnYsEffect() /控制游戏音效void CYuShuoView:OnYsMusicbkg() /控制游戏背景音乐void CYuShuoView:OnYsLevel1() /控制游戏等级为初级void CYuShuoView:OnYsLevel2() /控制游戏等级为中级void CYuShuoView:OnYsLevel3() /控制游戏等级为高级v

7、oid CYuShuoView:OnYsHelpgame() /游戏帮助void CYuShuoView:OnYsBest() /英雄榜的显示3.1.2变量声明CArray m_ysBody; /定义点数组作为蛇的身体CPoint m_ysFood; /食物出现的点int m_ysTime; /显示时间int m_ysTime1; /满10则进一位使时间增加1秒int m_ysDirect; /方向控制变量int m_ysScore; /玩家成绩变量int m_yspausectrl; /暂停控制变量int m_yslevelctrl; /等级控制变量CString m_ysPlayer; /

8、玩家姓名int m_yseffectctrl; /音效控制变量int m_ysmusicctrl; /背景音乐控制变量3.1.3资源1、对话框IDD_YS_HELPGAME /游戏帮助说明IDD_YS_BEST /英雄榜IDD_YS_RETRY /停止游戏确认IDD_ABOUTBOX /关于游戏版本2、音乐IDR_YS_BKGMUSIC /游戏背景音乐IDR_YS_EAT /贪吃蛇吃到食物的音乐IDR_YS_LOWSCORE /游戏结束后得低分音乐IDR_YS_HIGHSCORE /游戏结束后得高分音乐3、位图IDB_YS_BITMAP /游戏背景图4、菜单/工具栏 IDR_MAINFRAME

9、 /系统自带菜单IDR_YS_TOOLBAR /自己创建的工具条5、 头文件mmsystem.h /播放音乐的相应文件 fstream.h /文件流文件 3.2主要功能的实现3.2.1游戏界面控制贪吃蛇游戏的游戏界面包括背景图片、蛇身体的绘制、蛇移动范围的绘制等等。其中贪吃蛇的身体用什么方法绘制,才可以使得其在游戏过程中可以实现“吃”的功能是很重要的。因此在游戏界面的初始绘制时就必须考虑到游戏时可能遇到的问题。本程序采用点数组CArray m_ysBody来存储贪吃蛇,点数组的功能很强大,可以添加点,同时可以获得蛇的长度,对于而后进行游戏中控制蛇的颜色以及音效的播放等都有很大的帮助。3.2.2

10、初始化食物确定用点数组存储贪吃蛇以后,贪吃蛇的食物如何达到随机出现,并且能够按照网格式与蛇头无偏差相接就是一个亟待解决的问题。随机出现应采用rand()函数来实现,而食物与蛇头无偏差相接则利用坐标来解决。设置两个整型变量m_ysX,m_ysY作为食物出现的点的坐标,令m_ysX= rand()%30, ,m_ysY= rand()%40即可。使随机出现的点能够整除最小网格,也就是使食物与蛇头无偏差相接。再由食物坐标(m_ysX,m_ysY)与蛇头坐标是否相同判断蛇是否“吃”到了食物,设置判断标签ysTag,如果吃到了,ysTag为1,则再出现下一个食物,反之,如果没吃到,则不出现食物直到标签为

11、1为止。最后,再将(m_ysX,m_ysY)赋给m_ysFood作为食物坐标,以便在其他函数中调用。在下面的图3-2中,我们可以看到,蛇的身体是与出现的食物在一条直线上的,完全可以达到相接的目的。图3-2 蛇与食物的相接/初始化贪吃蛇的食物void CYuShuoView:YsInitFood()int m_ysX,m_ysY;while(1)m_ysX=rand()%30; /随机生成横坐标使其与贪吃蛇的身体可以接上m_ysY=rand()%40; /随机生成纵坐标使其与贪吃蛇的身体可以接上int ysTag=0; /设置标签for(int i=0;i=m_ysBody.GetUpperBound();i+)/更改点数组中的点坐标CPoint ysPoint1=m_ysBody.GetAt(i); /获取贪吃蛇的身体坐标if(ysPoint1.x=m_ysX|ysPoint1.y=m_ysY)/如果身体的横坐标或纵坐标与食物的横纵坐标相同ysTag=1; /标签为真break;if(ysTag=0) /如果标签为假,结束循环break;m_ysFood=CPoint(m_ysX,m_ysY);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号