UIKit レイヤーの位置を Cocos2D シーン レイヤーと同期する必要があります。現在のシーンを画面から新しいシーンに移動するトランジションが発生します。CCActionEase を編集して、おそらくデリゲートのメソッドを呼び出して Cocos2D シーン レイヤーの現在の位置を送信できる独自の update メソッドを作成しました。必要なのは、CCActionEase でシーンの現在の位置を取得する方法だけです。CCActionEase 呼び出し update が何度も繰り返され、その間にシーンの位置が変化するため、ここにある必要があります。
これは、呼び出される順序での私のコードの概要です。
私のシーンの現在のレイヤーでは、トランジションのメソッドが呼び出されます:
[[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 では、update メソッドが呼び出されます。
@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