【问题标题】:UIButton of previous scene overlaps CCSprite上一场景的UIButton与CCSprite重叠
【发布时间】:2011-07-02 13:24:34
【问题描述】:

我有一个在屏幕上随机移动的 UIButton。单击按钮时,将加载一个新场景,目前该场景包含一个 CCSprite。代码如下:

//in init
CCSprite *a = [CCSprite spriteWithFile:@"a.png"];
[a setPosition:ccp(0,0)];
[self addChild:a];

非常简单,它难倒我为什么在“replaceScene”之后,HelloWorldScene.m 的 UIButton 仍然可见,就在 Sprite 的顶部。我哪里错了?

【问题讨论】:

    标签: cocos2d-iphone ccsprite


    【解决方案1】:

    我假设由于您将 UIButton 添加到 cocos2d 场景中,因此您正在使用 openGLView 类似:

    [[[CCDirector sharedDirector] openGLView] addSubView:button];

    如果是这种情况,那么在替换 HelloWorldScene 之前,您需要调用类似于

    [按钮 removeFromSuperview]

    其中 button 是您的 UIButton 的名称(在这两种情况下)。

    一个建议是在 HelloWorldScene 上使用带有 CCMenuItem 的 CCMenu,因为 UIKit 对象与 Cocos2d 并不能很好地融合。

    【讨论】:

    • 他们肯定不会。我希望他们能致力于提高凝聚力。
    • 是的,我意识到我只是因为熟悉 UIButtons 而试图避免使用 CCMenu。但这应该是好的。谢谢!
    【解决方案2】:

    您确实没有提供足够的信息。然而,最简单的答案是,如果您不希望按钮不再可见,则删除子项(按钮)。您可以在按钮上设置标签,然后使用 [layer getChildByTag:(NSInteger)]。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多