2017-2018-1 JaWorld 团队作业--冲刺5
2024-08-29 15:36:55
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;
}
}
明天成员安排:
- 马平川同学负责最后的类之间的耦合,所有成员讨论需要修改的地方。
最新文章
- [LeetCode] Strobogrammatic Number III 对称数之三
- Gson运用
- 解决ADT升级报错
- 前App Store高管揭秘:关于“苹果推荐”的七大真相
- LeetCode之Single Number以及拓展
- 反射以及 getDeclaredMethods()和getMethods()区别
- Ch02 从零开始实例学习3
- vim 常用指令总结
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK问题解决
- GitHub学习总结
- noip模拟ernd
- Spring再接触 IOC DI
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十一):服务网关(Zuul)
- windows 10下oracle相关异常及处理方法
- CAN2.0A 和CAN2.0B
- 层级目录结构的Makefile递归编译方法
- 移动端开发-viewport
- JVM基础知识及拓展
- 【WEB】jQuery获取页面回滚或跳转事件
- wpf使用truetype字体ttf
热门文章
- Computer Science Theory for the Information Age-5: 学习理论——VC维的定义以及一些例子
- Delphi的打开文件对话框-TOpenDialog
- all index range ref eq_ref const system 索引type说明
- vim命令删除后重新安装
- wamp安装和基础配置
- ZoomIt v4.5
- wamp环境解决局域网不能访问的问题!
- 170619、springboot编程之HelloWorld
- SQL Server经典函数之数字去零
- CodeForces 17D Notepad(同余定理)