Métodos de Clases en JavaScript para Juegos Interactivos

Clase 66 de 84Curso Gratis de Programación Básica

Resumen

¿Cómo pintamos a los enemigos en nuestro juego?

Integrar enemigos en tu juego aporta no sólo emoción, sino también un mayor desafío y dinamismo. En esta clase, aprenderemos a modificar nuestra implementación actual para lograr que nuestros enemigos se pinten correctamente en el mapa. Esto implica comprender las funciones de nuestra clase y cómo podemos utilizarlas para optimizar el código.

¿Cómo modificamos nuestra clase Mokepon?

Inicialmente, nuestra clase Mokepon tenía atributos básicos como X, Y, ancho, y alto. Vamos a necesitar cambiar el enfoque para que los atributos X e Y sean argumentos que se pasan al constructor, permitiendo una mayor flexibilidad al posicionar nuestros personajes en el mapa.

class Mokepon {
    constructor(fotoMapa, x = 10, y = 10) {
        this.fotoMapa = fotoMapa;
        this.x = x;
        this.y = y;
        this.ancho = 40; // Actualizado a 40 para menor tamaño
        this.alto = 40;  // Actualizado a 40 para menor tamaño
        // Otros atributos relevantes...
    }
    // Métodos adicionales...
}

Utilizamos la imagen del avatar para cada Mokepon usando un directorio de recursos y aplicamos un parámetro por defecto para X e Y.

¿Cómo creamos un array de enemigos y los pintamos?

Para representar enemigos en nuestro mapa, crearemos un array y añadiremos los Mokepones con posiciones específicas para diferenciarlos en el plano.

const enemigos = [];
enemigos.push(new Mokepon('assets/hipodoge.png', 80, 120));
enemigos.push(new Mokepon('assets/capipepo.png', 150, 95));
enemigos.push(new Mokepon('assets/ratigueya.png', 200, 190));

Luego, definimos un método pintarMokepon dentro de nuestra clase para encargarse de la representación gráfica de cada enemigo en pantalla.

pintarMokepon() {
    lienzo.drawImage(
        this.fotoMapa,
        this.x,
        this.y,
        this.ancho,
        this.alto
    );
}

¿Cómo utilizamos los métodos de las clases para pintar los Mokepones?

La implementación dentro de las clases nos permite reutilizar código y mantenerlo más limpio. Al implementar métodos como pintarMokepon, simplificamos la representación visual de objetos en el mapa. Reformulamos la función que manipulaba el Canvas para integrar estas capacidades.

function pintarCanvas() {
    // Pintamos el Mokepon del jugador
    mascotaJugadorObjeto.pintarMokepon();

    // Pintamos los enemigos
    enemigos.forEach(enemigo => enemigo.pintarMokepon());
}

Esta metodología garantiza que todos los elementos se presentan adecuadamente en diferentes posiciones. El método interno pintarMokepon utiliza this para acceder a las propiedades del objeto respectivo.

Sorprendentemente, ahora cada Mokepon se despliega correctamente en el mapa y podemos abordar el reto de enfrentar a nuestro personaje contra estos enemigos en las siguientes lecciones.

Al dominar estas técnicas, mejoramos nuestra aplicación de JavaScript para crear dinámicas más ricas y envolventes en juegos interactivos. Sigue adelante y no te detengas, ¡estás a un paso más cerca de convertirte en un desarrollador maestro!