我尝试使用cocos2d-x库编写一个简单的游戏。
我创建了一个类(名为Letter),用随机字母作为标签生成sprite并添加一个监听器,因为我想捕获触摸事件。 我有一个功能:
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()中我创建了一个字母:
this->createLetter();
现在,我想创建一个在触摸后运行的动作,将一些信息(int)发送到我的Layer,销毁Sprite并运行createLetter();试。
我该怎么做?我尝试创建CC_CALLBACK_1,但我不知道自己需要做什么。 :(
我不是C ++大师,但我认为我是关于C ++的基本知识,我是系统管理员,但我想尝试网络。
感谢您的帮助。
答案 0 :(得分:1)
在Latter类中使用this-> getParent()来访问Layer类,然后调用任何写入的方法,包含createLetter()或任何传递整数的新方法。
YourLayerClass* layerObject = (YourLayerClass*)this->getParent();
layerObject->sendData(3);
layerObject->createLetter();
this->removeFromParentAndCleanup(true);