我有一个由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,或者访问来自其他类的通知精灵来隐藏它,例如,不删除。 : - (
答案 0 :(得分:0)
显然,您的按钮是 Lobby 的孩子(可能不是直接的)。所以有两种基本方法:
getParent()->removeChildByTag(99)
第二种方法有点复杂但更强大。