手寫【坦克大戰】(從自閉到更自閉!)

由於本人最近的長期自閉,因此找了一個坦克大戰的j2se的小東西,準備開始做出來(雖然這個坦克長得有點不倫不類,但是,麻雀雖小五臟俱全)。此次做的是一個單機版(聯網版下次再說),emmm,先給演示一下運行時的亞子吧。

嘿嘿,紅的這個字是我設計的牆,紅色的小方塊是血包。吃完就是大哥。醜不醜的先不說了 ,先噠噠噠噠噠再說....(真好玩!!!....)

分析一下做坦克大戰時需要的一些知識和注意的點:

1.需要使用java畫圖基礎,(這個版本沒有用到任何圖片資源文件)。需要畫出區域,坦克,還有牆。

2.關於解決畫面刷新頻率過高,而導致的閃爍現象,可以採用雙重緩衝技術,可以有效解決!

3.關於坦克的8個方向移動問題,需要枚舉出8個方向,並添加監聽器。

4.關於坦克子彈的射擊問題,怎麼樣讓坦克打出子彈來(其實就是畫出一個圓圈)。

5.關於坦克被子彈打掉的問題以及不能打己方坦克問題,(需要涉及到碰撞監測,Rectangle 的 getRect intersects()方法),並需要給坦克和子彈加上標識(相對而言,誰是好的,誰是壞的)

6.關於坦克爆炸的處理,當坦克被子彈打中,應該產生爆炸(利用畫圖,在被打中的坦克周圍畫出爆炸的效果)。

7.關於坦克和子彈的消亡,在坦克被打中之後,坦克和子彈應該消失(不然就是穿甲彈和隱形戰機!!!),因此需要給坦克一個life屬性。

8.關於坦克與子彈出界問題,(世界這麼大,坦克可不能亂跑),我們需要檢測坦克的位置,不能超過我們設計的地圖!

9.關於牆的設計,血塊(吃完就加滿血)的設計。子彈不能穿牆,坦克不能穿牆(爲了增加“可玩性”,此版本我方可以穿牆,敵方不能穿牆!),因此這裏也需要涉及到碰撞檢測問題,和第五條一樣!

10.關於血條的顯示,這個就比較簡單,只要在坦克上方畫出血條即可,假設滿血量爲100,那麼血條的長度可以設計爲:滿血長度 * (當前血量/100)。

11.原地復活,f12,增加敵方坦克,f11,方向鍵控制坦克移動,ctrl鍵發射子彈。

12.神祕技能(你猜啊),不用你充一分錢,就可以使用大招,滅霸的待遇!!!(請自行摸索!)

(寫完忽然發現還有東西沒寫到)補充:關於炮筒及其方向:利用數學知識(畫個圓做加減法),從坦克的圓中心畫一條線即可!(方向與當前坦克保持一致!)

好了就到這裏了,jar包也會發出來,jdk版本爲8!直接運行即可!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

https://download.csdn.net/download/weixin_43249548/11913712

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章