团队作业第3周——需求改进&系统设计(crtl冲锋队)
2、需求&原型改进:
1.问题:游戏中我方飞机和敌方飞机是怎么控制的?
改进:
在游戏中,我控制我方飞机,按下方向键飞机便向按下的方向移动,按下Z键,我方飞机发射子弹。
敌方飞机面向随机的方向移动,并向面向的方向发射子弹,子弹有cd,地图上敌机数量不会太多,所以不会出现没位置躲的情况,子弹按发射时的方向沿直线匀速射出。
分析:自上而下
A)找到这个游戏中的对象:窗体、敌方飞机、我方飞机、红色子弹(敌方)、蓝色子弹(我方)、爆炸
B)找到对象之间的关系:在窗体上有我方飞机和敌方飞机,我方飞机发射蓝色子弹,敌方飞机发射红色子弹,我方飞机遇到红色子弹后血量减1,血量为0时爆炸,敌方飞机遇到蓝色子弹后爆炸。我方飞机和对方飞机同属飞机类,红色子弹和蓝色子弹同属子弹类。
2.问题:飞机和子弹的属性有没有更加具体化?
改进:
飞机:
我方飞机:(类变量)长度、宽度、速度、位置、面向的方向、血量
(方法) 移动、打炮、减血
敌方飞机:长度、宽度、速度、位置、面向的方向
移动、发炮
炮弹:
红色炮弹:大小、颜色、速度、位置、方向
移动、碰撞
蓝色炮弹:大小、颜色、速度、位置、方向
移动、碰撞
爆炸:长度、宽度、位置
爆炸
3.问题:游戏核心玩法是怎样的?游戏什么时候通关,什么时候结束?
我方飞机基础血量为5
当我方飞机的子弹击中对方飞机的时候,对方飞机爆炸,之后被击中的飞机消失,游戏继续。当对方飞机的子弹击中我方飞机的时候,我方血量减1,当我方血量为0的时候,我方飞机爆炸,此时游戏结束。
3、系统设计:
游戏代码中核心的内容包括Plane接口、Missile接口、Prop接口、各个接口的实现类和MainFrame类。
1. Plane接口
属性:飞机接口是最主要的接口,包含了飞机的一些基本的属性,如初始坐标、移动速度、方向、血量等。
方法:
1 draw()方法,绘制飞机
2 move()方法则是控制飞机坐标移动
3 reload()方法用来构建子弹对象
4 fire()用来实现子弹发射
5 explode()方法处理爆炸
6 useProp()方法实现使用道具的效果
7 lifeControl()方法用于调整血量,碰到子弹和回血时使用
2. Missile接口(导弹接口)
属性:子弹的初始坐标x、y,子弹的存活情况、方向。
方法:
1 draw()方法,绘制子弹
2 move()控制子弹的移动
3 locate()返回当前子弹的坐标
4 isOut()判断子弹是否飞出界面及处理
5 isRed()判断是否敌方子弹
6 isBlue()判断是否我方子弹

3. MainFrame类
属性:主面板中属性较少,主要是一些对象创建的工作,也有一些全局变量,如有grade,记录玩家的分数。
方法:
1 paint()方法是最重要的方法之一,所有的可视化对象都必须在此方法中实例化,并绘制。包括飞机,子弹,墙壁,以及信息栏的文字信息,都需要在此方法中随主面板实时刷新,也因此能看到对象的移动。
2 update()方法是双缓冲技术的实现,主要画出一张虚拟图片,将要加载的内容绘制好,再拷贝到当前画板中。
3 startFrame()负责创建主面板,并初始化一些面板数据,如标题、背景色、可见性、窗口尺寸可更改性,还负责启动主线程。
4 main()启动程序
内部类:
1 paintThread 线程内部类,用于重绘面板
2 KeyMoniter 监听内部类,用于监听我方飞机的按键事件
3 BloodTool类
属性:道具的初始坐标x、y,宽高 w、h,记录移动的步数step,存活情况isLive,主面板引用tl,移动的轨迹数组postion[][]
方法:
1 构造方法BloodTool(),道具自身的draw()方法,绘制道具
2 moveProp()控制道具的不断移动
3 isMeet()得到当前道具的坐标及宽度和高度,用于碰撞检测
4、Alpha任务分配计划
| 主界面 | 林卓辉、周泓安 |
| 控制器模块 | 林卓辉、周泓安 |
| 炮弹类 | 郭绍华 |
| 道具类 | 刘世刚 |
| 飞机类 | 王梓 |
|
美术 |
叶剑庭 |
5、测试计划
1、开发时测试:后台主要是对游戏操作、功能代码能否正常运行测试,前端主要是界面是否正常的测试
2、Alpha测试:首次实现前后台对接的各种测试,保证功能、游戏能正常运行
3、Beta测试:面对外部用户的意见反馈进行开发测试
4、最终测试:完整游戏最终测试
团队作业第3周——需求改进&系统设计(crtl冲锋队)的更多相关文章
- 团队作业第3周——需求改进&系统设计
目录 团队作业第3周--需求改进&系统设计 1.需求&原型改进 2.系统设计 3.Alpha任务分配计划 4.测试计划 1 测试术语 4.2 有关项目人员组成 2 任务概述 3.测试策 ...
- 【1414软工助教】团队作业3——需求改进&系统设计 得分榜
题目 团队作业3--需求改进&系统设计 作业提交情况情况 本次作业所有团队都按时提交作业. 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 ...
- 【集美大学1411_助教博客】团队作业3——需求改进&系统设计 成绩
看到同学们越来越认真了,助教非常高兴.大家已经开始了alpha冲刺,请控制好进度.成功的关键就是不断迭代,不断迭代. 关于leangoo 我看到所有组的同学都已经开始使用leangoo,请大家把助教加 ...
- 【2017集美大学1412软工实践_助教博客】团队作业3——需求改进&系统设计 成绩公示
第三次团队作业成绩公布 题目 团队作业3: 需求改进&系统设计 团队成绩 成绩公示如下: 缩写 TD BZ GJ CJ SI WBS GS JG DB SS SJ CS DC Total 分值 ...
- 集美大学网络1413第七次作业成绩(团队三) --需求改进&系统设计
题目 团队作业3--需求改进&系统设计 团队作业3成绩 团队/分值 TD BZ GJ CJ SI WBS GS JG DB SS SJ CS DC 总分 1 0.25 0.75 1 0.5 ...
- 【2017下集美大学软工1412班_助教博客】团队作业3——需求改进&系统设计团队成绩公示
作业要求 团队作业3--需求改进&系统设计 团队评分结果 Total QH BZ GJ MS SXX WBS SJ JG SJK JH NR CS PHILOSOPHER 需求改进&系 ...
- 团队作业三——需求改进&系统设计
需求改进&系统设计 一. 需求&原型改进 1. 针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改 老师及其他组的同学在课堂讨论时尚未提出问题及修改意见,但是课后我们有 ...
- 《Coderxiaoban团队》团队作业5:项目需求分析改进与系统设计
实验八 <Coderxiaoban团队>团队作业5:项目需求分析改进与系统设计 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 团队作业5:项目需求分析改进与 ...
- 郑政 | 2021软件代码开发技术作业四 | 需求改进&系统设计
需求改进&系统设计 -------------------------------------------------------------------------------------- ...
随机推荐
- React教程:4 个 useState Hook 示例
摘要: React示例教程. 原文:快速了解 React Hooks 原理 译者:前端小智 到 React 16.8 目前为止,如果编写函数组件,然后遇到需要添加状态的情况,咱们就必须将组件转换为类组 ...
- Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1)
Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1) APPLIES TO ...
- Python—版本和环境的管理工具(Pipenv)
pipenv简介 虚拟环境本质是一个文件,是为了适应不同的项目而存在.pipenv相当于virtualenv和pip的合体. 整合了 pip+virtualenv+Pipfile,能够自动处理好包的依 ...
- Linux 解决Deepin深度系统无法在root用户启动Google Chrome浏览器的问题
解决Deepin无法在root用户启动Google Chrome浏览器的问题,步骤如下. 前提:如何用root用户登录系统?编辑 vim /etc/lightdm/lightdm.conf , 找到并 ...
- [PHP] CentOS下搭建下PHP的运行环境
在公司里面有分配的测试机,所有的开发代码都运行在测试机里面.因为公司的测试机机房退租,所以要在新申请的几台测试机上搭建开发环境.开发环境尽量做到和线上的环境一致,包括代码的目录路径,运行程序的进程用户 ...
- for循环结构
循环结构: 在程序当中总有一些需要反复/重复的执行的代码,假设没有循环结构,那么这段需要重复知心的需要重复执行的代码自然是需要重复编写的,代码无法得到重复使用.所以多数变成语言都是支持循环结构的.将来 ...
- 2. Go语言—包概念
一.包的概念 和python一样,把相同功能的代码放到一个目录,称之为包 包可以被其他包引用(若包中变量/函数被其他包调用,名需大写) main包是用来生成可执行文件,每个程序只有一个main包 包的 ...
- selenium截取元素
http://www.mamicode.com/info-detail-2161474.html 常见问题 https://blog.csdn.net/u010616442/article/detai ...
- 2018年蓝桥杯A组C/C++决赛题目
2018年蓝桥杯A组C/C++决赛题目 2018年蓝桥杯A组C/C++决赛题解 1:三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5 ...
- Spring Cloud和Spring Boot的版本问题
很多人在使用springboot和springcloud,但是对于这两者之间的版本关系不是很清楚,特别是在面临升级的时候不知道该如何操作.本文简要摘录的官方文档的部分内容作为依据,供广大同行参考. 问 ...