我想移动一个节点并在移动完成后调用一个block。但有时我需要在节点移动时将节点移动到另一个位置(更改目的地)。我不能简单地停止之前的操作并开始新的操作,因为回调不会被调用并导致不一致的状态。idmove=[CCMoveToactionWithDuration:timeposition:pos];idcall=[CCCallBlockactionWithBlock:^{//dosomethinglikecleanup}];CCSequence*action=[CCSequenceactions:move,call,nil];action.tag=kMovingActionTag;[no
执行此操作的最佳方法是什么?我看到了CCEaseSineInOut操作,但它看起来不像可以用来执行此操作。我需要从屏幕的一侧移动到另一侧。Sprite应在屏幕上以正弦波模式移动。 最佳答案 我总是喜欢完全控制CCNode运动。我只使用CCAction来做非常基本的事情。虽然您的案例听起来很简单,可以用CCAction来处理,但我将向您展示如何根据任何函数随时间移动CCNode。您还可以使用相同的技术更改比例、颜色、不透明度、旋转,甚至anchor。@interfaceSomeLayer:CCLayer{CCNode*nodeToMo
是否可以同时在一个Sprite上运行多个ccactions?例如,如果我有一个CCFadeIn、一个CCScaleTo和一个CCRotateBy,它们都具有相同的持续时间,我可以同时在一个Sprite上运行这三个吗?我发现唯一可以远程关闭任何东西的是CCSequence,而这不是我想要的。谢谢! 最佳答案 您不需要使用CCSpawn,只需在同一个Sprite上单独运行这些操作,它们将同时运行:idfadeIn=[CCFadeInactionWith…];[spriterunAction:fadeIn];idscale=[CCScal
是否可以同时在一个Sprite上运行多个ccactions?例如,如果我有一个CCFadeIn、一个CCScaleTo和一个CCRotateBy,它们都具有相同的持续时间,我可以同时在一个Sprite上运行这三个吗?我发现唯一可以远程关闭任何东西的是CCSequence,而这不是我想要的。谢谢! 最佳答案 您不需要使用CCSpawn,只需在同一个Sprite上单独运行这些操作,它们将同时运行:idfadeIn=[CCFadeInactionWith…];[spriterunAction:fadeIn];idscale=[CCScal