Class GameController
Gestiona la interacción entre las vistas y los servicios del juego:
- GameView: vista principal del juego
- OnDeadView: vista mostrada al perder
- InputView: vista para introducir el nombre del jugador
- RankingView: vista del ranking de puntuaciones
Controla el flujo del juego mediante métodos de evento (onSomethingPressed)
y un bucle principal startGameLoop() que actualiza el estado
del juego y renderiza las vistas correspondientes.
Esta clase se inicializa desde la clase Main y constituye el punto central de la lógica de presentación y control del juego.
-
Constructor Summary
ConstructorsConstructorDescriptionInicializa el controlador del juego creando las vistas y servicios necesarios. -
Method Summary
Modifier and TypeMethodDescriptionvoidManeja el evento de cambio de nombre en la vista de replayvoidManeja el evento de "Volver a jugar" en la vista de replayvoidonDifPick(Difficulty dif) voidProcesa la entrado de teclado durante la partida y acutaliza la direccion de la serpiente en consecuenciavoidManeja el momento en que el jugador pierde Oculta la vista del juego (gView) Actualiza la puntuacion maxima en los archivos locales (sService) Actualiza el ranking en vase a la nueva puntuacion alcanzada (rService) Renderiza la vista de ranking con los nuevos datos (rView) Muestra la vista de seleccion de replay (dView)voidGestiona el evento de pulsar Enter en la vista de selección de nombre.voidstart()Hace visible la interfaz de seleccion de nombrevoidtick()Ejecuta un ciclo de actualización del juego
-
Constructor Details
-
GameController
public GameController()Inicializa el controlador del juego creando las vistas y servicios necesarios.Se crean las siguientes vistas:
- GameView (vista del juego)
- OnDeadView (vista del fin de partida)
- InputView (vista de entrada de nombre)
- RankingView (vista de ranking)
Cada vista recibe una referencia al controlador para poder comunicarse con el.
-
-
Method Details
-
start
public void start()Hace visible la interfaz de seleccion de nombreEste metodo se llama desde la clase Main para comenzar la aplicacion y permitir que el jugador ingrese su nombre antes de iniciar la partida
-
tick
Ejecuta un ciclo de actualización del juegoEn cada tick:
- Mueve la serpiente
- Comprueba si la serpiente sigue viva
- Gestiona la ingesta de comida (crecimiento y puntuacion)
- Actualiza la dirección de movimiento
- Renderiza el nuevo estado del juego
- Throws:
DeadSnakeException- Si la serpiente muere durante el tick
-
onGamePressed
Procesa la entrado de teclado durante la partida y acutaliza la direccion de la serpiente en consecuenciaMapea las teclas WASD y las flechas de direccion a las direcciones correspondientes del juego
- Parameters:
e- El evento generado por la tecla pulsada
-
onGamesEnd
public void onGamesEnd()Maneja el momento en que el jugador pierde- Oculta la vista del juego (gView)
- Actualiza la puntuacion maxima en los archivos locales (sService)
- Actualiza el ranking en vase a la nueva puntuacion alcanzada (rService)
- Renderiza la vista de ranking con los nuevos datos (rView)
- Muestra la vista de seleccion de replay (dView)
-
onBNamePressed
public void onBNamePressed()Maneja el evento de cambio de nombre en la vista de replayRealiza las siguientes acciones:
- Oculta la vista de replay (dView)
- Oculta la vista de ranking (rView)
- Muestra la vista de seleccion de nombre (iView)
-
onBReplayPressed
public void onBReplayPressed()Maneja el evento de "Volver a jugar" en la vista de replayRealiza las siguientes acciones:
- Reinicia la puntuacion y el estado de la serpiente
- Oculta la vista de replay (dView) y la vista del ranking (rView)
- Renderiza el estado reiniciado del juego en gView
- Muestra la vista del juego
- Inicia el bucle principal del juego mediante
startGameLoop()
-
onNameKeyPressed
Gestiona el evento de pulsar Enter en la vista de selección de nombre.Valida el nombre introducido y, si es correcto, inicializa el juego:
- Normaliza el nombre (minúsculas y sin espacios)
- Inicia los servicios y la partida
- Muestra la vista del juego
- Inicia el bucle del juego
- Parameters:
e- evento de teclado que contiene la tecla pulsada
-
onDifPick
-