- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大连理工大学软件学院小学期成果展示项目报告
07组项目报告
项目名称 护蛋小分队 完成时间2017/07/13 总代码量 2400行 项目组长孟祥宇 小组成员 成员分工 自评成绩(A/B/C) 孟祥宇 项目报告、游戏框架、炫酷音效 A 胡文卿 游戏特效、靓丽图片、游戏逻辑 A 黄耕酉 游戏功能、子弹技能、强力优化 A 需求分析
概论
本游戏的实质是经典坦克大战。我们又结合了“愤怒的小鸟”主题元素,优化了游戏界面、游戏背景音乐和特效,同时增加了我方坦克的技能。
2.功能需求分析
游戏拥有单人游戏和双人游戏两种战斗模式,并附加有任务选择器,可以选择任意关卡。每关需要在复杂的地形上摧毁18名敌人才能通过,如果玩家的坦克被摧毁多次或己方基地被毁即算任务失败。
游戏中我方坦克拥有七种不同的炮弹:
①胖红:体型小,速度中等,伤害低,数量无限。
②飞镖黄:体型较小,速度快,伤害高。
③蓝弟弟:体型极小,速度中等,伤害低,击中目标后会像向垂直方向发射两个分身。
④炸弹黑:体型较大,速度慢,伤害低,击中目标后会在周围形成大范围爆炸。
⑤大红:体型极大,速度中等,摧毁正前方的一切。
⑥白公主:体型较大,速度中等,伤害低,会在发炮原地留下一颗“炸蛋”,同自身向前方飞行。三秒后,“炸蛋”会在周围造成小范围爆炸。
⑦长嘴绿:体型中等,可以回旋,并且摧毁回旋路径上的一切。
⑧追踪弹:自动追踪一头猪。
敌人拥有五种类型:
①普通猪:防御能力弱,伤害中等。
②队长猪:防御力中等,伤害中等。
④巨猪:体型极大,防御力高,子弹巨大,伤害高。
③国王猪:防御力极高,伤害极大。
④小猪:速度非常非常快
3.背景需求分析
护蛋小分队地形包括玻璃、石块、草丛、树木5种。游戏的结束、开始、暂停界面都有不同的动态背景图片和背景音乐。发射炮弹、摧毁地形、敌军死亡会有不同的音效。
游戏难度需求分析
游戏共有20关,游戏难度逐渐增加。从第十关开始,引入人工智能算法,让敌军可以判断我方坦克位置,并会智能地向我方移动和发射,而且会巧妙地躲避子弹。
5.游戏流程图
概要设计
结构图
坦克类:实现坦克的移动、射击、碰撞检测等功能
子弹类:实现子弹的移动、攻击、销毁等功能
墙类:实现不用的地图快
数据库:包括phonon、QImage、QIcon、QRect
数据结构
属性归属
属性类型
属性名称
属性意义
初始值
Tank
Wall
Missile
int
x,y
横纵坐标
0
int
w,h
长度宽度
0
int
live
生命值
100
int
kind
区别种类
0
Tank
Missile
DIR(枚举)
dir
方向
U
bool
good
区别敌我方
true
无
int型三维数组
map
储存地图
三维数组
3.类图
4.每一个类的主要内容:
功能测试
1.酷酷的界面:
2.美腻的选关系统
3.美轮美奂的游戏地图
4.四种炫酷的技能
5调皮的绿皮猪
实验小结
我们三人小组的这次合作非常成功,原本只是想做一个简单的坦克大战,能移动能开炮就行了,但是由于我们三个对游戏开发热情以及互相帮助,不到一个周就把游戏的基本功能全都实现了,之后的两个周就是开发各种新功能以及尽可能的优化游戏效果,最终版的效果非常完美。
但开发的过程也遇到了很多难题,比如我们在写双人模式时,“↑↓←→”四个按键失效,这个问题困扰了我们好一阵子,我们首先通过改用其它按键的方发锁定问题时“↑↓←→”没有被获取,后来经过查阅书籍、资料以及一个晚上的讨论,才解决这个由键盘焦点引发的问题。再有最大的问题就是菜单,一开始只准备写“开始、重新开始、退出”三个按钮,所以也不用注重什么逻辑,但后来增加“暂停/继续、下一关、选关、返回”等按钮时,就因为一开始的了逻辑漏洞出了很大的问题,浪费了好多时间。下次开始一个项目前,我得好好规划一下,一开始就为整个程序做好准备,把整个框架梳理出来,这样在以后加功能和优化代码时能更方便。最后就是分工,刚开始我们计划每个人负责一部分,分开写,但是经过两天的实践后,发现这种方法行不通。毕竟我们对QT基本上是一无所知的,所以立马改变策略——一起学,一起做。后来的开发实战证明了这一转变是正确的,我们三个人互相帮扶,开发的很快,也都学到了不少东西,最终的的游戏效果更是一流的棒。
体会:
孟祥宇:这次大作业,我不仅收获了人生中第一个拿得出手的程序,更是收获了和我并肩站的朋友两枚,值了值了。
胡文卿:果然是人在忙碌时时间就会过得飞快
我们每天上课做项目下午各做各的晚上又一起做项目
做项目的日子里我不仅学会了和队友的相处还收获了很多的经验和知识做项目的时候要明确分工知道自己应该做什么另外需求分析真的很重要最开始的时候就应该想好要做什么东西做出什么效果不然的话最后总是事倍功半
做项目的日子结束了但是我的收获将永存
原创力文档


文档评论(0)