Cocos2d x 什么';下面cocos2dx代码中的s代码序列?

Cocos2d x 什么';下面cocos2dx代码中的s代码序列?,cocos2d-x,cocos2d-x-3.0,Cocos2d X,Cocos2d X 3.0,我是cocos2dx的新手。在下面的代码中,_nextproject被添加到回调函数中“this”的子函数中,该函数在_nextproject->runaction之后执行(因为“finish shot”总是在“run action”之后打印)。但是,我在finishShoot()中打印了_nextproject的位置,这与我创建_nextproject时设置的位置完全相同 那么我的问题是_nextproject->runAction实际上什么时候执行 多谢各位 { _player-&g

我是cocos2dx的新手。在下面的代码中,_nextproject被添加到回调函数中“this”的子函数中,该函数在_nextproject->runaction之后执行(因为“finish shot”总是在“run action”之后打印)。但是,我在finishShoot()中打印了_nextproject的位置,这与我创建_nextproject时设置的位置完全相同

那么我的问题是_nextproject->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;
}

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


看起来您可能希望在finishshot方法中移动nextproject运行操作。

否,实际上,nextproject在旋转后开始移动。似乎_nextproject只是在添加到“this”之后才开始移动。当然,当它既不可见也不属于节点层次结构时,为什么会移动呢?如果需要它以不可见的方式移动,请添加它并将其可见标志设置为false。