Кнопка UIB предыдущей сцены перекрывает CCSprite - PullRequest
1 голос
/ 02 июля 2011

У меня есть кнопка UIB, которая перемещается случайным образом по экрану.При нажатии на кнопку загружается новая сцена, которая на данный момент содержит CCSprite.Вот код:

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

Довольно просто, и меня удивляет, почему после 'replaceScene' UIB-кнопка theHelloWorldScene.m все еще видна, прямо над Sprite.Куда я иду не так?

Ответы [ 2 ]

3 голосов
/ 03 июля 2011

Я предполагаю, что поскольку вы добавляете UIButton в сцену cocos2d, вы используете openGLView что-то вроде:

[[[CCDirector sharedDirector] openGLView] addSubView: кнопка];

Если это так, то перед тем, как заменить HelloWorldScene, вам нужно вызвать что-то похожее на

[кнопка удаления из окна просмотра]

Где кнопка - это название вашей кнопки UIB (в обоих случаях).

Однако было бы предложено использовать CCMenu с CCMenuItem на вашем HelloWorldScene, поскольку объекты UIKit не очень хорошо сочетаются с Cocos2d.

0 голосов
/ 02 июля 2011

Вы действительно не даете достаточно информации.Самый простой ответ, однако, заключается в том, что если вы не хотите, чтобы кнопка была больше видна, удалите дочерний элемент (кнопку).Вы можете установить тег на кнопку и затем использовать [layer getChildByTag: (NSInteger)].

...