import com.badlogic.gdx.Screen;
Puede ser que hayas tenido problemas con estas clases porque el proyecto SuperJumper tiene implementadas estas dos clases. Entonces cuando intentamos
usarlas en el ejemplo anterior, el entorno las coge de alli en vez de las clases
de la libreria libGDX. Tambien es posible que falle porque en el ejemplo de como
configurar un proyecto para usar libGDX que he hecho antes de creea una clase llamada
Game que es diferente de la que viene en com.badlogic.gdx.Game
Cuando se empieza a desarrollar una aplicacion libGDX y montamos el proyecto
para Escritorio/Android estos inician un ApplicationListener. El ApplicationListener
se pueden manejar mediante las clase Game y Screen.
com.badlogic.gdx.Game
Creamos una clase que deriva de Game que implementa ApplicationListener, esta será
la clase principal "Main" del proyecto libGDX.
El método create() está aquí y una vez es ejecutado se pasa a las pantallas donde se
pinta. Para cambiar de pantalla, lo que hay que hacer es llamar a game.setScreen(screen);
com.badlogic.gdx.Screen
Es un interface que funciona como si fuera un mini ApplicationListener. ¿Y que es un ApplicationListener?
Para saberlo hay que ver como esta estructurada una aplicacion libGDX y como se puede desplegar en diferentes
plataformas.
#####################################################################
La Aplicación "Application"
Este es el punto de entrada de cualquier proyecto libGDX . La Aplicación determina en que plataforma se va a desplegar
y el motor grafico que usará. El interface de la Aplicacion nos da los metodos para acceder a los Graficos, Audio e I/O así como al módulo de Loggin que funciona en todas las plataformas.
Para crear una aplicacion libGDX se ha de implementar el ApplicationListener primero.
La implementación del escuchador es la responsable de iniciar la Aplicación, actualizar el estado del juego, pintar las imagenes en pantalla, pausar el juego, grabar el estado y liberar recursos cuando finaliza la aplicación.
Tambien se gestionan aqui los eventos asociados al ciclo de vida de applicacion.
La Aplicación es responsable del ciclo de juego y el ApplicationListener es el sitio donde se implementa la lógica del juego.
#####################################################################public interface ApplicationListener
Un ApplicationListener es llamado cuando la Aplicación es creada, reanudada, pintando,pausada o destruida. Todos
los métodos son llamados en un hilo que tiene el contexto OpenGL. Por lo que se pueden manipular recursos gráficos tranquilamente.
El interface ApplicationListener sigue el standard de el ciclo de vida de una Aplicacion Android y en el Escritorio esta emulado.
Cuando se crea una clase que implementa el interface Screen se usa como un ApplicationListeners.
Tiene los métodos render(), pause(), resume(), and resize(), y adicionalmente hide() and show(). Estos son llamados cuando se llamarian en un ApplicationListener.
Cuando se llama a setScreen(screen), se llama al método hide() de la pantalla actual.La nueva
pantalla se convierte en la pantalla actual y se llama a su método show() entonces se llama a su método render() cada frame.
Sólo se pinta un pantalla a la vez.
El método Screen.dispose() nunca se llama automaticamentecuando el ApplicationListenerse llama al método dispose(),
Game llama a screen.hide()
Es conveniente mantener una sola instancia de cada pantalla para toda la vida del juego. Y no crear un nuevo objeto cada vez que se cambia de pantalla para evitar la recolección de basura.
Cada Screen deberia tener una referencia a Game para poder cambiar de una pantalla a otra.
No hay comentarios:
Publicar un comentario