版本:一顆子彈擊中敵方坦克——物件導向思維分析
是否打中:hattank方法;(遊戲中碰撞檢測,有些複雜,一般直接呼叫庫方法)在這裡我們應用碰撞類:getrect(返回值rectangle)
1.子彈類中加入方法:
public rectangle getrect()
public boolean hittank(tank t)
return false;
}
public rectangle getrect()
2.在坦克類中定義生死量:
private boolean live = true;
public void setlive(boolean live)
如果不是生的,不畫坦克 if(!live)
public void draw(graphics g)
color c = g.getcolor();
if(good)
else
g.filloval(x, y, width, height);
g.setcolor(c);
switch(ptdir)
move();
}
3.出現子彈沒有消失的情況,和打死坦克的情況。 移除子彈,把**放在畫之前,這樣判斷更加合理,如果沒有 live不用畫
子彈類;
if(!live)
tank類:t.islive() //要加此方法
public boolean islive()
在hittank中
public boolean hittank(tank t)
return false;
}
總結:首先構造hittank方法,坦克和子彈類中都引入getrect(),如果碰撞了,子彈和坦克都要消失,引入live,並構造方法,最後在主類中呼叫 m.hittank(enemytank); 實現一顆子彈擊中敵方坦克。 java專案之 坦克大戰 04
功能 讓坦克動起來 內容 改變位置,坦克就會動。a.設定成員變數,x y b.每一段時間重畫一次 y 5 c.重畫執行緒類。優點 執行緒重畫坦克,比較均勻。public class tankclient extends frame public void lauchframe this.setres...
java專案之 坦克大戰08
功能 然坦克向八個方向行走。以前只有四個方向 內容 新增代表方向的量 列舉 新增記錄按鍵狀態的布林量 根據按鍵狀態確定坦克方向 根據方向進行下一步的移動 move方法 以下修改的全為tank類中的 1.為了方便改變移動速度 常量 public static final int xspeed 5 pu...
java專案之 坦克大戰09
問題 由於上乙個版本的方向控制出現乙個問題,比如向右走,然後向下走,不過此時坦克將不會向下走,而是向右下走,而且是一去不回頭。功能 實習坦克八個方向運動 2 內容 建立鍵盤抬起監聽,每次抬起坦克將會使坦克脫離按鍵控制。1.在tankclient中 public void keyreleased ke...