Java專案 坦克大戰1

2021-07-10 10:57:35 字數 2086 閱讀 5066

我們既然要做這個遊戲,首先我們必須知道這個遊戲裡面應該有什麼成員,成員都有什麼屬性。

成員:1、遊戲介面的面板

①關卡②難度

③總成績

2、自己的英雄坦克

①方向②子彈

③生命值

3、敵軍坦克

①方向隨機

②總數量,單次數量

4、子彈

5、記錄成績以及生命值

如圖:

所有的坦克都有的屬性

①方向②顏色

③速度④生命

所以我們將上面幾種功能封裝成函式如下:

//定義乙個坦克類

class tank

public int getx()

public void setx(int x)

public int gety()

public void sety(int y)

public int getdirect()

public void setdirect(int direct)

public int getspeed()

public void setspeed(int speed)

public int getcolor()

public void setcolor(int color)

//public boolean islive()

//public void setlive(boolean islive)

}

①方向

②速度

③子彈

它的生命值要通過敵人發出的子彈進行判斷然後做出相應的變化,如果判斷擊中則死亡復活生命值減1,所以不在自己的坦克裡進行判斷

//我的坦克

class hero extends tank

/*public void shotenemy()

//建立執行緒並啟動

thread t=new thread(s);

t.start();

} */

//坦克向上移動

public void moveup()

//坦克向右移動

public void moveright()

//向下移動

public void movedown()

//向左邊移動

public void moveleft()

}

通過鍵移動,坦克得做出相應的調整,炮筒得朝著相應的方向吧!重新繪製坦克。**如下:

//重寫paint

public void paint(graphics g)

//繪製坦克的函式

public void drawtank(int x, int y, graphics g, int direct, int type)

// 判斷方向

switch(direct)

}

//鍵按下處理a s w d 

public void keypressed(keyevent e)else if (e.getkeycode()==keyevent.vk_d)

else if (e.getkeycode()==keyevent.vk_s)

else if (e.getkeycode()==keyevent.vk_a)

//重新繪製視窗

this.repaint();

} @override

public void keytyped(keyevent e)

@override

public void keyreleased(keyevent e)

小結:首先我們要有乙個全域性觀,裡面需要什麼角色,需要什麼物件(主坦克、敵人坦克、子彈等),我們需要知道;其次各個物件有什麼功能動作得展示出來(上下左右運動、發射子彈等);再者就是**的實現,通過判斷以及函式的封裝呼叫等來使我們的功能得以實現。

java 坦克大戰

include include using namespace std void print int a void shellinsert int a,int n,int d 間隔d進行排序 a j x 插入 print a void shell int a,int n shell插入排序 void...

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