飞机大战设计报告+开发计划讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目设计报告项目名称:进击的飞机
目录
一、游戏整体概括 (3)
1.1 游戏概括 (3)
1.2 开发环境 (3)
二、系统需求分析 (4)
2.1用户功能需求分析 (4)
2.2 系统性能要求 (4)
2.3业务流程分析 (4)
三、系统总体设计 (5)
3.1 系统功能模块分析 (5)
3.2 系统类关系图 (5)
3.3 系统总体设计 (6)
四、系统详细设计 (8)
4.1 开发工具简介 (8)
4.2 游戏界面设计 (8)
4.2.1游戏开始界面ReadyView (8)
4.2.2游戏主界面MainView (9)
4.2.2.1 鼠标控制玩家飞机移动 (10)
4.2.2.2 碰撞逻辑 (10)
4.2.2.3 游戏暂停 (11)
4.2.3帮助界面HelpView (11)
4.2.4游戏失败界面EndView (12)
五、游戏开发计划 (13)
5.1游戏开发计划表 (13)
5.2 游戏开发计划具体分工 (15)
一、游戏整体概括
1.1游戏概括
本项目是一个基于android平台的、集休闲娱乐、互动交友、丰富生活等诸多元素与一身的手机竞技类游戏。
旨在通过此应用的设计与推广,为社会大众的生活增添乐趣与新意。
本项目产品名称为“进击的飞机”,功能丰富完善,界面简洁流畅,游戏方式简单,玩家易于上手。
1.2开发环境
开发环境:Windows 7 & Windows 8.1
开发工具:Eclipse
开发语言:Java
开发平台:Android ADT
二、系统需求分析
2.1用户功能需求分析
由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。
一般用户经过几分钟练习就可以掌握游戏规则。
2.2 系统性能要求
①实时性:本应用为手机游戏因此对于用户的操作必须做出立即响应,否则本游戏即为失败。
②易操作性:单机手机游戏的最大特点即为易操作性,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏的规则。
这是本应用对于操作性的要求。
2.3业务流程分析
三、系统总体设计
3.1 系统功能模块分析
当前应用使用的SurfaceView来绘制的页面,因此相对来说大部分逻辑都是由View类来做处理的。
本系统的功能模块也根据View的不同来划分成3个功能模块。
3.2 系统类关系图
系统实体类、边界类、控制类之间的关系如图3-1所示:
图3-1 实体类、控制类、边界类之间的关系
各个界面类之间的关系如图3-2所示:
图3-2 APP边界类关系
3.3 系统总体设计
系统的中只有玩家一种用户,不必向其他的网站或者是教务系统一样进行身份验证等操作。
玩家点击应用图标直接进入应用的开始界面。
用户的操作总体可以归并成如3-3玩家用例图所显示的内容,子弹的用例图如图3-4所示,飞机的用例图如图3-5所示,游戏总体结构类图如图3-6所示。
用户的操作基本可以划分为“开始游戏”,“游戏帮助”,“玩游戏”,“退出游戏”这四个用例。
图3-3 玩家用例图
图3-4 子弹用例图图3-5 飞机用例图
图3-6 游戏总体结构类图
四、系统详细设计
4.1 开发工具简介
Android开发工具(ADT)是一个插件的Eclipse IDE,目的是给开发人员提供一个强大的、集成的环境中构建Android应用程序。
扩展能力的Eclipse ADT让你迅速建立新的Android项目,创建一个应用程序的用户界面,添加基于安卓框架的API,调试您的应用程序使用Android SDK工具,生成apk文件在使用Eclipse运行Android应用的时候Eclipse会自动的将生成的apk文件自动的注册到Android虚拟机中。
在Eclipse ADT发展与高度推荐,是一种最快的方式开始。
与引导项目设置它提供,以及工具集成、定制XML编辑器和调试输出窗格,ADT给了你极大的提高
在发展中Android应用程序。
使用Eclipse集成Android ADT做Android应用开发是目前企业中常用的Android应用开发方式。
4.2 游戏界面设计
4.2.1游戏开始界面ReadyView
使用SurfaceView将图4-1中的未被按下的按钮和图4-3游戏开始界面背景图片绘制成游戏开始界面图4-4。
图4-1 未被按下的按钮图标集图
图4-2 被按下的按钮图标集
图4-3 开始界面背景图片图4-4 开始界面
4.2.2游戏主界面MainView
本界面与开始界面都是使用SurfaceView绘制的界面,绘制的游戏界面如图4-8所示:
图4-5 游戏界面
4.2.2.1鼠标控制玩家飞机移动
使用鼠标控制玩家飞机的移动,在自定义的SurfaceView的onTouchEvent 方法中对于按下区域是否在玩家飞机图片所在位置做出判定,如果在,则在拖动的过程中不断获得鼠标的坐标,并将该坐标传递给玩家飞机,以此来使玩家飞机随着鼠标的位置移动。
图4-6 鼠标控制玩家飞机序列图
4.2.2.2碰撞逻辑
判断飞机是否中弹的逻辑非常简单就是在绘制飞机与子弹的时候判断两个图片是否存在重合的部分,如果存在则在该重合位置绘制一个爆炸图片,之后将中弹飞机从飞机队列中删除,子弹同样的处理。
飞机中弹序列如图4-7所示:
图4-7 飞机中弹序列图
4.2.2.3游戏暂停
使用SurfaceView绘制按钮,按钮图如4-8所示:
图4-8 游戏暂停、开始按钮
4.2.3帮助界面HelpView
本界面还是使用SurfaceView绘制的界面,绘制的界面如图4-9所示:
图4-9 游戏帮助界面
4.2.4游戏失败界面EndView
使用SurfaceView将图4-10中的未被按下的按钮和图4-12游戏结束界面背景图片绘制成游戏结束界面图4-13。
图4-10 未被按下的按钮图标集图
图4-11 被按下的按钮图标集
图4-12 结束界面背景图片图4-13 结束界面
五、游戏开发计划
5.1游戏开发计划表
周数本周工作进度要求(截止日期)
第3周分析游戏需求,撰写游戏需求报告和游戏设计报告星期五:进行讨论;
星期六:需求报告和设计报告。
第4周根据需求分析和设计报告准备所有图片及音效,游戏生命周期
MainActivity(1个)星期六:游戏生命周期MainActivity(1个);游戏音效的准备;
星期日:准备游戏图片。
第5周游戏准备界面ReadyView(1个),游戏进行界面MainView(1个),游戏
帮助界面HelpView(1个),按钮(4
个),添加游戏点击按钮音效(4个),
添加游戏背景音乐(1个),
MainActivity到ReadyView的跳转,星期六:游戏准备界面ReadyView (1个);MainActivity到ReadyView的跳转;按钮(三个),各View之间的跳转;
星期日:游戏进行界面MainView (1个),MainView背景无限移动
5.2 游戏开发计划具体分工
第3周:
本周工作:分析游戏需求,撰写游戏需求报告和游戏设计报告;
分工:
XXX:
星期五:与大家一起讨论游戏的需求及设计;
星期六至星期日:撰写游戏需求分析和设计报告;
XX:
星期五:与大家一起讨论游戏的需求及设计;
星期六至星期日:撰写游戏需求分析和设计报告;
XXX:
星期五:与大家一起讨论游戏的需求及设计;
星期六至星期日:撰写游戏需求分析和设计报告;
第4周:
本周工作:根据需求分析和设计报告准备所有图片及音效,游戏生命周期
MainActivity(1个);
分工:
XXX:
星期六:游戏生命周期MainActivity(1个);
XX:
星期六:准备游戏音效;
XXX:
星期日:准备游戏图片;
第5周:
本周工作:游戏准备界面ReadyView(1个),游戏进行界面MainView(1个),游戏帮助界面HelpView(1个),按钮(4个),添加游戏点击按钮音效(4个),添加游戏背景音乐(1个),MainActivity到ReadyView的跳转,MainView背景无限移动功能,各View之间的跳转;
分工:
XXX:
星期六:游戏准备界面ReadyView(1个);
星期日:游戏进行界面MainView(1个),MainView背景无限移动功能,添加游戏背景音乐(1个);
XX:
星期六:MainActivity到ReadyView的跳转;
星期日:游戏帮助界面HelpView(1个);
XXX:
星期六:按钮(三个),各View之间的跳转;
星期日:添加游戏点击按钮音效(4个),图片进一步美工工作;
第6周:
本周工作:创建工厂初始化游戏所需所有实体GameObjectFactory.class(1个),创建音乐池GameSoundPool.class(1个),创建玩家飞机角色MyPlane.class(1个),敌机角色库EnemyPlay.class(1个),子弹角色库Bullet.class(1个)。
分工:
XXX:
星期六:创建工厂初始化游戏所需所有实体GameObjectFactory.class(1个);
星期日:创建玩家飞机角色MyPlane.class(1个);
XX:
星期六:创建音乐池GameSoundPool.class(1个);
星期日:敌机角色EnemyPlane.class(1个);
XXX:
星期六:游戏进一步美工工作;
星期日:子弹角色Bullet.class(1个);
第7周:
本周工作:创建小型SmallPlane.class、中型MiddlePlane.class、大型BigPlane.class、Boss型敌机角色库BossPlane.class(各1个,共4个),创建玩家飞机普通子弹角色库MyBullet.class和Boss型敌机子弹角色库BossBullet.class (各1个,共2个),实现玩家飞机发射子弹功能,实现玩家飞机子弹与各敌机的碰撞探测,实现Boss子弹和玩家飞机的碰撞探测,实现玩家飞机与各敌机的碰撞探测。
分工:
XXX:
星期五:实现玩家飞机发射子弹功能;
星期六:实现玩家飞机子弹与各敌机的碰撞探测,实现Boss子弹和玩家飞机的碰撞探测;
星期日:实现玩家飞机与各敌机的碰撞探测
XX:
星期六至星期日:创建小型SmallPlane.class、中型MiddlePlane.class、大型BigPlane.class、Boss型敌机角色库BossPlane.class(各1个,共4个);XXX:
星期六:创建玩家飞机普通子弹角色库MyBullet.class和Boss型敌机子弹角色库BossBullet.class(各1个,共2个);
星期日:游戏进一步美工工作;
第8周:
本周工作:游戏失败界面EndView.class(1个),按钮(2个),添加按钮音效(2个),添加飞机发射子弹音效(1个),添加飞机爆炸音效(4个),实现EndView 与MainView之间的跳转,实现玩家飞机的触屏控制。
分工:
XXX:
星期六:游戏失败界面EndView.class(1个);
星期日:实现玩家飞机的触屏控制;
XX:
星期六:按钮(2个),添加按钮音效(2个);
星期日:实现EndView与MainView之间的跳转;
XXX:
星期六:添加飞机发射子弹音效(1个),添加飞机爆炸音效(4个);
星期日:游戏进一步美工工作。
第9周:
本周工作:创建游戏暂停/继续按钮(1个);创建玩家礼包库GameGoods.class (1个);创建子弹礼包库BulletGoods.class(1个);创建炸弹礼包库MissileGoods.class(1个);实现玩家使用炸弹清屏功能;添加玩家得到礼包音效(1个);添加点击按钮音效(1个);实现游戏暂停功能。
分工:
XXX:
星期五:创建玩家礼包库GameGoods.class(1个);
星期六:创建子弹礼包库BulletGoods.class(1个);
XX:
星期五:创建游戏暂停/继续按钮(1个),实现游戏暂停功能;
星期六:添加点击按钮音效(1个),添加玩家得到礼包音效(1个);
XXX:
星期五:创建炸弹礼包库MissileGoods.class(1个),实现玩家使用炸弹清屏功能;
星期六:游戏进一步美工工作。
第10周:
本周工作:创建玩家升级子弹角色MyBullet2.class(1个),实现玩家飞机子弹升级功能,游戏计分功能实现,游戏关卡的实现。
分工:
XXX:
星期六:创建玩家升级子弹角色MyBullet2.class(1个);
星期日:实现玩家飞机子弹升级功能;
XX:
星期六:游戏计分功能实现;
XXX:
星期日:游戏关卡的实现,游戏进一步美工工作。
第11周:
本周工作:游戏测试,调试错误,撰写测试报告。
分工:
XXX:
星期六:游戏测试(白盒测试);
星期日:根据测试结果调试,撰写测试报告;
XX:
星期六:游戏测试(白盒测试);
星期日:根据测试结果调试,撰写测试报告;
XXX:
星期六:游戏测试(白盒测试);
星期日:根据测试结果调试,撰写测试报告;
第12周:
本周工作:游戏测试,调试错误,撰写测试报告。
分工:
XXX:
星期六:游戏测试(黑盒测试);
星期日:根据测试结果调试,撰写测试报告;
XX:
星期六:游戏测试(黑盒测试);
星期日:根据测试结果调试,撰写测试报告;
XXX:
星期六:游戏测试(黑盒测试);
星期日:根据测试结果调试,撰写测试报告;
第13周:
本周工作:制作答辩PPT,将游戏上传到市场进行调研,总结用户评论,提出改进方案。
分工:
XXX:
星期一至星期日:将游戏上传到市场进行调研,总结用户评论,提出改进方案;
XX:
星期六至星期日:制作答辩PPT;
XXX:
星期一至星期日:总结用户评论,提出改进方案;
第14周:
本周工作:将改进的升级版本上传到市场上,继续搜集用户的反馈,进行最后的总结,代码、程序和文档的整理。
分工:
XXX:
星期一至星期日:将改进的升级版本上传到市场上,继续搜集用户的反馈,进行最后的总结;
XX:
星期六至星期日:代码、程序和文档的整理;
XXX:
星期日:搜集用户的反馈,对游戏进行改进。