2017-2018-1 JaWorld 团队作业--冲刺4 (20162305)

总体架构

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

EnemyPlane

  • 这个类是敌机类里面的主类,继承精灵类。首先先定义两个参数,power和value,power是敌机的抗击打能力,value是打一个敌机的分数。然后创建一个EnemyPlane的对象,调用Bitmap中的方法。

private int power = 1;//敌机的抗打击能力
private int value = 0;//打一个敌机的得分 public EnemyPlane(Bitmap bitmap){
super(bitmap);
}
  • 再写几个方法确定敌机的抗击打能力和击毁一架敌机的分数。这几个方法分别是setPower,getPower,setValue和getValue,这四个方法用来确定其子类中定义的Power和Value两个数值。

//设定敌机的抵抗能力
public void setPower(int power){
this.power = power;
} //获得敌机的抵抗能力
public int getPower(){
return power;
} //设定击毁一个敌机的分数
public void setValue(int value){
this.value = value;
} //获得敌机的分数
public int getValue(){
return value;
}
  • 在父类ISprite中有beforeDraw方法,在敌机类中定义一个相应的afterDraw方法,这需要三要素布(Canvas),Paint(漆)和游戏视图(gameView)。接着判断敌机是否被摧毁,对每一个子弹进行循环判断,判断敌机是否与子弹相交,如果和子弹相交,说明子弹打在了飞机上,子弹消失,敌机的power减1,如果power小于等于0,则说明敌机已经被摧毁,执行爆炸效果。

protected void afterDraw(Canvas canvas, Paint paint, GameView gameView) {
super.afterDraw(canvas, paint, gameView); //绘制完成后要检查自身是否被子弹打中
if(!isDestroyed()){
//敌机在绘制完成后要判断是否被子弹打中 List<Bullet> bullets = gameView.getAliveBullets();
for(Bullet bullet : bullets){
//判断敌机是否与子弹相交
Point p = getCollidePointWithOther(bullet);
if(p != null){
//如果有交点,说明子弹打到了飞机上
bullet.destroy();
power--;
if(power <= 0){
//敌机已经没有能量了,执行爆炸效果
explode(gameView);
return;
}
}
}
}
}
  • explode方法,用来实现敌机的爆炸效果。首先创造爆炸效果,确定敌机中心位置,再新建一个爆炸类对象,将爆炸类对象定位,将这个对象添加到Sprite中。创建爆炸效果完成后,向GameView中添加得分并销毁敌机。

//创建爆炸效果后会销毁敌机
public void explode(GameView gameView){
//创建爆炸效果
float centerX = getX() + getWidth() / 2;
float centerY = getY() + getHeight() / 2;
Bitmap bitmap = gameView.getExplosionBitmap();
Explosion explosion = new Explosion(bitmap);
explosion.centerTo(centerX, centerY);
gameView.addSprite(explosion); //创建爆炸效果完成后,向GameView中添加得分并销毁敌机
gameView.addScore(value);
destroy();
}

SmallEnemyPlane

  • 这个类继承EnemyPlane中的方法,创建一个小的敌机,利用EnemyPlane中的方法设定小敌机抗抵抗能力为1,即一颗子弹就可以销毁小敌机,再设定击毁一个小敌机的分数。销毁一个小敌机可以得1000分。

  • 相关代码


public class SmallEnemyPlane extends EnemyPlane { public SmallEnemyPlane(Bitmap bitmap){
super(bitmap);
setPower(1);//小敌机抗抵抗能力为1,即一颗子弹就可以销毁小敌机
setValue(1000);//销毁一个小敌机可以得1000分
} }

明日各个成员任务安排

-林臻同学以及马平川同学完成最后的代码整合,其余同学负责测试代码寻找bug。

2017-2018-1 JaWorld 团队作业--冲刺4的更多相关文章

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

    2017-2018-1 JaWorld 团队作业--冲刺1(20162301) 一.小组分工: 由于小组成员在本周比较忙碌,所以考虑后本组的冲刺就按照每天加入不同的类来完成.我们根据类的难度大小来决定 ...

  2. 2017-2018-1 JaWorld 团队作业--冲刺2

    2017-2018-1 JaWorld 团队作业--冲刺2 (20162314) 总体架构 我们本次团队项目设定为基于Android系统Java架构下的打飞机小游戏 游戏中所有模型的原型设定是精灵,因 ...

  3. 2017-2018-1 JaWorld 团队作业--冲刺3

    2017-2018-1 JaWorld 团队作业--冲刺3 (20162306) 总体架构 我们本次团队项目设定为基于Android系统Java架构下的打飞机小游戏 游戏中所有模型的原型设定是精灵,因 ...

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

    2017-2018-1 JaWorld 团队作业--冲刺5(20162310) 团队项目之战斗机类分析博客 总结 我们本次团队项目设定为基于Android系统Java架构下的打飞机小游戏 游戏中所有模 ...

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

    2017-2018-1 JaWorld 团队作业--冲刺6(20162308) 实现 由于我在冲刺部分负责的是类之间的耦合,所以我就介绍一下本次游戏的总体实现. 我们定义了Sprite类,即精灵类,游 ...

  6. 2017-2018-1 JaWorld 团队作业--冲刺7

    2017-2018-1 JaWorld 团队作业--冲刺7 冲刺博客 冲刺1 冲刺2 冲刺3 冲刺4 冲刺5 项目完成情况 存在的问题 存在的问题是敌机只设置了一种,没能实现多种敌机的游戏设置. 界面 ...

  7. 【2017集美大学1412软工实践_助教博客】团队作业4——第一次项目冲刺(Alpha版本)小组 成绩

    第四次团队作业成绩公布 题目 团队作业4: http://www.cnblogs.com/happyzm/p/6722264.html 团队成绩 成绩公示如下: 检查项 会议内容 代码签入 心得体会或 ...

  8. 【2017集美大学1412软工实践_助教博客】团队作业8——第二次项目冲刺(Beta阶段)

    题目 团队作业8: http://www.cnblogs.com/happyzm/p/6856179.html 团队作业8-1 beta冲刺计划 团队 新加入的成员,担当的角色,技术特点 下一阶段需要 ...

  9. 【2017集美大学1412软工实践_助教博客】团队作业7——Alpha冲刺之事后诸葛亮

    题目 团队作业7: http://www.cnblogs.com/happyzm/p/6827853.html 团队成绩 评分项目 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 全组 ...

随机推荐

  1. c#截取图片

    简单的保存数据流 <input name="upImg" style="width: 350px; height: 25px;" size="3 ...

  2. RxJava && Agera 从源码简要分析基本调用流程(2)

    版权声明:本文由晋中望原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/124 来源:腾云阁 https://www.qclo ...

  3. ubuntu14.04 LTS 搜狗输入法安装和不能输入中文的解决方法

    搜狗输入法安装 1.首先通过Ubuntu软件中心,需要安装:fcitx https://pinyin.sogou.com/linux/help.php 2.然后再安装搜狗输入法包 https://pi ...

  4. nginx代理学习

    一.windows下nginx代理ftp服务器 我所在的开发环境里,nginx和ftp在同一台服务器. ftp根目录: nginx的配置: 在nginx.conf中加入: server { liste ...

  5. 高中生的IT之路-1.2离开校园

    记得那是07年夏季的一天,高考成绩出来之后,班主任老师通知大家回学校报考志愿. 那天我刚到学校会议室,我还没来得及和同学见面就被班主任喊过去了,把志愿表递给我了我,我当时连仔细看那张志愿表都没看,随手 ...

  6. C#文件下载的几种方式

    第一种:最简单的超链接方法,<a>标签的href直接指向目标文件地址,这样容易暴露地址造成盗链,这里就不说了 1.<a>标签 <a href="~/Home/d ...

  7. CentOS oracle Client客户端安装

    CentOS客户端安装方法如下: 1.安装客户端 rpm -ivh /当前目录/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm rpm - ...

  8. 在centos上用nginx访问php显示404

    yum install nginx -y 可以在浏览器 访问html文件,但是访问不了php文件 后来我看见别人别人响应的参数有php,而我没有我,就觉得php配置应该有问题: 我 yum insta ...

  9. Java开发环境的搭建(jdk,eclipse)

    一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可. http://www.orac ...

  10. sqlserver如何读写操作windows系统的文件

    DECLARE   @object   int     DECLARE   @hr   int     DECLARE   @src   varchar(255),   @desc   varchar ...