Question

J'utilise cocos2d, et je veux savoir comment je peux détecte quelle scène l'utilisateur dernière sur avant qu'il / elle a appuyé sur un bouton pour aller à ma scène des paramètres de ma scène pauseLayer. Je dois savoir parce qu'il ya 2+ façons d'accéder à la scène des paramètres, donc je besoin d'un bouton de retour spécial pour revenir à ce que l'utilisateur scène était à la dernière. De plus, je pourrais avoir 1 bouton arrière qui a une méthode pour revenir à la dernière scène, pas un spécifique. Comment dois-je prendre?

Était-ce utile?

La solution

Edit: En fonction de votre exemple de code, ce que je propose, ce qui peut ne pas fonctionner exactement comme écrit en raison de mon manque d'équipement d'essai. P

Tout d'abord, ajoutez une méthode à votre classe appelée + Settings (id) nodeFromSource:. (Bool) bPauseMenu

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

Ajouter bool m_bPauseMenu; dans la définition de la classe.

Dans la fonction que vous attribuez à votre bouton de retour dans les paramètres, mettre en œuvre le code suivant:

//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]]]; 
  }
}

Modifier l'appel pauseLayer - paramètres (void): (id) expéditeur à:

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

Et où votre autre appel pour afficher les paramètres des calques est, faire dire:

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

La raison pour laquelle je l'ai appelé nodeFromSource est si un jour vous pouvez remplacer le bool avec une sorte de référence et permettre à vos couches de connaître des choses sur les couches ils viennent.

J'espère que cela fonctionne en l'état. Je suis plus à quelques reprises et ne peut pas voir des erreurs évidentes ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top