我是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;
}
答案 0 :(得分:1)
两个动作同时运行。在调用回调之前,播放器旋转rotateDuration,同时nextprojectile(如果不为null)已经开始移动。
看起来您可能想要在finishShoot方法中移动下一个射弹运行。