cocos2d-x 运行 来自子项的父项操作
cocos2d-x Run parent action from child
我尝试使用 cocos2d-x 库编写一个简单的游戏。
我创建了 class(名为 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");
}
在我的图层中,我有一个生成字母实例的函数 class:
{
CCLOG("new letter");
Letter* _letter = Letter::create();
addChild(_letter, 1);
}
当然在 init() 中我创建了一个字母:
this->createLetter();
现在,我想创建在触摸后 运行s 发送一些信息 (int) 到我的层、销毁 Sprite 和 运行 createLetter() 的动作;再次.
我该怎么做?我尝试了 create CC_CALLBACK_1 之类的东西,但我不知道我需要做什么。 :(
我不是C++大师,但我认为我有C++的基础知识,我是一名系统管理员,但我想尝试一些网络。
感谢您的帮助。
在 Latter class 中使用 this->getParent() 访问 Layer class,然后调用其中编写的任何方法,包括 createLetter() 或任何传递整数的新方法。
#
YourLayerClass* layerObject = (YourLayerClass*)this->getParent();
layerObject->sendData(3);
layerObject->createLetter();
this->removeFromParentAndCleanup(true);
我尝试使用 cocos2d-x 库编写一个简单的游戏。
我创建了 class(名为 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");
}
在我的图层中,我有一个生成字母实例的函数 class:
{
CCLOG("new letter");
Letter* _letter = Letter::create();
addChild(_letter, 1);
}
当然在 init() 中我创建了一个字母:
this->createLetter();
现在,我想创建在触摸后 运行s 发送一些信息 (int) 到我的层、销毁 Sprite 和 运行 createLetter() 的动作;再次.
我该怎么做?我尝试了 create CC_CALLBACK_1 之类的东西,但我不知道我需要做什么。 :(
我不是C++大师,但我认为我有C++的基础知识,我是一名系统管理员,但我想尝试一些网络。
感谢您的帮助。
在 Latter class 中使用 this->getParent() 访问 Layer class,然后调用其中编写的任何方法,包括 createLetter() 或任何传递整数的新方法。
#
YourLayerClass* layerObject = (YourLayerClass*)this->getParent();
layerObject->sendData(3);
layerObject->createLetter();
this->removeFromParentAndCleanup(true);