проблема с перекрытием cocos2d CCMenuItemImage - PullRequest
0 голосов
/ 02 июля 2010

free4machine Member PM этого пользователя

Привет,

Я хочу сделать пример анимации:

есть кнопка внизу экрана, небольшое менюпоявится при нажатии этой кнопки.И в нижней части маленького меню есть значок, маленькое меню исчезнет при нажатии этого значка.

Кнопка, маленькое меню, значок - все это экземпляр CCMenuItemImage.

Вопрос: маленькое меню не исчезает при нажатии иконки.кажется, что значок не отвечает за сенсорные события.

Будем благодарны за любые предложения или помощь

Извините за мой плохой английский.

вот код:

CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ];
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target:     self selector:@selector(showSideMenu:)];

CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ];
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2.     png" target:self selector:@selector(hideSideMenu:)];

[ sideMenu addChild: backbutton ];

CCMenu *menu  =  [ CCMenu menuWithItems: bg,button, sideMenu, nil ];

[ self addChild: menu];

Что сделали showSideMenu и hideSideMenu, так это заставили sideMenu появляться и исчезать с помощью runAction.

спасибо.

1 Ответ

1 голос
/ 08 июля 2010

Исходя из кода, единственная проблема, которую я вижу, состоит в том, что backButton не добавляется как дочерний элемент меню. Только bg, button и sideMenu находятся в списке аргументов. Добавляя его как дочерний элемент bg, он не будет запускать свой собственный селектор, кроме bg. А поскольку bg не имеет определенного определения, ничего не происходит. Самое простое решение - просто добавить кнопку в список. Ваш код будет выглядеть так:

CCMenuItemImage *bg = [CCMenuItemImage itemFromNormalImage:@"b1.png" selectedImage:@"b2.png" ];
CCMenuItemImage *button = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button2.png" target:     self selector:@selector(showSideMenu:)];

CCMenuItemImage *sideMenu = [CCMenuItemImage itemFromNormalImage:@"s1.png" selectedImage:@"s2.png" ];
CCMenuItemImage *backbutton = [CCMenuItemImage itemFromNormalImage:@"backbutton.png" selectedImage:@"backbutton2.     png" target:self selector:@selector(hideSideMenu:)];

CCMenu *menu  =  [ CCMenu menuWithItems: bg,button, sideMenu, backbutton, nil ];

[ self addChild: menu];

Если вы хотите, чтобы каждая из кнопок была расположена относительно меню, просто установите их свойство position.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...