Cocos2d iphone CCNode获取动作移动到的位置

Cocos2d iphone CCNode获取动作移动到的位置,cocos2d-iphone,Cocos2d Iphone,我只是想知道如果一个节点不移动,如何获得它的当前位置,但是如果正在执行CCMoveTo操作,我需要它移动到的位置 这是已经内置的还是我必须自己实现,如果是的话,有没有关于我将如何实现的建议 谢谢你的帮助, Ben您需要有任何CCMoveTo操作对象,然后按要获取其位置的CCNode对象进行搜索。如果找到了CCNode对象的目标CCMoveTo对象,则可以从CCMoveTo对象获取位置。例如,将-(NSArray*)getActionsByTarget:(id)target方法或类似方法添加到CC

我只是想知道如果一个节点不移动,如何获得它的当前位置,但是如果正在执行CCMoveTo操作,我需要它移动到的位置

这是已经内置的还是我必须自己实现,如果是的话,有没有关于我将如何实现的建议

谢谢你的帮助,
Ben

您需要有任何CCMoveTo操作对象,然后按要获取其位置的CCNode对象进行搜索。如果找到了CCNode对象的目标CCMoveTo对象,则可以从CCMoveTo对象获取位置。例如,将-(NSArray*)getActionsByTarget:(id)target方法或类似方法添加到CCActionManager类中


或者,从CCNode创建派生类,以获得CCMoveTo操作的位置。

通常,如果已经有内置方法“单行”为您提供所需的信息,例如使用
[[CCDirector sharedDirector]running Scene]
获取当前场景,创建ivar来跟踪信息以供以后查询是个坏主意

但是,如果使用内置方法太老套或冗长,无法保证准确性,那么最好创建一个ivar。

因此,只要在该节点上创建一个ivar,在位置更改或分配CCMoveTo操作时更新该ivar即可

注意:我将
-(NSArray*)getActionsByTarget:(id)target
方法称为hackish,因为不能保证您可以在其中找到
CCMoveTo
操作。该操作可能深入嵌入
[CCSequence actions:[CCFadeIn…],[CCSpawn actions:[CCCallBlock actionWithBlock:^{[self runAction:[CCSequence actions:[CCDelay…],[CCMoveTo…],nil];}],[CCMoveTo…],nil],[CCMoveTo…],nil]
。现在,您将如何实现能够正确找到所有三个
CCMoveTo
并推断出哪一个将给出最终位置的逻辑