各位大神,
请教一个关于精灵动画的问题.
比如有3个精灵,分别执行3个action,现在想实现精灵1,执行完成后,再执行精灵2的action,等精灵2执行完成,再执行精灵3.
我想要的效果是
layer->runAction(Sequence::create(sprite1->runAction,sprite2->runAction,sprite3->runAction));
但是这样写,没法编译, Sequence不支持.
如果用callfunc来写,要嵌套好多层.而且到第三层嵌套时,运行会报错.
不知道大家有没有什么好的办法.
首先我觉得可以封装成一个实现类,然后实例化这个类的对象,存到Vector中,这个类的对象包含Target 个 action指针。然后在场景类里写个update,用于判定某个精灵是否停止动作(getNumberOfRunningActions方法),停止后,将Vector里第二个对象取出,执行自己成员变量里的动作,这样一直update到最后一个对象,就可以停止定时器了。当然,对象执行动作时,也是要停止场景上这个update的。这种方法支持扩展,容易修改。我是觉得OO思想比较适合你的情况。