2012-10-04 47 views
1

我需要将UIKit图层的位置与Cocos2D场景图层同步,发生过渡,将当前场景从新屏幕移出屏幕。我编辑了CCActionEase来创建我自己的更新方法,它可能会在我的委托中调用一个方法来发送我的Cocos2D场景图层的当前位置。我只需要一种方式来获取CCActionEase中场景的当前位置。它需要在这里,因为CCActionEase一遍又一遍地调用更新,而现在,场景的位置正在改变。Cocos2d:在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

为什么不重写要移动的图层的setPosition?我在我的应用程序中使用这种技术来移动带有图层的UITextField,并且它工作正常。

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

     //Move the UIKit object wherever 
} 
+0

这看起来像是一个移动UIKit东西的非常酷的方法,但是我仍然可以在我使用CCActionEase这样的场景转换的情况下使用它吗? – VagueExplanation