Métodos y propiedades de la escena de acceso de Cocos2d
Frecuentes
Visto 232 veces
0
Estoy tratando de incluir una función de pausa para mi juego. hasta ahora corriendo pause
al [CCDirector sharedDirector]
ha sido lo suficientemente bueno cuando se ejecuta a través de mi pauseGame
método (que incorpora un BOOL para saber si el juego está en pausa, etc.)
Sin embargo, noté que si vuelvo a la pantalla de inicio de mi dispositivo, el delegado de mi aplicación se ejecutará automáticamente pause
and resume
al sharedDirector
.
Idealmente, me gustaría acceder a mi escena/capa activa para poder ejecutar mi propio método de pausa.
¿Cómo puedo: 1) verificar si la escena actual es mi escena del juego 2) acceder a la propiedad de pausa de la escena del juego y ejecutar el método pauseGame en ella?
Cualquier ayuda apreciada. Gracias
2 Respuestas
0
La escena de la carrera es [CCDirector sharedDirector].runningScene
Si llamas [scene pauseSchedulerAndActions]; en la escena actual, esto no se reanudará al avanzar y retroceder en la pantalla de inicio.
Si necesita pausar TODOS los nodos en la jerarquía, aquí hay un método para extender CCNode
-(void)recursivePauseSchedulerAndActions {
[self pauseSchedulerAndActions];
CCNode *child;
CCARRAY_FOREACH(children_, child) {
[child recursivePauseSchedulerAndActions];
}
}
-(void)recursiveResumeSchedulerAndActions {
[self resumeSchedulerAndActions];
CCNode *child;
CCARRAY_FOREACH(children_, child) {
[child recursiveResumeSchedulerAndActions];
}
}
Respondido el 11 de junio de 12 a las 19:06
0
Yo uso un enfoque diferente para pausar un juego.
Normalmente tengo una escena de juego con capas de juego. Para pausar el juego, agrego una nueva capa (que cubre toda la pantalla) y cuando pausa el juego, muestro esta capa. De esta manera, puede dejar de tocar eventos para la capa del juego y restaurarlos al reanudar el juego (y eliminar la capa de pausa de la escena)
Respondido el 12 de junio de 12 a las 09:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas iphone ios cocos2d-iphone box2d-iphone or haz tu propia pregunta.
Hola, gracias por tu sugerencia. Un problema que tengo con la pausa o pauseSchedulerWithActions es que tengo sprites en la pantalla que implementan el toque. Entonces, mientras el juego está en pausa, aún puedes arrastrarlos. Es por eso que intenté usar mi propio método de pausa en el juego, que elimina los delegados táctiles y los vuelve a agregar. Es por eso que preferiría usar mi propio método dentro de la clase. ¿Algunas ideas? Gracias - user339946