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");
}

В моем Layer у меня есть функция для порождения экземпляра класса Letter:

{
CCLOG("new letter");
Letter* _letter = Letter::create();

addChild(_letter, 1);
}

И, конечно, в init () я создаю одну букву:

this->createLetter();

Теперь я хочу создать действие, которое запускается после касания, чтобы отправить некоторую информацию (int) на мой слой, уничтожить Sprite и запустить createLetter (); снова.

Как я могу это сделать? Я пытался создать CC_CALLBACK_1 и что-то еще, но я понятия не имею, что мне нужно делать. 🙁

Я не мастер C ++, но я думаю, что у меня есть базовые знания о C ++, я системный администратор, но я хотел бы попробовать что-то чистое.

Спасибо за помощь.

0

Решение

Используйте this-> getParent () в классе Latter для доступа к классу Layer, а затем вызовите любой написанный там метод, в том числе createLetter () или любой новый метод для передачи целого числа

YourLayerClass* layerObject = (YourLayerClass*)this->getParent();
layerObject->sendData(3);
layerObject->createLetter();
this->removeFromParentAndCleanup(true);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]