Frage

Ich verwende cocos2d, und ich möchte wissen, wie ich erkennen kann, was Szene der Benutzer zuletzt war, bevor er / sie auf einen Knopf gedrückt, um meine Settings Szene aus meiner pauseLayer Szene zu gehen. Ich muß wissen, weil es 2+ Möglichkeiten, um die Einstellungen Szene zugreifen, so dass ich einen speziellen Back-Button benötigen würde, was auch immer Szene zurück zu gehen der Benutzer zuletzt war. Außerdem könnte ich 1 Zurück-Taste haben, die eine Methode hat, um wieder auf die letzte Szene, keine spezifischen. Wie würde ich mich über das Tun dies?

War es hilfreich?

Lösung

Edit: Basierend auf Ihren Codebeispiel, schlage ich die folgende, die nicht genau arbeiten kann, wie geschrieben aufgrund meiner fehlenden Prüfgeräten. P

Fügen Sie zunächst eine Methode, um Ihre Einstellungen Klasse mit dem Namen + (id) nodeFromSource. (Bool) bPauseMenu

+(id)nodeFromSource:(bool)bPauseMenu
{
  if((self = [self node])
  {
    m_bPauseMenu = bPauseMenu;
  }
  return self;
}

In Bool m_bPauseMenu; in der Klassendefinition.

In der Funktion, die Sie für Ihre Back-Button in den Einstellungen zuweisen, implementieren Sie den folgenden Code ein:

//for example...
-(void)backButtonPressed:(id)sender
{
  if(m_bPauseMenu)
  {
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[pauseLayer node]]]; 
  }
  else
  {
    //trigger a replaceScene back to the other menu here 
    //(MyOtherLayer is the classname of your non-pause-menu layer that you came from...
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[MyOtherLayer node]]]; 
  }
}

Ändern Sie den Aufruf in pauseLayer - (void) Einstellungen: (id) sender an:

[[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[Settings nodeFromSource:true]]]; 

Und wo Ihr anderer Aufruf die Einstellungen zeigen Schicht ist, macht es zu sagen:

[[CCDirector sharedDirector] replaceScene:[CCTransitionFlipAngular transitionWithDuration:1.2f scene:[Settings nodeFromSource:false]]]; 

Der Grund, warum ich es nodeFromSource genannt ist, so dass Sie einen Tag die Bool mit irgendeiner Art von Referenz ersetzen können und lassen Sie Ihre Schichten Dinge über die Schichten wissen, dass sie kamen aus.

Ich hoffe, das funktioniert, wie sie ist. Ich habe ein paar Mal darüber gewesen und kann keinen offensichtlichen Fehler sehen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top