日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

90年经典坦克大战(cocos2d-x)

發(fā)布時間:2023/12/10 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 90年经典坦克大战(cocos2d-x) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

語言:c++

游戲引擎:cocos2d-x

一、項目介紹:

這個游戲我實現(xiàn)了90年經(jīng)典坦克大戰(zhàn)的部分功能

代碼和圖片資源鏈接https://download.csdn.net/download/yx______/10664180

二、 主要設(shè)計:

1.地圖設(shè)計

2.坦克設(shè)計

3.子彈設(shè)計

4.數(shù)據(jù)管理

1.地圖設(shè)計地圖從txt文檔里面導(dǎo)入,通過stringstream來轉(zhuǎn)化,把數(shù)字導(dǎo)入map數(shù)組里面,然后遍歷創(chuàng)建地圖元素,通過switch語句,不同的地圖元素層級不一樣

2.坦克設(shè)計:坦克我寫了個坦克類,然后派生出己方坦克類,敵方坦克類,大部分共有的函數(shù)都在坦克類里面。

3.子彈設(shè)計:發(fā)射子彈時,子彈管理類會實例化一個子彈對象,子彈碰到東西后,會進(jìn)行碰撞檢測,如果坦克爆照后,會有一個爆照的效果,是一個7幀的動畫,然后會顯示獲得的分?jǐn)?shù),否則就只有一個3幀的動畫,爆照效果小一點(diǎn)。

4.數(shù)據(jù)管理:舞臺類定義了一個精靈類型敵方坦克容器,當(dāng)一個新坦克被創(chuàng)建時,容器的最后一個元素會被清除。玩家坦克類定義了一個靜態(tài)成員生命,每關(guān)進(jìn)去都是4條命。選擇關(guān)卡類有一個靜態(tài)成員關(guān)卡的數(shù)字,每次離開游戲場景時,這個值會加一。坦克管理類定義了一個地方坦克的數(shù)組,存儲各種類型的坦克的數(shù)目,玩家坦克類定義了靜態(tài)成員分?jǐn)?shù),每次敵方坦克死亡后都會加分,結(jié)算界面會與本地存儲的最高紀(jì)錄相比較,會更新

三、難點(diǎn)攻克

1.坦克移動

2.坦克動畫

3.坦克碰撞檢測

4.子彈碰撞檢測

1.坦克移動:定義了一個全局變量類,這個類定義了bool型各個鍵的靜態(tài)變量,在游戲場景類

按住上鍵后會把上鍵對應(yīng)的變量設(shè)為true,停止按住時會設(shè)為false,然后在玩家

坦克類,每一幀都會檢測各個變量的值,如果為true,就會讓坦克執(zhí)行對應(yīng)的操

作。坦克速度設(shè)置的為1.5,移動時每一幀都會移動1.5個距離,坦克的圖片每一

幀都會更新,轉(zhuǎn)換方向時,從圖集中調(diào)用圖片時會換成對應(yīng)方向的圖片,讓后就

會移動。

2.坦克動畫:坦克在移動的時候有一個移動的動畫效果,一般的坦克有2幀。定義了一個成員來

記錄當(dāng)前顯示的幀數(shù),每次移動的時候幀數(shù)會加一,當(dāng)達(dá)到最大值時,又變回1。

地方最高級的坦克稍微麻煩一點(diǎn),它還有幾種顏色,等級4是銀、綠交替,等級3是

銀、黃交替,等級2是黃、綠交替,等級1是銀,多弄些圖片素材在圖集中也就行了。

坦克不移動時,幀數(shù)不變,就不會有移動的效果了。

3.坦克碰撞檢測:(1)坦克與條坦克碰撞檢測:碰撞檢測函數(shù)在坦克類里面,游戲場景類里面有

一個坦克的容器,與容器里面的每個坦克都比較一下坐標(biāo)就行了。(2)坦克與地圖碰撞檢測:坦克類

有一個成員方向,然后通過舞臺類的一個判斷函數(shù)判斷接下來去的那個格子是不是可以行走。

4.子彈碰撞檢測:(1)子彈與坦克碰撞檢測:判斷子彈是由玩家還是敵方發(fā)出的
然后看碰到的坦克是玩家還是敵方,做相應(yīng)的判斷就行。(2)子彈與子彈碰撞檢測:
判斷是玩家的子彈還是敵方的子彈,敵方的子彈相互之間可以穿過去。
(3)子彈與地圖的碰撞檢測。與地圖邊界的碰撞檢測:判斷子彈的x,y值是否達(dá)到邊界,達(dá)到邊界后讓其爆炸。
與地圖障礙物的碰撞檢測:判斷子彈接下來去的格子是否可以打,然后執(zhí)行對應(yīng)的函數(shù)。

再就是打半塊磚的問題:用的位運(yùn)算來判斷

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的90年经典坦克大战(cocos2d-x)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。