Сделать нажатие кнопки эксклюзивно для изображения кнопки?
У меня странная, раздражающая проблема.
Например, на экране моего главного меню есть кнопка с надписью "Инструкции".
Как только я нажимаю на это, в слое инструкций, есть кнопка, которая возвращает вас в главное меню.
Однако по какой-то причине действие кнопки не является эксклюзивным для изображения спрайта. Если я нажму 3 дюйма от кнопки "backtomenu", она все равно вернет меня в главное меню.
Итак, мой вопрос, как я могу сделать нажатие кнопки, только если вы нажмете на фактическое изображение? (так я создаю кнопку)
- (id) init
{
if((self = [super init]))
{
[self instructions];
}
return self;
}
- (void) instructions
{
bgI = [CCSprite spriteWithFile:@"testbackground11.png"];
[bgI setPosition:ccp(160,240)];
ccTexParams params = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
[bgI.texture setTexParameters:¶ms];
[self addChild:bgI z:0];
returnToMenu = [CCMenuItemImage itemFromNormalImage:@"berry2.png"
selectedImage:@"berry2_selected.png"
target : self
selector: @selector (ifReturnToMenu:)];
CCMenu *myReturnMenu = [CCMenu menuWithItems:returnToMenu, nil];
[myReturnMenu alignItemsVertically];
[self addChild: myReturnMenu];
}
- (void) ifReturnToMenu: (CCMenuItem *) menuItem
{
if(menuItem == returnToMenu)
[[CCDirector sharedDirector] replaceScene:
[CCTransitionFade transitionWithDuration:0.5f scene: [MainMenu scene]]];
}
1 ответ
Решение
Я не уверен, как "isReturnToMenu" запускается, но вы можете попробовать это
- (void) ifReturnToMenu: (CCMenuItem *) menuItem{
if(menuitem == returnToMenu){
[[CCDirector sharedDirector] replaceScene:
[CCTransitionFade transitionWithDuration:0.5f scene: [MainMenu scene]]];
}
}
Если это не сработает, вам нужно опубликовать код, который запускает его, чтобы мы могли помочь вам больше