Anuncios

Bienvenidos sean a este post, en el post de hoy agregaremos tres nuevas clases/interfaces para establecer la comunicacion entre las clases especificas del juego.

Anuncios

Entre las cosas que necesitaremos sera que nuestra clase GameState sea capaz de generar un nuevo nivel via la clase GameEngine y esta a su vez necesita hacer multiples transmisiones (broadcasts) a multiples clases relacionadas con las entradas, es decir cada vez que el jugador interactua con la pantalla y a su vez deben registrarse como observadores tal como hicimos con el juego anterior, por esta razon vamos a necesitar las tres interfaces que crearemos a continuacion.

Anuncios

Comencemos creando la primera clase con las siguientes caracteristitcas:

  • Nombre: ControladorEngine
  • Tipo: Interface
Anuncios

Una vez creada la clase modifiquemos el codigo generado por el siguiente:

package org.example.pepeaventura;

interface ControladorEngine {
    void iniciaNuevoNivel();
}
Anuncios

En este caso solo tenemos un metodo que lo usaremos para que GameState genere un nuevo nivel cada vez que sea llamado, pasemos a la siguiente clase:

  • Nombre: GameEngineBroadcaster
  • Tipo: Interface
Anuncios

Una vez creada la nueva clase modifiquemosla con el siguiente codigo:

package org.example.pepeaventura;

interface GameEngineBroadcaster {
    void addObservador(ObservadorEntrada o);
}
Anuncios

Este metodo nos permitira agregar al jugador y a la interfaz como escuchadores (listeners) de la clase GameEngine, pasemos a la siguiente clase:

  • Nombre: ObservadorEntrada
  • Tipo: Interface
Anuncios

Nuevamente, una vez creada la clase modifiquemos el codigo de la siguiente manera:

package org.example.pepeaventura;

import android.graphics.Rect;
import android.view.MotionEvent;

import java.util.ArrayList;

public interface ObservadorEntrada {
    void handleInput(MotionEvent evento, 
                     GameState gs, 
                     ArrayList<Rect> botones);
}
Anuncios

Este tendra un metodo que permitira que los objetos de tipo ObservadorEntrada puedan ser llamados por el GameEngine y asi poder manejarlos, estos como siempre nos serviran como diagramas y en los proximos posts iremos completandolos.

Anuncios

En resumen, hoy hemos establecido las interfaces que nos serviran de bases para crear a todos los elementos necesarios para poder manejar a nuestro GameEngine ya sea desde crear el nuevo nivel hasta el manejo de los objetos en pantalla, como siempre les pido un poco de paciencia porque en los proximos dias se va a poner picante, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Donación

Es para mantenimento del sitio, gracias!

$1.00