您的位置:首页 > 其它

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

2017-12-08 22:32 232 查看

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;
}
}

明天成员安排:

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: