2016-11-28 47 views
0

我有一個程序是由大廳和DrawingCanvas製成的。Cocos2d-x - 從其他課程訪問精靈

在大堂有一個按鈕 - 當你點擊它時,它會去DrawingCanvas。 如果您單擊它,也會出現一個精靈。在DrawingCanvas中有後退按鈕,可讓您前往大廳。當你點擊返回按鈕時,我想從大廳中消失精靈,所以你有沒有精靈的乾淨的大廳。在大堂我有:

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

我不知道如何訪問大堂類哪裏是我與其他類隱藏例如標籤99或訪問通知精靈的精靈,而不是刪除。 :-(

+0

在Lobby類中聲明通知精靈爲靜態,那麼可以通過DrawingCanvas類輕鬆訪問。 – Aryan

回答

0

顯然你按鈕是一個孩子大堂(也許不是直接的),所以有兩種基本方法的:

  1. 從按鈕到父母打電話getParent()->removeChildByTag(99)
  2. 當創建一個按鈕讓它回調一個函數,你想從大堂

第二種方法稍微複雜一些,但更加健壯。

+0

我的問題不是我不知道如何從大廳中刪除雪碧。我不知道如何從DrawingCanvas類中做到這一點。我不知道如何從** DrawingCanvas **的大廳訪問Sprite。我把問號放在第二個代碼中,我不知道該寫什麼。 – upgrade11

+0

我的不好。第二部分沒有注意到班級的名字。然後繪製一個親子關係樹,並通過一個共同父母連接它們。 – teivaz

+0

聽起來很複雜;-)任何線索如何做到這一點? – upgrade11