java项目之——坦克大战24

来源:互联网 发布:java rtf格式转换pdf 编辑:程序博客网 时间:2024/06/07 03:25

图形化表示主战坦克的生命值

a.我们在坦克里面创造内部类:

private BloodBar bb= new BloodBar();

b.根据不同 的life值来显示,吧它放在坦克的上面。

private class BloodBar{public void draw(Graphics g){             Color c = g.getColor();             g.setColor(Color.RED);             g.drawRect(x, y-10, WIDTH, 10);             int w = WIDTH*life/100;             g.fillRect(x, y-10, w, 10);             g.setColor(c);}  }

c.画出血条

public void draw(Graphics g) {   if(!live){   return;   }      Color c = g.getColor();    if(good){    g.setColor(Color.RED);        }      else{     g.setColor(Color.blue);      }g.fillOval(x, y, WIDTH, HEIGHT);g.setColor(c);bb.draw(g);                        //画出血条   switch(ptDir){   case L: g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x, y+Tank.HEIGHT/2);break;   case LU:g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x, y);break;   case U: g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x+Tank.WIDTH/2, y);break;   case RU:g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x+Tank.WIDTH, y);break;   case R: g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x+Tank.WIDTH, y+Tank.HEIGHT/2);break;   case RD:g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x+Tank.WIDTH, y+Tank.HEIGHT);break;   case D: g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x+Tank.WIDTH/2, y+Tank.HEIGHT);break;   case LD:g.drawLine(x+Tank.WIDTH/2, y+Tank.HEIGHT/2, x, y+Tank.HEIGHT);break;   }   move();   }


0 0