Anuncios

Bienvenidos sean a este post, en el post de hoy continuaremos las clases que nos faltan para las especificaciones de los objetos de nuestro juego.

Anuncios

Las clases se crearan con las mismas caracteristicas (y casi el mismo codigo) donde lo unico que va a variar es el nombre de la misma pero las siguientes caracteristicas se mantendran igual:

  • Tipo: Class
  • Paquete: especoj
Anuncios

El nombre de cada clase ira antes del codigo, con esto aclarado vamos a la primera clase que vamos a crear:

Anuncios

EspecLosas

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecLosas extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "ladrillo";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecLosas(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Como pueden ver el codigo es similar a lo visto en el post anterior, pero en este caso tenemos una particularidad la cual es la velocidad ya que al ser un elemento inerte sera del valor 0, el resto es de forma similar a lo hablado anteriormente inclusive su constructor pasemos a la siguiente clase.

Anuncios

EspecCarrito

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecCarrito extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "carrito";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(2f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecCarrito(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Esta clase va a ser muy similar a la anterior pero solamente va a variar el bitmap y el tamaño pero despues el resto siguen iguales, pasemos a la siguiente clase.

Anuncios

EspecCarbon

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecCarbon extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "carbon";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecCarbon(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Idem a la primer clase donde varia unicamente el nombre del bitmap pasemos a la siguiente clase.

Anuncios

EspecConcreto

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecConcreto extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "concreto";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecConcreto(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

De vuelta una clase muy similar a la anterior pero varia el nombre del Bitmap pasemos a la siguiente clase.

Anuncios

EspecArbolMuerto

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecArbolMuerto extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "arbol_muerto";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(2f,4f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueDecorativo"
    };

    public EspecArbolMuerto(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Al igual que en el caso del Carrito a parte de variar el bitmap tambien modificaremos el tamaño del mismo y tambien tenemos una modificacion entre los componentes y para este caso tenemos uno que actualiza el bloque decorativo pero de esto hablaremos mas adelante , pasemos a la siguiente clase.

Anuncios

EspecCesped

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecCesped extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "cesped";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecCesped(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Revisen el codigo y veran que es lo mismo que hasta ahora, pasemos a la siguiente clase.

Anuncios

EspecPosteLuz

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecPosteLuz extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "poste_luz";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,4f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueDecorativo"
    };

    public EspecPosteLuz(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Este caso es muy similar a cuando creamos la clase para el Arbol Muerto pero como estas seran decorativas la actualizacion se hace con otro componente, tambien varia el tamaño y el bitmap, pasemos a la siguiente clase.

Anuncios

EspecPisoQuemado

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecPisoQuemado extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "quemado";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecPisoQuemado(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Este es otro de los objetos que usaremos como plataforma para poder caminar sobre los mismos y no sera decorativo, pasemos a la siguiente clase.

Anuncios

EspecPisoNevado

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecPisoNevado extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "nieve";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecPisoNevado(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Seguimos con el mismo codigo y como siempre varia el bitmap, pasemos a la siguiente clase.

Anuncios

EspecArbolNevado

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecArbolNevado extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "arbol_nevado";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(3f,6f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueDecorativo"
    };

    public EspecArbolNevado(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Este es otro objeto decorativo, por ende variara el bitmap, el tamaño y usara los componentes del arbol muerto y/o poste de luz, pasemos a la siguiente clase.

Anuncios

EspecEstalactita

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecEstalactita extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "estalactita";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(2f,4f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueDecorativo"
    };

    public EspecEstalactita(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Este es otro objeto decorativo con un codigo similar a los anteriores, pasemos a la siguiente clase.

Anuncios

EspecEstalagmita

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecEstalagmita extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "estalagmita";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(2f,4f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueDecorativo"
    };

    public EspecEstalagmita(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Otro de los objetos que llamaremos decorativo, pasemos a la siguiente clase.

Anuncios

EspecPilaPiedras

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecPilaPiedras extends EspecJuegoObjeto {
    private static final String tag = "objeto inerte";
    private static final String bitmapNombre = "pila_piedras";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(2f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecPilaPiedras(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Este sera el ultimo de nuestros objetos inertes, es decir que no tendran un movimiento o una animacion y pueden ser usados tanto para nuestras plataformas donde andara el valiente de Pepe o pueden ser meramente decorativas, pasemos a algunas clases distintas.

Anuncios

EspecColeccionable

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecColeccionable extends EspecJuegoObjeto {
    private static final String tag = "colecionable";
    private static final String bitmapNombre = "moneda";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecColeccionable(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Si observan el codigo veran que es muy similar a cuando vimos los objetos inertes pero en este caso variamos el tag, ya no es inerte sino coleccionable, obviamente tambien variamos el bitmap pero lo diferente con respecto a los anteriores es que al momento de detectar la colision le haremos tomar unas acciones diferentes a las clases anteriores, pasemos a la siguiente clase.

Anuncios

EspecFuego

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecFuego extends EspecJuegoObjeto {
    private static final String tag = "muerte";
    private static final String bitmapNombre = "fuego";
    private static final int animacionFrames = 3;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(1f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficosAnimados",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecFuego(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Esta clase sera una de las encargadas de “matar” a nuestro personaje, en este caso volveremos a modificar el tag para identificar esta accion del objeto, tambien cambiamos el bitmap (como siempre), la otra modificacion es en animacionFrames y por ultimo utilizamos el componente de animacion de nuestro jugador porque este no sera una sola imagen sino varias para realizar el efecto de fuego, el resto es igual a las otras clases, pasemos a al siguiente clase.

Anuncios

EspecMuerteInvisible

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecMuerteInvisible extends EspecJuegoObjeto {
    private static final String tag = "muerte";
    private static final String bitmapNombre = "muerte_visible";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(10f,10f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecMuerteInvisible(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Al igual que la clase anterior tambien la usaremos para indicar la muerte de nuestro personaje cada vez que caigamos de algunas de las plataformas, por ahora sera algo visible pero mas adelante veremos como volverlo invisible, pasemos a la siguiente clase.

Anuncios

EspecPlataformaMovible

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecPlataformaMovible extends EspecJuegoObjeto {
    private static final String tag = "plataforma movible";
    private static final String bitmapNombre = "plataforma";
    private static final int animacionFrames = 1;
    private static final float velocidad = 3f;
    private static final PointF tamano = new PointF(2f,1f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueMovible"
    };

    public EspecPlataformaMovible(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Este objeto es muy similar a los anteriores pero no se trata de un objeto inerte que usaremos como plataforma o para aniquilar a nuestro personaje sino que sera la parte de plataforma que se desplazara en pantalla ya se en forma vertical como horizontal pero de eso hablaremos mas adelante, pasemos a la ultima clase.

Anuncios

EspecObjetivo

package org.example.pepeaventura.especoj;

import android.graphics.PointF;

public class EspecObjetivo extends EspecJuegoObjeto {
    private static final String tag = "objeto objetivo";
    private static final String bitmapNombre = "objetivo";
    private static final int animacionFrames = 1;
    private static final float velocidad = 0f;
    private static final PointF tamano = new PointF(3f,3f);
    private static final String[] componentes = new String[] {
            "ComponenteGraficoBloqueInanimado",
            "ComponenteActualizaBloqueInanimado"
    };

    public EspecObjetivo(){
        super(tag,bitmapNombre,velocidad,
                tamano,componentes,animacionFrames);
    }
}
Anuncios

Este sera el objeto que se encargue de sacarnos del nivel, es decir la salida del mismo, como pueden ver es muy similar a los objetos inertes pero varia el tag para al igual que el coleccionable cuando usemos el detector de colisiones le aplicaremos los metodos correspondientes para poder salir del nivel pero de esto hablaremos mas adelante.

Anuncios

Con esto ya tenemos a nuestras clases encargadas de los componentes de cada uno de los objetos que seran parte de nuestro juego y niveles, si bien al igual que en el proyecto anterior estos serviran de referencia y seran los encargados de decirle a nuestro Game Engine con cual debe trabajar para cada objeto, antes de finalizar deben haber un listado de clases en el paquete como se ve en la siguiente imagen

Anuncios
Anuncios

En resumen, hoy hemos completado las clases de especificaciones faltantes, hemos visto como hemos dividido en las partes que seran inertes ya sea para servirnos de plataformas, de decoracion o de salida, tambien hemos visto algunos que seran los encargados de herir a nuestro heroe, 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