Cocos2d:获取CCActionEase中场景的当前位置

时间:2012-10-04 18:54:40

标签: cocos2d-iphone uikit position layer scene

我需要将UIKit图层的位置与Cocos2D场景图层同步,发生转换,将当前场景从屏幕上移开一个新场景。我编辑了CCActionEase来制作我自己的更新方法,可能会调用我的委托中的方法来发送我的Cocos2D场景图层的当前位置。我只需要一种方法来获取CCActionEase中场景的当前位置。它需要在这里,因为CCActionEase反复调用更新,而实际上,场景的位置正在改变。

这是我的代码的一个故障,以便调用事物。

在我的场景中,当前图层调用了我的转换方法:

[[CCDirector sharedDirector] replaceScene: [ExitUTransition transitionWithDuration:5.4 scene: [JoinedMapsScene scene]]];

在该类中,调用自定义CCEaseInWithPercentMult的actionWithAction:

@implementation ExitUTransition

- (CCActionInterval*)easeActionWithAction:(CCActionInterval*)action {

    return [CCEaseInWithPercentMult actionWithAction:action rate:1.0f];

}

@end

在CCActionEase中,调用更新方法:

@implementation CCEaseInWithPercentMult
-(void) update: (ccTime) t
{

    [other update: powf(t,rate)];

    //here I could pass the scene layer position

    [(cocosTestsAppDelegate *)[[UIApplication sharedApplication] delegate] adjustBGViewPosWithXOffset:scenePosX withYOffset:scenePosY];
}
@end

1 个答案:

答案 0 :(得分:1)

为什么不覆盖正在移动的图层的setPosition?我在我的应用程序中使用此技术来移动带有图层的UITextField,并且它可以正常工作。

-(void)setPosition:(CCPoint)p
{
      [super setPosition:p];
      CGPoint uiKitPoint = [[CCDirector sharedDirector] convertToUI:p];

      //Move the UIKit object wherever
}