[已解决] 进来看看,关于一个精灵行动结束后另一个精灵在行动的问题

我在游戏中把所有的敌方的精灵都放在一个数组,
然后遍历数组把精灵一个一个取出来,
取一个,然后执行动作.动作结束后在取一个精灵在执行动作.
我的方法如下:

    Player* player;
    CCObject* pObject = NULL;
    CCARRAY_FOREACH(enemyPlayer, pObject)//遍历角色的类表,enemyPlayer是一个装正精灵的Array
    {
        player = (Player*)pObject;
        if(! player )
            break;
        operateSprite=player;
        path=getPath(player,tmppoint,tileMap);//取得移动路径列表
        CCArray* actionArray=new CCArray();
        AstarItem* astaritem;
        CCObject* itemObject = NULL;
        CCARRAY_FOREACH(path, itemObject)//遍历路径表
        {
            astaritem=(AstarItem*)itemObject;
            CCPoint movetoPoing=map2win(astaritem->getrow(),astaritem->getcol());
            CCActionInterval*  actionTo = CCMoveTo::create(0.5,movetoPoing);
            actionArray->addObject(actionTo);//把移动动作添加到,行动数组里去.
        }
        actionArray->addObject(CCCallFunc::create(this, callfunc_selector(HelloWorldScene::Callback1)));  
        (operateSprite->getSprite())->runAction(CCSequence::create(actionArray));//执行动作

    }


```

但是运行的结果还是所有的精灵同时动起来.达不到效果.请问这是为什么?

这里越来越冷清,贴了一天都没人回,自己解决,
思路是:不用 CCARRAY_FOREACH来遍历enemyPlayer,而是在回调函数中指定要执行运动的精灵,这样就能保证一个精灵的动作结束后执行回调函数,从而使另一个精灵开始动作.

帧的问题,不是你的精灵有了改变,画面就会立即变化的
主线程在两次update间隔内,你完成了所有的遍历,所有的精灵改变,所以,你看起来,就是一起动咯
例如场景的切换,如果没有场景在运行,用runwithscene,否则用replacescene。但是,如果你先执行runwithscene,然后在同样的方法里
马上执行replacescene,你就会发现,报错了,引擎认为当前没有runingscene。这个在下一次心跳的时候,才会被设置。
剩下的,你懂了吧
师兄只能帮你到这里了……
事了拂衣去,深藏功与名……