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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

cocos2d-x游戏实例(19)-纵版射击游戏(6)

發(fā)布時(shí)間:2024/4/11 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2d-x游戏实例(19)-纵版射击游戏(6) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

小滿(mǎn)(bill man)個(gè)人原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明地址,小滿(mǎn)(bill man)的專(zhuān)欄地址http://blog.csdn.net/bill_man

上一篇的實(shí)例中,縱版射擊游戲中加入了敵人對(duì)子彈的碰撞和爆炸特效,本篇內(nèi)容將給敵人加入貝塞爾曲線(xiàn)的運(yùn)動(dòng)軌跡并且敵人會(huì)“源源不斷”的出現(xiàn)。首先還是看一下效果圖:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

其實(shí)從簡(jiǎn)單的圖片上看不出我的敵人運(yùn)動(dòng)軌跡上的改變,這里我采用了CCAction中的貝塞爾曲線(xiàn)運(yùn)動(dòng)軌跡;貝塞爾曲線(xiàn),又稱(chēng)貝慈曲線(xiàn)或貝濟(jì)埃曲線(xiàn),是應(yīng)用于二維圖形應(yīng)用程序的數(shù)學(xué)曲線(xiàn)。?在我看起來(lái)他的運(yùn)動(dòng)曲線(xiàn)比較像一個(gè)周期的正弦或余弦曲線(xiàn)(就是表現(xiàn)上比較像)。

首先來(lái)看初始化敵人的代碼:


這里首先定義一個(gè)ccBezierConfig變量bezier并初始化它,首先是定義它的兩個(gè)“控制點(diǎn)”,這兩個(gè)控制點(diǎn)和我們的敵機(jī)走出的軌跡的“波峰”和“波谷”有關(guān),程序中需要的這個(gè)貝塞爾曲線(xiàn)就像是正弦曲線(xiàn)旋轉(zhuǎn)90度一樣,所以我將controlPoint_1的橫坐標(biāo)向左移動(dòng),它的波谷就會(huì)向左移,相應(yīng)的,我們把controlPoint_2向右移動(dòng),那么它的波峰會(huì)向右移動(dòng),然后定義整個(gè)貝塞爾曲線(xiàn)的終點(diǎn)。之后我們使用ccBezierConfig定義一個(gè)CCBezierToCCBezierTo是貝塞爾到達(dá)指定的點(diǎn),而CCBezierBy則是貝塞爾曲線(xiàn)到達(dá)指定距離。也就是說(shuō)如果你定義的是CCBezierBy,那么之前定義的控制點(diǎn)和終點(diǎn)都是與當(dāng)前點(diǎn)的差值,也就是距離。第一個(gè)參數(shù)是時(shí)間,第二個(gè)參數(shù)就是我們之前定義的ccBezierConfig。

然后就是敵人死亡或者出屏之后的“重生”,我們首先為GameEnemy類(lèi)加入一個(gè)restart函數(shù),這個(gè)函數(shù)會(huì)在敵人重生時(shí)調(diào)用:


重新定義敵人的重生位置,將敵人變?yōu)榭娠@示,然后為敵人加入貝塞爾曲線(xiàn)的邏輯。

在把敵人設(shè)置為死亡時(shí),我們也要多做一些操作,來(lái)看setDead函數(shù):


我們要停掉當(dāng)前的動(dòng)作,將主角設(shè)置為不可見(jiàn)。然后我們?cè)谥鲌?chǎng)景類(lèi)中調(diào)用schedule(schedule_selector(MapScene::enemyrestart),?2.0f);讓在2.0s后調(diào)用enemyrestart

函數(shù),在函數(shù)中調(diào)用敵人的restart函數(shù),讓敵人“重生”。


另外,我們?cè)跀橙说倪壿嫼瘮?shù)中判斷敵人是否已經(jīng)出屏,若出屏則停掉所有動(dòng)作,并調(diào)用敵人的“重生”函數(shù)restart。這樣敵人就會(huì)“源源不斷”的出現(xiàn)了。

如有錯(cuò)誤之處,希望大家多多指正

下一篇繼續(xù)縱版射擊游戲?qū)嵗?/p>

總結(jié)

以上是生活随笔為你收集整理的cocos2d-x游戏实例(19)-纵版射击游戏(6)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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