cocos2d CCMenuItemImage в дочернем целевом уровне: self SIGABRT - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть дочерний слой, который я добавляю в сцену, которая содержит меню, оно инициализируется следующим образом:

- (id) init
{
if((self=[super init]))
{
    CGSize winSize = [[CCDirector sharedDirector] winSize];

    CCMenuItemImage* attackButton = [CCMenuItemImage
                                    itemFromNormalImage:@"btnAttack.png" 
                                    selectedImage:@"btnAttack.png"
                                    target: self
                                    selector:@selector(attack)];

    CCMenu* menu = [CCMenu menuWithItems:attackButton,  nil];
    menu.position = ccp(winSize.width-80,winSize.height-140);
    [menu alignItemsHorizontally];
    [self addChild:menu];   

}
return self;
}

Это происходит с ошибкой SIGABRT, если я не изменил цель: на 'ноль.Почему это не работает и как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 09 мая 2014

То же самое происходит со мной, когда я создаю ccmenuitemimage.поэтому вам нужно проверить ваш метод, который вы вызываете в качестве селектора.

0 голосов
/ 10 февраля 2012

Это должно произойти сбой, если у вас нет атаки: определено в вашем классе.Вам действительно нужен параметр для атаки?

Простые шаги для проверки вашей проблемы:

1) удалите параметр, измените код на:

target: self
selector:@selector(attack)];

2) добавьте метод атаки и проверьтевывод консоли:

-(void)attack
{
   NSLog(@"test");
}

Чтобы лучше понять, в чем проблема, покажите точки останова на панели навигатора, нажмите кнопку «плюс» и добавьте точку останова исключения ... так, когда приложение аварийно завершает работу (если все еще происходит)Вы можете увидеть стек вызовов и посмотреть, что не так

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