Ich habe einen Knopf, den ich eine Umschalttaste für den Klang eines Spiels sein muss. Ich verwende die MenuSpriteItem-Klasse.Wie man das Bild eines MenuSpriteItems ändert Cocos2d-x C++
auto menuSoundOn = Sprite::createWithSpriteFrameName("soundOn.png");
auto menuSoundOff = Sprite::createWithSpriteFrameName("soundOff.png");
auto menuSoundBtn = MenuItemSprite::create(menuSoundOn, menuSoundOff, CC_CALLBACK_1(LevelsLayer::shutSound, this));
menuSoundBtn->setTag(0);
_mainMenu = Menu::create(menuSoundBtn, nullptr);
this->addChild(_mainMenu);
//Then in my shutSound method
auto menuSoundBtn = _mainMenu->getChildByTag(0);
if (_ifSound){
_ifSound = false;
//Do some stuff to shut the sound
menuSoundBtn->setSelectedImage("noSound.png");
}
else{
_ifSound = true;
//Do some stuff to bring the sound back
menuSoundBtn->setSelectedImage("sound.png");
}
Das Problem ist, dass die Btn von seinem Elternteil mit getChildByTag (0) Methode bekommt ich einen Knoten nach der Dokumentation erhalten, aber setSelectedImage ist nicht Teil der Node-Klasse und es ist ein Fehler, mich so zu sagen, Was ist der richtige Weg, um von ihren Eltern auf MenuSpriteItems zuzugreifen und sie dann wie in diesem Fall zu manipulieren, indem Sie das normale Bild ändern?
Grüße.