C课设研究报告(飞行射击游戏)

上传人:q****9 文档编号:179827914 上传时间:2021-04-13 格式:DOC 页数:19 大小:121.50KB
返回 下载 相关 举报
C课设研究报告(飞行射击游戏)_第1页
第1页 / 共19页
C课设研究报告(飞行射击游戏)_第2页
第2页 / 共19页
C课设研究报告(飞行射击游戏)_第3页
第3页 / 共19页
C课设研究报告(飞行射击游戏)_第4页
第4页 / 共19页
C课设研究报告(飞行射击游戏)_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C课设研究报告(飞行射击游戏)》由会员分享,可在线阅读,更多相关《C课设研究报告(飞行射击游戏)(19页珍藏版)》请在金锄头文库上搜索。

1、辽 宁 工 业 大 学C+语言程序设计课程设计(论文)题目: 一个简单的飞行射击游戏 院(系): 软 件 学 院 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间:2011.12.12-2011.12.25课程设计(论文)任务及评语院(系):软件学院 教研室:软件教研室学 号学生姓名专业班级课程设计(论文)题目一个简单的飞行射击游戏课程设计(论文)任务程序设计的任务与要求:(1). 掌握面向对象程序设计语言C+的基本语法(2). 掌握C+面向对象设计的思想(3). 掌握VC+6.0与DEV C+ 开发工具的使用 (4). 运用标准C+规范设计应用程序设计过程中,要严格遵守设计

2、的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩 成绩: 指导教师签字: 年 月 日 目 录第1章 课程设计目的与要求11.1 设计目的11.2实验环境11.3预备知识11.4设计要求1第2章 课程设计内容22.1 课题描述22.2 系统设计22.2.1功能分析32.2.2面向对象设计52.2.2类成员描述62.3程序实现72.3.1源码分析72.3.2运行结果14第3章 课程设计总结15参考文献16第1章 课程设计目的与要求1.1 设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进

3、行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一

4、步掌握在集成环境下如何调试程序和修改程序。1.2实验环境硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。1.3预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。1.4设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容2.1 课题描述项目选题为做一个飞行射击游戏。游戏中有各总各样的敌机和武器

5、,敌机按一定的几率出现,玩家消灭敌机后可得分数奖励,达到一定分数后会升级,游戏难度随着玩家级数的增加而增大。游戏有很多爆炸场面,增加了刺激性。屏幕上有各种各样的战斗机、子弹,他们的行为各异。面向对象允许各种角色的特性、行为等封装在各种各样的角色类中,作为游戏的其它功能模块,它不必关心角色是怎样运动的,而只需简单地让它自己去走,也即是把所有角色对象的Update()函数调用一次,简单得很。2.2 系统设计系统流程图说明:程序初始化后,开始登陆系统或者选择退出系统。系统登录成功后选择游戏级别,初玩者是从最低级别开始。随着游戏的进行,屏幕上显示各种详细的数据。包括帧速率,生命值,武器,杀敌,分数,级

6、数等。玩家胜利晋级,失败死亡。可以选择继续游戏或者退出系统。飞行射击游戏的系统流程图如下所示程序初始化登陆或者退出从相应级别开始射击详细数据显示晋级或者死亡退出系统图2.1飞行射击游戏系统流程图2.2.1功能分析游戏中有子弹系统、敌机系统、碰撞系统、图像显示等各个模块,将来还可能加入背景渲染、图形菜单、声音等功能模块。尽管各个模块均有复杂的功能,利用面向对象,我可以把各个模块功能的内部实现封装在一个个类中,只提供外部接口。这样,就可以做到各个模块只进行必要的通讯、交互,内部独立运作,互不干扰。操作方法: 按方向键飞行,按 Tab键武器,按空格键开火。 根据正常帧速率和当前帧速率的比例关系来重新

7、计算角色的移动速度,使游戏在较低配置的电脑上也能按正常的速度运行。(一)根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(二)在程序设计中,重点考虑的问题有:(1)数据类型的定义;(2)自定义构造函数的初始化与析构函数的调用;(3)数组与指针的使用;(4)虚函数的恰当运用;(4)每个类提供给外部函数的权限控制;(5)类的派生与继承的合理使用,友元函数的使用,还要重点考虑链表的正确运用

8、。(三)本程序涉及了面向对象的设计过程中的类的概念,其中有:(1)类的定义:类(Class)实际上是对某种类型的对象定义变量和方法的原型。示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。(2)类的构造函数的定义:与类名称具有一样名称的成员函数是构造函数。构造函数不能有返回值,甚至不能有return语句。说明一个有返回值的构造函数是错误的,取构造函数的地址也是错误的。如果一个类有构造函数,在程序中每个该类类型的对象在使用之前由此构造函数进行初始化,构造函数是在对象的创建点上被调用的。(3)析构函数的定义:析构函数是“反向”的构造函数。它们在对象被销毁(回收)时调用。设计一个函数

9、为类的析构函数只要在类名之前加上()号。(4)内联函数的定义:内联函数在调用时不是像一般的函数那样要转去执行被调用函数的函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节省调用开销,提高运行速度。2.2.2面向对象设计Sprite-x, y : double-sx, sy, w, h :int-cx, cy, cw, ch :int-dx, dy :double-Used :Bool-ExplosionFrameCount :int-Life, Atackness :int+Update() :void+AdjustPosition() :v

10、oid+OutOfClient() :bool+OutOfSight() :boolFighterPlane-LastFireTime : int-Firing: bool+LastFireTime : int+Firing :bool+SetLastFireTime():void+Update():void+Fire()=0: virtual void+StartFiring():void+StopFiring():voidEnermySystem-EnermyIndex : void-EnermyCount :void-Difficulty:void+EnermyIndex:void+En

11、ermyCount:void+Difficulty:void+CreateEnermy(int x, int y):void+ResetDifficulty():void+Update():void+AddDifficulty():voidEnermySystem-EnermyIndex : int-Difficulty : int-EnermyCount : int+CreateEnermy(int x, int y): void+AddDifficulty() :void+Update() :void+ResetDifficulty() :voidGameWorld-Width : int

12、-Height :int-PI : int+ShowInfomation() : void+Update() : void+KeyDown(WPARAM KeyCode) : void+KeyUp(WPARAM KeyCode) : void+EnermyFire(Enermy*pEnermy) : void+PlayerFire(Player *pPlayer) : void+ResetPlayer() : void+DrawSprite(Sprite *pSprite) : voidPlayer-speed :double-KillEnermy, Score :int+Update():v

13、oid+Action(ACTIONNewActi) :void+ChangeWeapon():void图2.2程序中的UML类图2.2.2类成员描述fighterplanebulletspritePlayerBullet_RoundBulletPlayerBullet_MissilePlayerBullet_FireenermyEnermy_MimiEnermy_JackEnermy_Tom图2.3 类成员描述图Sprite类描述: 所有角色类的基类主要数据成员:double , y;/ X坐标和Y坐标intsx, sy, w, h;/ 在素材位图中的位置矩形intcx, cy, cw, ch;/ 碰撞检测用矩形doubledx, dy;/ 速度intLife, Atackness;/ 生命, 攻击力intExplosionFrameCount,/ 爆炸动画帧数ExplosionFrameIndex;/ 爆炸动画当前帧BoolUsed;/ 标记是否应被丢弃Bullet类描述: 由Sprite类派生, 所有子弹类的基类主要成员函数:Bullet(GameWorld *pgw, int x_value, int y_value,double sprite_vx

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

当前位置:首页 > 办公文档 > 工作范文

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