¿Cómo puedo detectar lo que el usuario escena por última vez en?
-
10-10-2019 - |
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?
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 ...