90年经典坦克大战(cocos2d-x)
語言:c++
游戲引擎:cocos2d-x
一、項目介紹:
這個游戲我實現了90年經典坦克大戰的部分功能
代碼和圖片資源鏈接https://download.csdn.net/download/yx______/10664180
二、 主要設計:
1.地圖設計
2.坦克設計
3.子彈設計
4.數據管理
1.地圖設計 : 地圖從txt文檔里面導入,通過stringstream來轉化,把數字導入map數組里面,然后遍歷創建地圖元素,通過switch語句,不同的地圖元素層級不一樣
2.坦克設計:坦克我寫了個坦克類,然后派生出己方坦克類,敵方坦克類,大部分共有的函數都在坦克類里面。
3.子彈設計:發射子彈時,子彈管理類會實例化一個子彈對象,子彈碰到東西后,會進行碰撞檢測,如果坦克爆照后,會有一個爆照的效果,是一個7幀的動畫,然后會顯示獲得的分數,否則就只有一個3幀的動畫,爆照效果小一點。
4.數據管理:舞臺類定義了一個精靈類型敵方坦克容器,當一個新坦克被創建時,容器的最后一個元素會被清除。玩家坦克類定義了一個靜態成員生命,每關進去都是4條命。選擇關卡類有一個靜態成員關卡的數字,每次離開游戲場景時,這個值會加一。坦克管理類定義了一個地方坦克的數組,存儲各種類型的坦克的數目,玩家坦克類定義了靜態成員分數,每次敵方坦克死亡后都會加分,結算界面會與本地存儲的最高紀錄相比較,會更新
三、難點攻克
1.坦克移動
2.坦克動畫
3.坦克碰撞檢測
4.子彈碰撞檢測
1.坦克移動:定義了一個全局變量類,這個類定義了bool型各個鍵的靜態變量,在游戲場景類
按住上鍵后會把上鍵對應的變量設為true,停止按住時會設為false,然后在玩家
坦克類,每一幀都會檢測各個變量的值,如果為true,就會讓坦克執行對應的操
作。坦克速度設置的為1.5,移動時每一幀都會移動1.5個距離,坦克的圖片每一
幀都會更新,轉換方向時,從圖集中調用圖片時會換成對應方向的圖片,讓后就
會移動。
2.坦克動畫:坦克在移動的時候有一個移動的動畫效果,一般的坦克有2幀。定義了一個成員來
記錄當前顯示的幀數,每次移動的時候幀數會加一,當達到最大值時,又變回1。
地方最高級的坦克稍微麻煩一點,它還有幾種顏色,等級4是銀、綠交替,等級3是
銀、黃交替,等級2是黃、綠交替,等級1是銀,多弄些圖片素材在圖集中也就行了。
坦克不移動時,幀數不變,就不會有移動的效果了。
3.坦克碰撞檢測:(1)坦克與條坦克碰撞檢測:碰撞檢測函數在坦克類里面,游戲場景類里面有
一個坦克的容器,與容器里面的每個坦克都比較一下坐標就行了。(2)坦克與地圖碰撞檢測:坦克類
有一個成員方向,然后通過舞臺類的一個判斷函數判斷接下來去的那個格子是不是可以行走。
4.子彈碰撞檢測:(1)子彈與坦克碰撞檢測:判斷子彈是由玩家還是敵方發出的
然后看碰到的坦克是玩家還是敵方,做相應的判斷就行。(2)子彈與子彈碰撞檢測:
判斷是玩家的子彈還是敵方的子彈,敵方的子彈相互之間可以穿過去。
(3)子彈與地圖的碰撞檢測。與地圖邊界的碰撞檢測:判斷子彈的x,y值是否達到邊界,達到邊界后讓其爆炸。
與地圖障礙物的碰撞檢測:判斷子彈接下來去的格子是否可以打,然后執行對應的函數。
再就是打半塊磚的問題:用的位運算來判斷
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的90年经典坦克大战(cocos2d-x)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python判断题题库大数据技术_智慧树
- 下一篇: 斗鱼弹幕服务器第三方接入协议v1.6.2