我需要将 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 中,调用 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