前一场景的UIButton与CCSprite重叠

时间:2011-07-02 13:24:35

标签: cocos2d-iphone ccsprite

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

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

非常直截了当,它让我难以理解为什么在'replaceScene'之后仍然可以看到你好的世界之谜的UIButton,就在Sprite之上。我哪里错了?

2 个答案:

答案 0 :(得分:3)

我假设你将一个UIButton添加到你正在使用openGLView的cocos2d场景中 类似的东西:

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

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

的内容

[button removeFromSuperview]

其中button是UIButton的名称(在两个实例中)。

虽然建议在你的HelloWorldScene上使用带有CCMenuItem的CCMenu,因为UIKit对象与Cocos2d并不能很好地匹配。

答案 1 :(得分:0)

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