请问cocos2dx有什么方法可以组合不同的对象的动作,方便让几个不同对象可以根据需要的时序要求来执行

如题:请问cocos2dx有什么方法可以组合不同的对象的动作,方便让几个不同对象可以根据需要的时序要求来执行?

目前同个对象的action可以通过方便的组合来实现复杂的行为动作,但是如果需要让不同的几个对象互相协调同步来执行一些动作,目前自己只查到有回调的机制可用,不知道各位大大有啥好的方法没?
举例如下:
A精灵同步启动两个动作:a1+a2,
在A执行完之后,B和C开始同时执行各自的动作,B的组合动作是b1->b2两个依次执行,C的组合动作是c1+(c2->c3),
然后B执行完之后,D开始执行;

上述的实现如果不加回调或者不用演示,A、B、C、D的动作会同时跑起来,但是要加回调的话,代码写起来又很凌乱,不知道Cocos3dx有没有一些机制支持不同对象间的同步协调执行的?

这样看行不行,
A使用Sequence,然后A最后一个动作用一个CallFunc(call_BandC),
然后B也使用Sequence,B的最后一个动作用CallFunc(call_D)。

刚没看清LZ意思啊,嫌回调麻烦的话那就用lambda?

感谢回复!
我现在的处理方法也是如您所说的那样去做的,不过这样做的话,渲染的动作和游戏的逻辑没法分离了,譬如刚才的例子,如果由于用户的操作使得游戏的逻辑发生变更,譬如,A执行完,D就先于BC执行了;那这样的话,渲染的次序就会因为回调的写死而与逻辑不符,这样对于一些非固定逻辑的渲染过程而言,必须多次改写回调,感觉会非常凌乱。

建议动作组合可以用字符串格式来写, 比如 “x+100:1, y+100:1, x*2:1, fadeout:2”

不是太明白,愿闻详情哦~

我只是一个想法而已啦, 希望能做到

:2: :2: 逻辑和动作不冲突,想怎么做就怎么做……

不是有CallBcak动作嘛?利用lamba函数来操作.
你可以CallBcak动作里包含一个对象执行的一组动作…
没必要把动作对象当成实体,你生成一个动作对象,就是新派生的子类改变一些数值,runAction后通过动作管理器不断检测相关数值并渲染.

但是再怎么复杂的嵌套动作,最后系统还是一步步操作的,所以你只要逻辑上觉得可以就行了,没必要考虑它对象会怎么样.
逻辑正确,即动作正确,不冲突~~~