2017-2018-1 20162306 实验五实验报告
2017-2018-1 20162306 实验五实验报告
实验五-0-分析系统架构
- 精灵类ISprite:所有的类都继承精灵类。
- 战斗机类CombatAircraft:首先定义一架战斗机,通过获取坐标保证其在屏幕范围内,每隔7帧发射子弹;如果战斗机被击毁了就不会发射子弹,获得子弹位置坐标,战斗机如果被击中,执行爆炸效果,首先隐藏战斗机,然后创建爆炸效果,爆炸用28帧渲染完成,爆炸效果完全渲染完成之后,战斗机进入闪烁模式,闪烁一定次数后消失。
- 走直线的精灵类AutoISprite: 走直线的精灵类是敌机类和子弹类的父类;其位置只能直上直下,定义向下为正,设置速度、获得速度,检测所有精灵有没有超出了屏幕范围,如果超出,则销毁;
- 敌机类:通过定义敌机得抗击打能力和打一个敌机的得分,绘制完成后检查自身是否被子弹打中,敌机在绘制完成之后要判断是否被子弹打中,通过判断敌机与子弹是否有交点,如果有说明子弹打到飞机上,当敌机没有能量则爆炸;
- 子弹类:子弹从下向上沿直线移动,负数表示子弹向上飞
- 爆炸类:位置不可变,但是可以显示动态的爆炸效果,爆炸效果由14个片段组成,最开始处于爆炸的第0片段,每个爆炸片段绘制2帧;分割爆炸爆炸图、获得爆炸位图素材
实验五-1-编译、运行、测试
- 实验要求:
1 git clone 小组项目
2 编译项目,提交编译成功截图(全屏,要有学号信息)
3 提交运行过程中的截图(全屏,要有学号信息)
实验过程:
-
1、从码云上将项目clone下来,
git clone + xxx
在Android Studio中打开、编译、运行 -
实验截图
实验五-2-代码修改
- 实验要求:
- 在小组项目中,找一个合适的地方添加一个按钮,点击显示自己的学号
- 提交运行截图(全屏,要有学号信息)
- 在项目中找一个界面,自己复制一份命名为XXXbak,修改代码,替换原来的部分
- 提交运行截图(全屏,要有学号信息)
实验过程:
-
1、在activity_main.xml中增加一个按钮;
-
2、在activity_csqbak.xml中改变原来的界面,加入学号信息
-
实验截图:
实验五-3-代码分析
- 分析小组代码:
- 数据结构的应用情况及相关代码
- 排序算法的应用情况及相关代码
- 查找算法的应用情况及相关代码
- 完成实验报告
实验过程:
- 我们小组项目的数据结构为线性结构,项目中主要用了list线性表来存储精灵类和生成敌机;
- 图一为list表存储子弹,并判断是否击毁敌机;
- 图二是list中存储敌机,并判断战斗机是否与敌机相撞;
- 未使用排序和查找算法。
- 关键代码: