lunes, 21 de noviembre de 2011

Como usar las Clases Screen y Game de libGDX

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Screen;

Para crear una  aplicación libgdx siempre hay que implementar un interfaz ApplicationListener. Para ello se pueden usar las clases Game y Screen.

La clase Game (Juego)
Creamos una clase que extienda Game que a su vez implementa ApplicationListener. Esta clase se podría decir que es la clase "Main". El punto de arranque del proyecto  libGDX. El método Create() esta ahí y después de llamar a  Create() el siguiente paso es moverse a una pantalla donde pintar. Para ello hay que hacer game.setScreen(screen);

La clase  Screen (Pantalla)
Nos creamos las clases que implementan Screen y las usamos como mini-ApllicationListeners. Cada una de ellas tiene su render(), pause(), resume(), and resize(), que serán llamados cuando se llamaría a los métodos de  ApplicationListener.Además tiene otros dos métodos hide()  y show().

¿Como funciona esto?

Cuando se llama a setScreen(screen) la pantalla que esté en uso llama a  hide(), la nueva pantalla se convierte en la pantalla actual y se llama a su método show(). Apartir de esto en cada frame se llama al método render de la nueva pantalla actual.
El método dispose() de las pantallas nunca es llamado automaticamente cuando se llama al método  dispose() del  ApplicationListener sino que se llama a  screen.hide()

Consejos:

Es mejor tener una sola instancia de cada pantalla para todo el ciclo de vida del juego. Así no se crean nuevos objetos Screen en cada cambio de estado y nos ahorramos llamadas al recolector de basura.

Cada pantalla debería tener una referencia a la instancia de  Game para poder cambiar de una pantalla a otra.


No hay comentarios:

Publicar un comentario