Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 上一个场景的ui按钮与CCSprite重叠_Cocos2d Iphone_Ccsprite - Fatal编程技术网

Cocos2d iphone 上一个场景的ui按钮与CCSprite重叠

Cocos2d iphone 上一个场景的ui按钮与CCSprite重叠,cocos2d-iphone,ccsprite,Cocos2d Iphone,Ccsprite,我有一个在屏幕上随机移动的UIButton。单击该按钮,将加载一个新场景,目前该场景包含一个CCSprite。代码如下: //in init CCSprite *a = [CCSprite spriteWithFile:@"a.png"]; [a setPosition:ccp(0,0)]; [self addChild:a]; 非常简单,我很难理解为什么在“替换场景”之后,HelloWorldScene.m的UIButton仍然可见,就在精灵的顶部。我哪里出错了?你真的没有提供足够的信息。然

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

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

非常简单,我很难理解为什么在“替换场景”之后,HelloWorldScene.m的UIButton仍然可见,就在精灵的顶部。我哪里出错了?

你真的没有提供足够的信息。然而,最简单的答案是,如果你不想再看到按钮,那么就移除子按钮(按钮)。您可以在按钮上设置一个标记,然后使用[layer getChildByTag:(NSInteger)]。

我假设您正在使用openGLView将UIButton添加到cocos2d场景中 比如:

[[[CCDirector sharedDirector]openGLView]添加子视图:按钮]

如果是这种情况,那么在替换HelloWorld场景之前,需要调用类似的

[从SuperView中移除按钮]

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


不过,有一个建议是在HelloWorld场景中使用带有CCMenuItem的CCMenu,因为UIKit对象与Cocos2d的网格不太匹配。

它们确实不匹配。我希望他们能致力于提高凝聚力。是的,我意识到我之所以试图避免使用CCMenu,仅仅是因为我熟悉ui按钮。但这应该是好的。谢谢