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-代码修改

  • 实验要求:
  1. 在小组项目中,找一个合适的地方添加一个按钮,点击显示自己的学号
  2. 提交运行截图(全屏,要有学号信息)
  3. 在项目中找一个界面,自己复制一份命名为XXXbak,修改代码,替换原来的部分
  4. 提交运行截图(全屏,要有学号信息)

实验过程:

  • 1、在activity_main.xml中增加一个按钮;

  • 2、在activity_csqbak.xml中改变原来的界面,加入学号信息

  • 实验截图:


实验五-3-代码分析

  • 分析小组代码:
  1. 数据结构的应用情况及相关代码
  2. 排序算法的应用情况及相关代码
  3. 查找算法的应用情况及相关代码
  4. 完成实验报告

实验过程:

  • 我们小组项目的数据结构为线性结构,项目中主要用了list线性表来存储精灵类和生成敌机;
  • 图一为list表存储子弹,并判断是否击毁敌机;
  • 图二是list中存储敌机,并判断战斗机是否与敌机相撞;
  • 未使用排序和查找算法。
  • 关键代码:

posted @ 2017-12-17 21:56  20162306陈是奇  阅读(289)  评论(0编辑  收藏  举报