有人給我說畫的坦克太難看了 本來我是打算在最後在用圖檔的
既然這樣 那麼在後面我們就使用圖檔吧
所有圖檔都在源代碼裡面 請自己下載下傳 在最下面
到目前我們用到圖檔的地方隻有子彈,敵方坦克和我方坦克的八個方向
在這裡我們使用ToolKit工具箱裡面的getImage方法來讀取本地圖檔 當然ImageIO也行 自己選擇
首先tank類執行個體化一個ToolKit對象
//toolKit工具箱
private Toolkit tk=Toolkit.getDefaultToolkit();
我們要重新寫Tank類的draw方法 以前的畫圖代碼可以注釋掉了
修改為如下圖
public void draw(Graphics g) {
String path="Image/tank_";
if(!good)
path="Image/tanks_";
path+=ptDir.toString()+".png";
Image img=tk.getImage(path);
width=img.getWidth(TankClient.tc);
height=img.getHeight(TankClient.tc);
g.drawImage(img, x, y, width, height, TankClient.tc);
}
其中TankClient.tc為當轉換了更多圖像時要通知的對象 我的了解就是圖檔要顯示的父容器。。。瞎了解的
tc就是我們程式啟動時執行個體化的一個對象
public static void main(String[] args) {
// 啟動視窗
tc=new TankClient();
}
然後運作結果:

剩下就是對子彈的圖形化了 同樣的原理
修改draw方法
// 子彈的繪制
public void draw(Graphics g) {
//判斷子彈是否撞擊到坦克
judgeHitTank();
String path="image/bullet1.gif";
if(!good){
path="image/bulletBoss.gif";
}
Image img=tk.getImage(path);
//重設子彈的寬高
width=img.getWidth(TankClient.tc);
height=img.getHeight(TankClient.tc);
g.drawImage(img, x, y, width, height, TankClient.tc);
}
運作結果如下: