La clase Game es el alma de un juego en Slick2d, nos da los tres métodos más importantes en la lógica de un juego: Init, Update y Render.
Estados de un juego en Slick2D |
Init se ejecuta solo una vez al inicio del juego, y por lo tanto sirve para cargar los elementos que se van a necesitar durante el desarrollo del mismo, imágenes, juegos, iniciar estados, etc.
Update y Render están en constante sintonía durante el resto de juego, en update se debe implementar la lógica del juego y en render dibujar los elementos del juego en la pantalla(a través de Graphics).
En el ejemplo Hola Mundo que hicimos anteriormente, usamos la clase BasicGame que implementa ya la Clase Game. BasicGame nos ahorra el trabajo tedioso de detectar el teclado y el mouse implementando también la clase InputListener, por lo que lo normal es que usemos directamente la clase BasicGame en lugar de Game para nuestros juegos.
Si la clase Game es la estructura del juego, y la clase BasicGame es la estructura del juego más los controles de teclado y mouse, la clase GameContainer es el ambiente en donde vive el juego. ésta clase coordina el juego con el input(mouse y teclado) y output(gráficos y sonido)
En el desarrollo de un juego normal, GameContainer nos va servir para saber las restricciones de tamaño y FPS que tiene nuestro programa, así como para pausar, detener o reanudar el juego.
Para dibujar en pantalla lo hacemos a través de un objeto de clase Graphics, ésta clase no permite dibujar rápidamente figuras geométricas que extiendan de la clase Shape, la cual veremos más adelante.
Por último y no menos importante, no debemos olvidar la clase AppGameContainer, que encapsula nuestro juego en una aplicación de sistema.