java專案之 坦克大戰16

2021-07-22 04:23:23 字數 1167 閱讀 8530

版本:一顆子彈擊中敵方坦克——物件導向思維分析

是否打中: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...