1

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

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

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

4

2 回答 2

3

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

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

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

[按钮 removeFromSuperview]

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

一个建议是在您的 HelloWorldScene 上使用带有 CCMenuItem 的 CCMenu,因为 UIKit 对象与 Cocos2d 的啮合效果并不好。

于 2011-07-02T22:39:32.067 回答
0

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

于 2011-07-02T16:30:49.767 回答