坦克的血条绘制及减血操作
1.绘制血条
在Tank类中作为内部类。
class BloodBar{
public static final int BAR_LENGTH = 50;
public static final int BAR_HEIGHT = 3;
public void draw(Graphics g){
//填充底色
g.setColor(Color.YELLOW);
g.fillRect(x-RADIUS,y-RADIUS-BAR_HEIGHT*2,BAR_LENGTH,BAR_HEIGHT);
//红色的当前血量
g.setColor(Color.RED);
g.fillRect(x-RADIUS,y-RADIUS-BAR_HEIGHT*2,hp*BAR_LENGTH/DEFAULT_HP,BAR_HEIGHT);
//白色的边框
g.setColor(Color.WHITE);
g.drawRect(x-RADIUS,y-RADIUS-BAR_HEIGHT*2,BAR_LENGTH,BAR_HEIGHT);
}
}
public void draw(Graphics g)
{
logic();
drawImgTank(g);
//drawTank(g);
drawBullet(g);
drawName(g);
bloodBar.draw(g);
}
2.给予坦克攻击力
//攻击力区间
private static final int ATK_MAX=100;
private static final int ATK_MIN=50;
public Tank(int x,int y,int dir){
this.x=x;
this.y=y;
this.dir=dir;
color= MyUtil.getRandomColor();
name = MyUtil.getRandomName();
atk = MyUtil.getRandomNumber(ATK_MIN,ATK_MAX);
}
3.减血操作
private void hurt(Bullet bullet)
{
int atk = bullet.getAtk();
hp-=atk;
if(hp<=0)
{
hp=0;
die();
}
}