【问题标题】:Cocos2d: Get current position of scene in CCActionEaseCocos2d:在CCActionEase中获取场景的当前位置
【发布时间】:2012-10-04 18:54:39
【问题描述】:

我需要将 UIKit 层的位置与 Cocos2D 场景层同步,发生的过渡将当前场景从屏幕上移出一个新场景。我已经编辑了 CCActionEase 来制作我自己的更新方法,它可能会在我的委托中调用一个方法来发送我的 Cocos2D 场景层的当前位置。我所需要的只是一种在 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中,调用了更新方法:

@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

【问题讨论】:

    标签: cocos2d-iphone uikit position layer scene


    【解决方案1】:

    为什么不覆盖你正在移动的图层的 setPosition?我在我的一个应用程序中使用这种技术来移动一个带有图层的 UITextField,它工作正常。

    -(void)setPosition:(CCPoint)p
    {
          [super setPosition:p];
          CGPoint uiKitPoint = [[CCDirector sharedDirector] convertToUI:p];
    
          //Move the UIKit object wherever
    }
    

    【讨论】:

    • 这看起来是一种非常酷的方法来移动带有层的 UIKit 事物,但是在我使用 CCActionEase 之类的场景转换的情况下,我仍然可以使用它吗?
    猜你喜欢
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    相关资源
    最近更新 更多