Juego android arkanoid

Tutorial videojuegos: Sprites animados

Comparte este artículo

Hoy hablaremos de los sprites animados en los videojuegos

 

Una gran parte de los sprites de los videojuegos son sprites animados, gracias a ellos daremos más dinamismo al juego. El uso es parecido al de los sprites normales que ya explicamos anteriormente. En esta sección explicaremos cosas que son válidas para cualquier libreria de desarrollo de videojuegos, pero tened en cuenta que los ejemplos están hechos para Android y Andengine.

La forma más sencilla, correcta y normal de poner sprites animados en nuestro videojuego es hacerlo con la animación en una misma imagen. Normalmente se hace una imagen con todos los frames que vaya a tener nuestro sprite. Para mayor sencillez se organiza en filas y en columnas, estando en cada fila los sprites de una misma animación. Por ejemplo:

Si os fijáis he creado dos animaciones, una para cuando el gato se mueve hacia abajo y otra para cuando se mueve hacia arriba, cada una esta en una fila, de esta forma a nivel visual el programador sabrá identificar la animación mucho más facilmente. 

Lo primero que hay que hacer es decirle al motor de Andengine que cargue el mapa con la textura de la animación

String path = 'grf/game/gato.png';
int rows = 2;
int cols = 2;

final TiledTextureRegion textureRegion = (TiledTextureRegion) BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(mBuildableBitmapTextureAtlas, activity.getAssets(), path,rows,cols);

try {
   mBuildableBitmapTextureAtlas.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 1, 0));
} catch (TextureAtlasBuilderException e) {e.printStackTrace();}
mBuildableBitmapTextureAtlas.load();

Para indicarle a la librería (Andengine) que tenemos un sprite animado tendremos que decirle las filas y las columnas que tiene, en este caso (2,2) y luego a la hora de animarlo tendremos que decirle que anime del frame 0 al 1 cuando vaya hacia abajo y del 2 al 3 cuando vaya hacia ariba. Yo uso Andengine, así que os pongo como se hace esto:

private void animate(ConstantsDirections direction){        
        int frameI=0,frameF=1;
        if (direction == ConstantsDirections.UP){            
           frameI=2,frameF=3;
        }else if (direction == ConstantsDirections.DOWN){
           frameI=0,frameF=1;
        }        
        animate(new long[]{200, 200}, frameI, frameF, true);
}    

Si os fijáis, hemos creado un método (dentro de nuestra clase KittenSprite) que sobreescribe al animate del Sprite y lo único que hace es decirle que si va hacia abjo use el frame 0 y el 1 y si va hacia arriba use el 2 y el 3. Ademas cada frame durará 200ms.

Bonus track para jugar

No puedo irme sin recomendaros un juego gratuito de Android perfecto para los amantes de lo retro, probadlo, de verdad, os encantará: Super Cauldron

Podréis crear niveles personalizados o jugar a los que vienen en el juego. Se agradece que votéis con 5 estrellas si os gusta

Os propongo que probéis un juego que he desarrollado con muchas de las cosas propuestas en estos tutoriales, el juego es el Arkandroid. La foto que ilustra este artículo es una captura del juego. En este juego usé la carga de recursos que hoy he explicado en el tutorial, las fases son números que indican el tipo de ladrillo y el movimiento que tiene si lo tuviera.

También te podría gustar...

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar