Pregunta

Estoy usando cocos2d, y quiero saber cómo puedo detectar qué escena al usuario por última vez antes de que él / ella presionó un botón para ir a mi escena Ajustes de mi escena pauseLayer. Necesito saber porque hay 2+ maneras de acceder a la escena configuración, por lo que iba a necesitar un botón especial de nuevo a volver a cualquier escena al usuario por última vez en. Además, podría haber 1 botón de retroceso que tiene un método para volver a la última escena, no cualquier uno específico. ¿Cómo voy a ir haciendo esto?

¿Fue útil?

Solución

Edit: Sobre la base de su código de ejemplo, propongo lo siguiente, que puede no funcionar exactamente como está escrito debido a mi falta de equipo de prueba:. P

En primer lugar, añadir un método a su clase de configuraciones, denominados + (id) nodeFromSource:. (Bool) bPauseMenu

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

Añadir bool m_bPauseMenu; en la definición de clase.

En la función se asigna para su botón de vuelta en Configuración, implementar el código siguiente:

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

Cambiar la llamada en pauseLayer - configuración (void): (id) remitente a:

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

Y donde quiera que su otra llamada para mostrar los ajustes de la capa es, que hacer que decir:

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

La razón por la que llamé nodeFromSource es para que un día puede reemplazar el bool con algún tipo de referencia y permitir que sus capas a saber cosas acerca de las capas de los que proceden.

Espero que esto funcione como está. He estado más de un par de veces y no puede ver los errores obvios ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top