2017-2018-1 JaWorld 团队作业--冲刺5(20162310)

团队项目之战斗机类分析博客

总结

  • 我们本次团队项目设定为基于Android系统Java架构下的打飞机小游戏
  • 游戏中所有模型的原型设定是精灵,因此不管是敌机还是战斗机都是精灵类,精灵类是所有类的父类
  • 精灵类(Sprite)下有三个子类,一个是战斗机类,也就是玩家;一个是走直线的精灵类(AutoSprite),也就是对敌机的统称;- - 还有一个是爆炸类,指的是敌机或战斗机被摧毁。
  • 我所负责的是精灵类(Sprite)下的 战斗机类(CombatAircraft)

战斗机类CombatAircraft

战斗机类出现的过程分为,

显现-->被敌机击中-->爆炸-->战斗机闪烁-->消失
方法为beforeDraw---->afterDraw

战斗机效果

战斗机位于一个Canvas范围内

如果战斗机没有击毁
if(!isDestroyed()){
validatePosition(canvas);}

每隔7帧发射子弹

if(getFrame() % 7 == 0){
fight(gameView);
}

发射子弹,分为单发子弹和双发子弹,单发模式下渲染效果是黄色子弹,双发模式下是蓝色子弹

  • 单发模式下发射单发黄色子弹

      if(single){
    Bitmap yellowBulletBitmap = gameView.getYellowBulletBitmap();
    Bullet yellowBullet = new Bullet(yellowBulletBitmap);
    yellowBullet.moveTo(x, y);
    gameView.addSprite(yellowBullet);
    }
  • 双发模式下发射两发蓝色子弹

          float offset = getWidth() / 4;
    float leftX = x - offset;
    float rightX = x + offset;
    Bitmap blueBulletBitmap = gameView.getBlueBulletBitmap(); Bullet leftBlueBullet = new Bullet(blueBulletBitmap);
    leftBlueBullet.moveTo(leftX, y);
    gameView.addSprite(leftBlueBullet); Bullet rightBlueBullet = new Bullet(blueBulletBitmap);
    rightBlueBullet.moveTo(rightX, y);
    gameView.addSprite(rightBlueBullet); doubleTime++;
    if(doubleTime >= maxDoubleTime){
    single = true;
    doubleTime = 0;

发射炸弹

战斗机获得道具

判断是否获得炸弹道具

List<BombAward> bombAwards = gameView.getAliveBombAwards();
for(BombAward bombAward : bombAwards){
Point p = getCollidePointWithOther(bombAward);
if(p != null){
bombAwardCount++;
bombAward.destroy();
//Game.receiveBombAward();
}

判断是否获得子弹道具

List<BulletAward> bulletAwards = gameView.getAliveBulletAwards();
for(BulletAward bulletAward : bulletAwards){
Point p = getCollidePointWithOther(bulletAward);
if(p != null){
bulletAward.destroy();
single = false;
doubleTime = 0;
}
}

明天成员安排:

  • 马平川同学负责最后的类之间的耦合,所有成员讨论需要修改的地方。

最新文章

  1. [LeetCode] Strobogrammatic Number III 对称数之三
  2. Gson运用
  3. 解决ADT升级报错
  4. 前App Store高管揭秘:关于“苹果推荐”的七大真相
  5. LeetCode之Single Number以及拓展
  6. 反射以及 getDeclaredMethods()和getMethods()区别
  7. Ch02 从零开始实例学习3
  8. vim 常用指令总结
  9. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK问题解决
  10. GitHub学习总结
  11. noip模拟ernd
  12. Spring再接触 IOC DI
  13. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十一):服务网关(Zuul)
  14. windows 10下oracle相关异常及处理方法
  15. CAN2.0A 和CAN2.0B
  16. 层级目录结构的Makefile递归编译方法
  17. 移动端开发-viewport
  18. JVM基础知识及拓展
  19. 【WEB】jQuery获取页面回滚或跳转事件
  20. wpf使用truetype字体ttf

热门文章

  1. Computer Science Theory for the Information Age-5: 学习理论——VC维的定义以及一些例子
  2. Delphi的打开文件对话框-TOpenDialog
  3. all index range ref eq_ref const system 索引type说明
  4. vim命令删除后重新安装
  5. wamp安装和基础配置
  6. ZoomIt v4.5
  7. wamp环境解决局域网不能访问的问题!
  8. 170619、springboot编程之HelloWorld
  9. SQL Server经典函数之数字去零
  10. CodeForces 17D Notepad(同余定理)