24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作
生活随笔
收集整理的這篇文章主要介紹了
24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
重開(kāi)發(fā)人員的勞動(dòng)成果,轉(zhuǎn)載的時(shí)候請(qǐng)務(wù)必注明出處:http://blog.csdn.net/haomengzhu/article/details/37596763
網(wǎng)格動(dòng)作類(lèi)似于動(dòng)作特效,能夠?qū)崿F(xiàn)翻轉(zhuǎn)、震蕩、抖動(dòng)、水的波紋等效果。
網(wǎng)格的基類(lèi): GridBase* Grid? 獲取或設(shè)置該節(jié)點(diǎn)的網(wǎng)格特效狀態(tài)。
網(wǎng)格應(yīng)用于畫(huà)圖平面上,能夠?qū)崿F(xiàn)水紋等 3D 特效;
基類(lèi)定義:cocos2d/2d/CCGrid.h中。
基于這個(gè)基類(lèi)有兩個(gè)子類(lèi): Grid3D TiledGrid3D 這兩個(gè)子類(lèi)的共同點(diǎn)是:網(wǎng)格的每一個(gè)子塊都能夠分離出來(lái)。
集成關(guān)系代碼: class CC_DLL GridBase : public Refclass CC_DLL Grid3D : public GridBaseclass CC_DLL TiledGrid3D : public GridBase
網(wǎng)格一般不直接應(yīng)用。僅僅須要明確Grid3D和TiledGrid3D 。了解網(wǎng)格動(dòng)作是基于網(wǎng)格的就可以。 執(zhí)行網(wǎng)格動(dòng)作的節(jié)點(diǎn)就像是被分成了大小同樣的非常多個(gè)矩形,通過(guò)這些矩形的動(dòng)作來(lái)形成總體的網(wǎng)格動(dòng)作, 16X12的網(wǎng)格執(zhí)行的非常快,可是效果并非非常好。 32X24的網(wǎng)格看起來(lái)效果不錯(cuò)。可是有時(shí)間執(zhí)行起來(lái)不會(huì)太快。
使用網(wǎng)格動(dòng)作之前,須要取消OpenGL的深度檢測(cè): 調(diào)用? ? ?? Director::getInstance()->setDepthTest(true);
網(wǎng)格動(dòng)作和普通的動(dòng)作的使用方式是一樣的。能夠通過(guò)runAction來(lái)執(zhí)行動(dòng)作,
詳細(xì)的動(dòng)作例如以下表所看到的:
部分網(wǎng)格動(dòng)作的執(zhí)行效果如圖所看到的:
在使用網(wǎng)格動(dòng)作時(shí),網(wǎng)格動(dòng)作結(jié)束之后,須要把網(wǎng)格清空: void TextLayer::checkAnim(float dt) {//auto s2 = getChildByTag(kTagBackground);if ( _gridNodeTarget->getNumberOfRunningActions() == 0 && _gridNodeTarget->getGrid() != NULL)_gridNodeTarget->setGrid(nullptr);; }
首先找到目標(biāo)節(jié)點(diǎn),然后檢測(cè)目標(biāo)節(jié)點(diǎn)是否還有動(dòng)作,假設(shè)沒(méi)有而且網(wǎng)格不為空。則調(diào)用setGrid函數(shù)并傳入空參數(shù)(nullptr) 就能夠清空網(wǎng)格; 當(dāng)使用schedule一直檢測(cè)調(diào)用該函數(shù)時(shí),就能夠?qū)崿F(xiàn)清空無(wú)動(dòng)作的節(jié)點(diǎn)網(wǎng)格。
轉(zhuǎn)載于:https://www.cnblogs.com/jzssuanfa/p/6785114.html
總結(jié)
以上是生活随笔為你收集整理的24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 霍金:AI或许能根除疾病和贫穷,但也可能
- 下一篇: 3、构建bass服务及model