Hoe overgang tussen lagen in cocos2d?

Ik heb een hiërarchie van een menuscène zoals:

Scene
   |
Background Layer
   |           |
Main Menu    Settings Menu

Ik wil overschakelen van het hoofdmenu naar het instellingenmenu zonder de achtergrondlaag te verplaatsen. Er is veel documentatie over hoe overgang tussen scènes mogelijk is, maar niets dat ik tussen de lagen kan vinden. Zowel het hoofdmenu als het menu Instellingenmenu hebben een volledig scherm met transparante achtergronden. Ik wil er gewoon tussenin schuiven zonder de achtergrond te verplaatsen.

Eenvoudig probleem, maar ik ben helemaal gestoord na het zoeken op het web voor meer dan een uur.

3
Waarom zou je dit niet doen met scènes zoals het bedoeld was? Het heeft geen zin om dingen ingewikkelder dan nodig te maken. Misschien wilt u ook naar push- en popscènes kijken als de aanhoudende status (zonder aanvullende code) belangrijk voor u is.
toegevoegd de auteur LearnCocos2D, de bron
De achtergrond wordt niet verplaatst als u geen overgangen gebruikt. Als u lagen wilt overzetten, laadt u eenvoudig beide lagen en voert u acties zoals CCMoveTo tegelijkertijd uit op elke laag om ze in en uit te verplaatsen.
toegevoegd de auteur LearnCocos2D, de bron
Van wat ik heb gezien, kan ik geen blijvende achtergrond hebben. Ik heb het over de achtergrond die blijft zitten, geen animatie (zelfs als de nieuwe scène dezelfde achtergrond heeft, ik wil niet dat deze beweegt).
toegevoegd de auteur rnystrom, de bron

1 antwoord

Heb een knooppunt waarvan het hoofdmenu een kind is. Voeg Instellingenmenu toe aan dit knooppunt met een verschuiving van + schermbreedte of -schermbreedte afhankelijk van de gewenste richting. Maak vervolgens een reeks van een CCMoveTo waar u uw knooppunt naar de andere kant van het scherm verplaatst (of van het scherm als u achteruit gaat) gevolgd door een CCCallFunc die een functie oproept verwijder de laag Hoofdmenu van het hoofdknooppunt. Dit werkt net zo goed voor verticale overgangen (gebruik gewoon schermhoogte en verplaats het knooppunt verticaal).

2
toegevoegd
Ik speel hiermee als ik thuiskom, het ziet er veelbelovend uit. Als u "node" zegt, wilt u dan gewoon een CCNode of het knooppunt van een CCLayer gebruiken?
toegevoegd de auteur rnystrom, de bron
Je hebt het vastgespijkerd. Stel een aangepast menubeheer in dat menu's in een knoop plaatst en animeert ze in en uit de scène zoals ik dat wilde. Bedankt!
toegevoegd de auteur rnystrom, de bron
Gebruik een CCNode ( CCNode * container = [CCNode node]; hoewel u waarschijnlijk een aanwijzer in uw kop plaatst in plaats van een nieuwe).
toegevoegd de auteur jrtc27, de bron