Я пытаюсь написать простую игру, используя библиотеку cocos2d-x.cocos2d-x Запуск родительского действия от ребенка
Я создал класс (с именем Letter), чтобы создать спрайт со случайной буквой в качестве метки и добавить слушателя, потому что я хочу поймать события касания. У меня есть функция:
listener->onTouchEnded = [=](cocos2d::Touch* touch, cocos2d::Event* event)
{
CCLOG("press");
Letter::touchEvent(touch, event);
};
и действие:
void Letter::touchEvent(cocos2d::Touch* touch, cocos2d::Event* event)
{
this->removeFromParentAndCleanup(true);
CCLOG("touched MySprite");
}
В моем уровне у меня есть функция на нерест экземпляр класса Letter:
{
CCLOG("new letter");
Letter* _letter = Letter::create();
addChild(_letter, 1);
}
И, конечно, в INIT() i создать одну букву:
this->createLetter();
Теперь я хочу создать действие, которое запускается после нажатия, чтобы отправить некоторую информацию (int) на мой слой, уничтожить Sprite и запустить createLetter(); еще раз.
Как это сделать? Я попытался создать CC_CALLBACK_1 и кое-что, но у меня нет идеи, что мне нужно сделать. :(
Я не C++ мастер, но я думаю, что я базовые знания о C++, я системный администратор, но я хотел бы попробовать что-то сеть.
Спасибо за помощь.
Спасибо лет u, он работает. Теперь мне нужно исправить проблему с ошибкой сегментации после удаления моего спрайта. :) – esio
Не могли бы вы подробнее рассказать о своей новой проблеме? –
Да, конечно. Я изменил свой код, как вы предлагаете. Это работает впервые, но второй или третий раз, когда я нажимаю, у меня есть фага сегментации. Я еще не запускал gdb для отладки этой проблемы. Если я не удаляю объект, все будет работать, но у меня много спрайтов. Я тестирую этот код на Linux. Я не тестировал Android. Благодарим вас за внимание и готовность помочь. Мило. – esio