java專案之 坦克大戰11

2021-07-16 15:20:34 字數 1661 閱讀 9520

功能:1.根據主戰坦克的方向和位置,打出子彈,ctrl鍵的按鍵處理

2.根據「坦克打出一發子彈」這句話,來確定

tank

中的方法

fire

,其返回值為

missle

3.根據

tank

方向和位置設定子彈的方向和位置並

new出來,然後返回(

fire

方法的實現)

1.在按鍵監聽裡面加ctrl按鍵處理,**如下

public tank(int x, int y, tankclient tc)

tc.m=fire();也是建立tc的目的(持有對方的引用,用構造方法進行初始化),主類裡面也要進行改動

missile m = null;

image offscreenimage = null;

public void paint(graphics g)

如果沒有則不打出子彈(下乙個版本將要解決的問題)

case keyevent.vk_control:

tc.m = fire();

break; //case穿透,如果不加的話

2.坦克裡面fire方法(坦克要打出子彈)  返回子彈物件m(子彈應該在中點位置打出,還有靜止的時候,子彈也靜止打出)

新增常量:高度與寬度

坦克

public static final int width =30;

public static final int height =30;

子彈

public static final int width =10;

public static final int height =10;

坦克打出的位置計算:

public missile fire()
總結:本版本最主要物件是子彈,子彈打出及方向控制,位置等等。tc的建立,應該重  點理解,持有對方引用,然後通過構造方法初始化,然後賦值 tc.m = fire();

下一版本:建立炮筒,解決禁止子彈無運動方向的問題。

附上坦克類的**(本版本主要改到類)

public class tank ;

private direction dir = direction.stop;

public tank(int x,int y)

public tank(int x,int y,tankclient tc)

void move()

}public void draw(graphics g)

public void keypressed(keyevent e)

locatedirection();

}

public void keyreleased(keyevent e)

locatedirection();

} void locatedirection()

public missile fire()

}

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...