Por ejemplo:
- Menú Principal
- Opciones del Juego
- Créditos
- Pantalla del juego
- etc ...
- Captura de eventos (teclado, ratón, etc..)
- Dibujar (mostrar las opciones del menú, mostrar la pantalla del juego ...)
- Actualizar estados (cambiar la opcion del menu seleccionada, actualizar la posicion del jugador ...)
- Y otros como pueden ser, ¿que pasa cuando se inicializa el estado?, ¿que pasa cuando se finaliza?, ¿que pasa si se hace un pause?
Tendremos una clase llamada GameManager que controlará el paso de un estado a otro y sus eventos, y una clase abstracta llamada GameState, de la que heredarán todos los estados por los que pueda pasar nuestro juego.
Para que veais como funciona todo esto, vamos a hacer un pequeño ejemplo que luego nos servirá para nuestro juego.
Necesitamos crear inicialmente un fichero llamada juego.py y dos carpetas una llamada gamemanager y otra dentro de esta llamada states.
Dentro de la carpeta "states" crearemos un archivo llamado gamestate.py con el siguiente codigo:
class GameState(object):
def __init__(self,parent):
pass
def start(self):
pass
def cleanUp(self):
pass
def pause(self):
pass
def resume(self):
pass
def handleEvents(self, events, parent):
pass
def update(self):
pass
def draw(self):
pass