Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> TankWar 單機(JAVA版)版本2.3~版本2.4 為坦克畫血條

TankWar 單機(JAVA版)版本2.3~版本2.4 為坦克畫血條

編輯:關於Android編程

運行結果:

\

為了在坦克上方畫血條 。血條首先要有坐標x,y 寬和高width和height

血量的多少life也要有。

所以新建類Life要有這些參數

Life類如下:

 

package tankWar;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Rectangle2D;

public class Life {
	private int x;
	private int y;
	private int width=40;
	private int height=10;
	private int life;
	public Life() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Life(int x, int y,int life) {
		super();
		this.x = x;
		this.y = y;
		this.life=life;
	}
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}
	public void draw(Graphics g){
		
		Graphics2D g2=(Graphics2D) g;
		//畫外圈
		Rectangle2D r2=new Rectangle2D.Double(x, y-height, width, height);
		g2.setColor(Color.YELLOW);
		g2.draw(r2);
		//根據血量比例畫血條
		Rectangle2D r=new Rectangle2D.Double(x+1, y-height+1, width*((double)life/100)-1, height-1);
		g2.setColor(Color.RED);
		g2.fill(r);
	}
}

起初調試發現,坦克被擊中一下 血量就為0 後來想了想 life/100這裡。因為life是整形,除以100保留整數為0.所以強轉為double

 

最後在Tank類中畫坦克的時候畫血條即可。

 

private void drawEnemyTanks(Graphics g) {
			// TODO Auto-generated method stub
			// 畫敵方坦克
			for (Tank t : enemyTanks) {
				if (t.isbLive()) {
					//畫坦克
					t.draw(g);
					//畫血條
					Life life=new Life(t.getX(), t.getY(), t.getLive());
					life.draw(g);
				} else {
					// 坦克死亡 畫爆炸
					Bomb b = new Bomb(t.getX() - 50, t.getY() - 30);
					b.draw(g);
					enemyTanks.remove(t);
				}
			}
		}
因為我的坦克不在集合裡面,自己寫
// 畫我的坦克
			if (myTank.isbLive()) {
				myTank.draw(g);
				Life life=new Life(myTank.getX(), myTank.getY(), myTank.getLive());
				life.draw(g);
			} else {
				// 游戲結束
				isGameOn = false;
			}

全部代碼點擊下載
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved