实验五 数据结构综合应用 20162305

0 分析系统架构

  • 我们本次做的是一个飞机大战的游戏,本次游戏是想让使用者通过操控一个飞机进行击毁敌机和躲避敌机的操作。这个APP总体是基于精灵类ISpirte实现了战斗机类,走直线的精灵类和爆炸类,这些类构成了整个APP的整体架构,所有的功能都集中在这几个类中。
  • 战斗机类CombatAircraft:

    战斗机类,定义一个由玩家操控的战斗机,这个战斗机每隔7帧发射子弹,并且设定方法确定战斗机一直处在界面中。战斗机如果被击中,执行爆炸效果。具体来说,首先隐藏战斗机,然后创建爆炸效果,爆炸用28帧渲染完成,爆炸效果完全渲染完成后,爆炸效果消失。然后战斗机会进入闪烁模式,战斗机闪烁一定次数(5次)后销毁。在飞机当前还没有被击中时,要判断是否将要被敌机击中。通过定义各种参数和判断实现以上功能,设立战斗机类。

  • 走直线的精灵类:

    走直线的精灵类,这个类是下面要定义的敌机类和子弹类的父类。在这个类中,定义精灵的移动速度和方向,在y轴方向移动一定的像素位置。再检查精灵是否超出界面范围,如果超出了范围,则销毁精灵。

    敌机类(EnemyPlane):定义敌机的抗击打能力和击毁一个敌机得到的分数,设定相应的参数。敌机需要一个方法来判断是否被击中,判断子弹和敌机是否有交点,有的话则敌机中弹。当敌机没有能量了以后执行爆炸效果,爆炸之后销毁敌机。小敌机类是敌机类的子类,继承敌机类的方法,设定小敌机的抗击打能力和分数。

    子弹类:走直线的精灵类中的子类,设定速度方向为负,让子弹在界面中向上移动。

  • 爆炸类:

    爆炸效果由14个片段组成,最开始处于爆炸的第0片段,每个爆炸片段绘制2帧。获取爆炸位置和宽度,爆炸的片段自加1,用于绘制下个爆炸片段。当绘制完所有的爆炸片段后,销毁爆炸效果。得到绘制完整爆炸效果需要的帧数,即28帧

  • 游戏界面:在游戏的开始界面中,我们定义了三个按钮:开始游戏、规则介绍和开发团队。开始游戏进入游戏界面,规则介绍部分对这款小游戏的规则进行介绍,开发团队按钮介绍本团队的成员及其分工。

1 编译、运行、测试系统

  • 编译代码:在从码云上克隆下来代码后,我发现一直显示错误,显示的是Gradle project sync failed。后来在网上我找到了相关问题的解决办法,重新下载了新的压缩包放在了指定的位置,再更新Android Studio,解决了这个问题
  • 运行和测试

2 修改系统

  • 我在之前的开始界面的基础上,又添加了一个按钮,点进这个按钮,进入一个新的界面,在这个界面中我加入了自己的学号信息和一个时钟。

3 分析数据结构、排序、查找算法的应用

  • List的应用

    在GameView中,定义了两个list类对象,sprites和spritesNeedAdded。通过这两个list来存放精灵类对象,实现敌机的生成,子弹的生成。

    • 生成敌机
    
    //生成随机的Sprite
    private void createRandomSprites(int canvasWidth){ISprite sprite = null;int speed = 2;//callTime表示createRandomSprites方法被调用的次数int callTime = Math.round(frame / 30);//发送敌机sprite = new SmallEnemyPlane(bitmaps.get(2));if(sprite != null){float spriteWidth = sprite.getWidth();float spriteHeight = sprite.getHeight();float x = (float)((canvasWidth - spriteWidth)*Math.random());float y = -spriteHeight;sprite.setX(x);sprite.setY(y);if(sprite instanceof AutoISprite){AutoISprite autoSprite = (AutoISprite)sprite;autoSprite.setSpeed(Math.round(speed+Math.random()*2-1));}addSprite(sprite);}
    }
    

4 实验体会

  • 这次我们小组合力开发出了一个app,在开发过程中我们遇到了很多问题,不论是开发流程上还是技术方面上我们都遇到了很多问题。我们组里的同学互相帮助,感谢马平川同学对我在代码上的指导,让我学到了很多知识,更要感谢张师瑜组长的合理规划和安排。我在这次项目中负责软件测试和统筹博客内容,这些对我来说都是挑战,更是收获。

转载于:https://www.cnblogs.com/lyxwatm/p/8051603.html

实验五 数据结构综合应用 20162305相关推荐

  1. 20162316刘诚昊 实验五-数据结构综合应用

    20162316刘诚昊 2017-2018-2 <Java程序设计>第五次实验 数据结构综合应用 实验链接: 实验五 Android Studio遇到的错误-1 实验五 图的实现与应用-2 ...

  2. 数据结构Java版实验五_实验五数据结构综合应用 20162310

    分析系统架构 Sprite精灵类 ISprite精灵类是所有类的父类 CombatAircraft战斗机类 首先确保战斗机完全位于Canvas范围内,每隔7帧发射单发黄色子弹. protected v ...

  3. R语言入门第六集 实验五:综合应用

    R语言入门第六集 实验五:综合应用 一.资源 [R语言]沈阳地铁数据处理及站间流量统计--R语言第五次实训 lubridate-轻松处理日期时间 数据整理-dplyr包(mutate系列) CEILI ...

  4. python综合程序设计-Python程序设计实验五:综合运用三种基本结构进行程序设计...

    安徽工程大学 Python程序设计实验报告 班级:物流192 姓名:李心悦 学号:3190505218成绩: 日期:2020. 4.26 指导教师:修宇 [实验名称] 实验五 综合运用三种基本结构进行 ...

  5. 算法设计与分析 实验五 算法综合实验

    实验5.<算法综合实验> 一.实验目的 理解和复习所学各种算法的概念 掌握和复习所学各种算法的基本要素 掌握各种算法的优点和区别 通过应用范例掌握选择最佳算法的设计技巧与策略 二.实验内 ...

  6. 《机器学习》------实验五(综合实验)

    实验内容: 使用CTG数据将胎儿的健康分为正常,可疑或病理性. 数据描述: 对胎儿健康进行分类,以防止儿童和产妇死亡. 降低儿童死亡率反映在联合国的若干可持续发展目标中,是人类进步的关键指标.联合国预 ...

  7. HCIP(华为高级网络安全工程师)(实验五)(OSPF综合实验)

    目录 实验要求 实验思路 实验内容及步骤 1.各区域IP地址的划分 2.对AERA0区域的设备进行IP地址及环回地址和缺省路由的配置 4.配置AREA1.AREA2.AREA3.AREA4的IP地址及 ...

  8. 达梦数据库实验五:DBMS综合设计

    目录标题 实验五 DBMS综合设计 一.实验目的: 二.实验要求: 三.实验重点和难点: 四.实验内容: 五.实验步骤与结果: 1. 概念设计 2. 逻辑设计 2.1根据ER图转换为世界的关系模型,找 ...

  9. 【R语言】实验五 综合应用

    系列文章目录 实验一 R 语言数据结构.数据导入与数据处理 实验二 基本数据处理 实验三 数据可视化 实验四 数据分析 实验五 综合应用 实验数据 实验数据下载 1. systation 数据集 sy ...

最新文章

  1. Android中使用xml处理图片,Android布局 – 在xml中偏移背景图像
  2. SpringBoot初步入门
  3. P3233-[HNOI2014]世界树【虚树,倍增】
  4. 路由器需要多大内存?
  5. 插件 微信 自动 抢红包
  6. 【620】【信息管理学基础】【真题背诵】
  7. 浏览器插件FeHelper的学习:gulp基础、使用gulp构建项目
  8. vep格式用什么播放器linux,vep格式视频用什么播放器打开
  9. App 启动时如何知道 CloudKit 的 iCloud 数据同步操作已经结束了?
  10. 葡萄酒逻辑回归分类(scala实现)
  11. Observable与Subject
  12. 分享几个实用的神器APP系列(四)
  13. 证券行业大数据安全简述
  14. (转)关于样本标准差(SD)与样本标准误差(SE)
  15. 点到直线(超平面)的距离公式
  16. sklearn中lstm_深度学习之路(一):用LSTM网络做时间序列数据预测
  17. Amy Schumer名列2016年迈克菲最危险名人榜榜首
  18. 转载大神神作之识狗君:Server端实现补充
  19. 爱情 不是一个人的事
  20. python中文版下载官网-Python中文版

热门文章

  1. 群晖218 当文件服务器,群晖218 家庭云服务器
  2. linux外接NetApp存储,netapp linux iscsi 实现
  3. idea 填充变量类型_填充IntelliJ IDEA项目
  4. idea 关闭检查更新_Intellij idea的抑制警告(SuppressWarnings)列表(正在持续更新)
  5. SpringSecurity Basic Authentication
  6. Numpy Binary operations
  7. C语言 显示器键盘io
  8. hdfs和日志业务系统
  9. 数据结构之基于Java的最优二叉树实现
  10. 双机热备_什么是高可用双机热备?双机热备概念原理详解