下面的cocos2dx代码中的代码序列是什么?

时间:2014-07-08 03:50:03

标签: cocos2d-x cocos2d-x-3.0

我是cocos2dx的新手。在下面的代码中,_nextProjectile被添加到"这个"的孩子们。在_nextProjectile-> runaction之后执行的回调函数中(因为"完成拍摄"总是在&#34之后打印;运行动作")。但是,我在finishShoot()中打印_nextProjectile的位置,这与我在创建_nextProjectile时设置的位置完全相同。

所以我的问题是什么时候_nextProjectile-> runAction实际执行?

谢谢。

{
    _player->runAction(Sequence::create(RotateTo::create(rotateDuration, cocosAngle), CallFuncN::create(CC_CALLBACK_0(HelloWorld::finishShoot, this)), NULL));

// Move projectile to actual endpoint
    printf("run action\n");
    _nextProjectile->runAction(Sequence::create(MoveTo::create(realMoveDuration, realDest), CallFuncN::create(CC_CALLBACK_1(HelloWorld::spriteMoveFinished, this)), NULL));
}

void HelloWorld::finishShoot()
{
    // Ok to add now - we've finished rotation!
    printf("finish shoot\n");
    this->addChild(_nextProjectile);
    // Add to projectiles vector
    _projectiles.pushBack(_nextProjectile);

    _nextProjectile = NULL;
}

1 个答案:

答案 0 :(得分:1)

两个动作同时运行。在调用回调之前,播放器旋转rotateDuration,同时nextprojectile(如果不为null)已经开始移动。

看起来您可能想要在finishShoot方法中移动下一个射弹运行。