c++ - cocos2d-x 从子运行父操作

标签 c++ cocos2d-x cocos2d-android

我尝试使用 cocos2d-x 库编写一个简单的游戏。

我创建了类(名为 Letter)来生成带有随机字母作为标签的 Sprite ,并添加了一个监听器,因为我想捕捉触摸事件。 我有一个功能:

listener->onTouchEnded = [=](cocos2d::Touch* touch, cocos2d::Event* event)
{
    CCLOG("press");
    Letter::touchEvent(touch, event);
};

和 Action :

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();

现在,我想创建在触摸后运行的 Action ,将一些信息 (int) 发送到我的层,销毁 Sprite 并运行 createLetter();再次。

我该怎么做?我尝试创建 CC_CALLBACK_1 和一些东西,但我不知道我需要做什么。 :(

我不是 C++ 大师,但我认为我有 C++ 的基础知识,我是一名系统管理员,但我想尝试一些网络。

谢谢你的帮助。

最佳答案

在 Latter 类中使用 this->getParent() 来访问 Layer 类,然后调用其中编写的任何方法,包括 createLetter() 或任何传递整数的新方法。

#

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

关于c++ - cocos2d-x 从子运行父操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182840/

相关文章:

c++ - Cocos2dx 重启场景崩溃 CCTextureCache

c++ - VS2012 中的 strtof() 在哪里?

c++ - 指针传递指针不起作用

android - Cocos2d-x 3.13.1 : error with cocos run (Android)

android-logcat - 对于 Eclipse,CCLog 不起作用。 CCMessageBox 运行良好

java - Admob 没有来自广告服务器的填充 - 无法加载广告 : 3

android - 选中 CCMenuItemToggle cocos2d-x

android - COCOS2D android中如何将图层保存为图片

C++ 零规则 & 什么是 "user-declared"构造函数?

c++ - boost::asio::steady_timer 在 boost::dll 中不起作用