我需要将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
答案 0 :(得分:1)
为什么不覆盖正在移动的图层的setPosition?我在我的应用程序中使用此技术来移动带有图层的UITextField,并且它可以正常工作。
-(void)setPosition:(CCPoint)p
{
[super setPosition:p];
CGPoint uiKitPoint = [[CCDirector sharedDirector] convertToUI:p];
//Move the UIKit object wherever
}