前言
做cocos lua開發(fā)的很多都吐槽cocos 的文檔不好,特別是因為cocos版本太多,而且很多項目版本可能比較古老手负,一些api查閱起來很困難。之前在項目中遇到一個動畫姑尺,需要替換Armature當(dāng)中一直數(shù)字的節(jié)點竟终,在framework目錄下搜索了一下armature,意外地發(fā)現(xiàn)了cocos lua的api說明切蟋,因為項目用的事quik-cocos2dx 3.3统捶,我看了一下cocos2dx 3.10版本的東西,發(fā)現(xiàn)同樣有這么一個api說明柄粹。大體目錄為:frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto\api喘鸟。如果你的項目中沒有就直接搜索api,應(yīng)該就能找到你想要的東西驻右,這個api說明對開發(fā)還是有不小的幫助的什黑。
動畫節(jié)點替換
直接上代碼
ccs.ArmatureDataManager:getInstance():addArmatureFileInfo("PPBYyuquanxiao/PPBYyuquan.ExportJson") -- 加載動畫文件
local fishAnimation = ccs.Armature:create("PPBYyuquan") -- 創(chuàng)建動畫
fishAnimation:getAnimation():playWithIndex(0, -1, 0) -- 播放動畫
fishAnimation:setPosition(cc.p(0, 0)) -- 設(shè)置動畫位置
cocos lua 為armature的節(jié)點替換提供了一些接口的,具體可以參考上面提到的api當(dāng)中的Armature說明堪夭。
這里用到的就簡單的三個getBone, addDisplay, changeDisplayWithIndex
-- 創(chuàng)建一個數(shù)字的label
local atlasLabel = cc.LabelAtlas:_create("0", fishJoyPath.resPath.."image/shuziquan.png", 44, 76, string.byte('0'))
atlasLabel:setString(tostring(value))
local numSize = atlasLabel:getContentSize()
atlasLabel:setPosition(cc.p(-numSize.width/2, -numSize.height/2))
-- 替換節(jié)點
local shuzi = fishAnimation:getBone("4shuzi")
shuzi:addDisplay(atlasLabel, 1)
shuzi:changeDisplayWithIndex(1, true)
parent:addChild(fishAnimation)
通過執(zhí)行上面的代碼愕把,就可以把一個動畫中名字為“4shuzi”的節(jié)點替換成任何你想要的數(shù)字,并且表現(xiàn)形式和做出來的動畫一樣森爽。
這里參考了簡書作者的一篇文章恨豁,他的文中可能說得更加詳細一些Cocos2d-x中替換動畫(Armature)中的節(jié)點與粒子