java專案之 坦克大戰20

2021-07-22 05:30:15 字數 1183 閱讀 9566

本版本:新增兩堵牆。

1.在主類中:牆物件

wall w1 = new wall(100, 200, 20, 150, this), w2 = new wall(300, 100, 300, 20, this);
hitwall()子彈打牆

for (int i = 0; i < missiles.size(); i++)
坦克撞上牆後應該停止然後向別處運動

for(int i=0; i<10; i++)

w1.draw(g);

w2.draw(g);

mytank.draw(g);

2.在子彈類中:hitwall() 如果子彈撞上牆,則不存活。

public boolean hitwall(wall w) 

return false;

}

3.在坦克類中:

為了解決坦克撞牆後的運動問題:設定兩個變數記錄坦克前一位置,每次撞上牆後,坦克會找到前乙個位置,然後離開。

private int oldx,oldy;

修改構造方法

public tank(int x,int y,boolean good)

//在移動前給前位置座標賦值

move()中在開始給oldx和oldy賦值

void move()

坦克撞牆的方法 ,一旦撞上就會呼叫stay()

public boolean collideswithwall(wall w)         

return false;

}

stay()方法即是返回上一位置的方法

private void stay()

總結:對於牆的處理:首先建立,然後子彈對牆,最後坦克對牆。坦克對牆的處理,使用了stay() 運用上個位置讓子彈運動離開的方法很合理。

下個版本:坦克不能相互穿越。

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