Pregunta

¿Cómo hago esto?

En uno de mis uIViews (archivo NIB) Tengo ImageView y un botón que comienza la escena COCOS2D de la pantalla completa.Desde dentro de esa escena, quiero cerrarla y volver a UIVIE, para que el usuario pueda luego abrir la escena , pero de una imagen diferente en ImageView (y con contenido diferente en la escena).

Sin embargo, después de la primera vez, "CERRAR", la escena, toda la aplicación reacciona mucho más lento para todos los eventos táctiles.Funciona rápido mientras la escena esté encendida, pero cuando se cierra, entonces el rendimiento se cae.

¿Cómo debo cerrar correctamente la escena para que pueda reiniciarlo de nuevo?He navegado a través de muchas muestras de código y en todas partes es solo replaceWithScene:newScene.

¿Fue útil?

Solución

Adding a UIView to a viewController that houses a running openGL layer slows the app, as anyone who has tried to incorporate a UIScrollView into a Cocos2D game can tell you. You are closing the scene, but likely not stopping the CCDirector, which is now running its own scheduler aside the application's scheduler. As they fight for dominance over the CPU, OpenGL invariably wins as it needs more power more often.

Ensure you are completely shutting down cocos2D and OpenGL. Even if only calling [[CCDirector sharedDirector] pause].

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