如题:
环境是 3.2 + lua 之前是3.1 一样不行 有人说3.2解决了骨骼动画自动移除的问题 但是…
求指导 帮忙看下 是哪里的问题 谢谢!!!
比如人物的枪械 枪口上面有个没有任何显示的 ‘tx_01’ 的骨骼挂点 用于挂载 枪口开火特效
发射子弹的时候 创建一个骨骼动画 挂上去 骨骼动画播放完毕后 如何将这个特效显示移除
自己写的相关代码如下: 但是移除不掉 会直接崩溃
---- 获取特效挂点
local txbone = hero:getBone(“tx_01”)
---- 创建子弹发射枪口特效
local shoot_tx = CCArmature:create(“shoot_tx”)
shoot_tx:getAnimation():play(“shoot_03”);
shoot_tx:retain()
---- 侦听特效动画
local function animationEvent(armatureBack,movementType,movementID)
local id = movementID
if movementType == ccs.MovementEventType.LOOP_COMPLETE then
– txbone:removeDisplay(0) – 会直接崩溃
– shoot_tx:removeFromParent(true) --从父节点移除没有效果
end
end
---- 将枪口特效挂载到 特效挂点
txbone:addDisplay(shoot_tx, 0)
shoot_tx:setAnchorPoint(0.1,0.5)
txbone:changeDisplayWithIndex(0, true)
txbone:setIgnoreMovementBoneData(true)
shoot_tx:getAnimation():setMovementEventCallFunc(animationEvent)
目前的解决办法是 用一个全局的变量 needDelTX 侦听到特效播放完毕 后把他改成true 再在主逻辑 里面找到骨骼移除 display 0
试了一下是 可以的
如果只有主角 还好 但是我这边有很多 怪物也要有攻击特效 难道要 创建茫茫茫多的 全局变量去 控制?? 为什么不能直接 循环完成后移除呢??
