Cocos2d-x 3.3
动作动画都是用Cocos Studio编辑成timeline的。人物攻击一次,然后移动。我希望先把攻击动作播放一次,然后循环播放移动动作。问题是:怎么获知攻击动作结束?
我能找到的方法有:
- 调用ActionTimeline:isPlaying(),轮询状态。但这种方式效率不行
- 通过ActionTimeline::setLastFrameCallFunc()设置一个回调,当播放到最后一帧时会被调用。不过这个方法在Lua里不可用
请问大家是如何解决这个问题的?
Cocos2d-x 3.3
动作动画都是用Cocos Studio编辑成timeline的。人物攻击一次,然后移动。我希望先把攻击动作播放一次,然后循环播放移动动作。问题是:怎么获知攻击动作结束?
我能找到的方法有:
请问大家是如何解决这个问题的?
自己顶下。。
把攻击动作和移动动作关联起来
1)CCSpawn:使用该组合动作可以让节点同时执行多个动作。
2)CCSequence:使用该组合动作可以按顺序执行多个动作。
3)CCRepeat:使用该组合动作让节点在限定的时间内重复执行某个动作。
4)CCRepeatForect:使用该组合动作让节点反复执行某个动作。CCSequede中不能包含此动作
CCAction *action = ,nil];
这是object-c语句 我就不翻译了
Sequence,Repeat等,都只能用于FiniteTimeAction。但是,ActionTimeline直接继承自Action,不能用Sequence或Repeat的。
感觉这是严重的设计缺陷。
请问楼主这个问题解决了吗?
是的。后来的确是用frame event解决的。
有一个帧事件啊