Cocos2d-x - 从其他类

时间:2016-11-28 22:04:10

标签: c++ cocos2d-x

我有一个由Lobby和DrawingCanvas制作的程序。

在大厅中有一个按钮 - 当你点击它时,它会转到DrawingCanvas。 如果单击它也会出现一个精灵。在DrawingCanvas中有一个Back按钮,可以让你去Lobby。当你点击“返回”按钮时,我想从大厅中消除精灵,这样你就可以拥有干净的大厅而不用精灵。在大厅我有:

Size visibleSize = Director::getInstance() -> getVisibleSize();
cocos2d::Sprite* notification = cocos2d::Sprite::create("NotificationM.png");
notification -> setAnchorPoint(Vec2(0, 0));
notification -> setScale(1.05);
notification -> setPosition(Vec2(150, visibleSize.height));
this -> addChild(notification);
notification -> setTag(99);

这里的一切都很好。问题出在DrawingCanvas类。

void DrawingCanvas::bckPressed(Ref *pSender, ui::Widget::TouchEventType eEventType)
{
if (eEventType == ui::Widget::TouchEventType::ENDED)
    {
        SceneManager::getInstance() -> returnToLobby(); 

        ? -> removeChildByTag(99);
    }
}

我不知道如何访问Lobby类,其中我的精灵是标签99,或者访问来自其他类的通知精灵来隐藏它,例如,不删除。 : - (

1 个答案:

答案 0 :(得分:0)

显然,您的按钮 Lobby 的孩子(可能不是直接的)。所以有两种基本方法:

  1. 从按钮转到父母并致电getParent()->removeChildByTag(99)
  2. 创建按钮时,请使用要从 Lobby
  3. 调用的函数为其提供回调

    第二种方法有点复杂但更强大。