TEMA5: Sprites

'''Sprites... ¿Que es un sprite?'''

Son imágenes como pueden ser por ejemplo personajes, objetos del escenario, etc...

Cada sprite es de 32x32.

Para visualizar por ejemplo 4 movimientos de un sprite, el sprite sería de 32x128 (32 x (32+32+32+32)).

Para tener un sprite mas grande, debería de ser de 64x64 o 128x128, etc… y para animarlo, sería múltiplo de su ancho siempre.

No se si ha quedado muy claro, pues esto se entiende cuando empiezas a programar con ellos.



Empezamos con el programa.

Creamos una nueva carpeta, con su carpeta de gráficos llamada gfx dentro del source y los dos archivos de Pagfx que utilizamos anteriormente... y empezamos.

Crearemos un sprite de 32x32.

Por ejemplo, un cuadrado amarrillo de 32x32. y otro sprite con 4 frames, por ejemplo, la palabra HOLA, una letra en cada frame, en PNG y 256 colores.

LLevaremos los sprites a la carpeta gfx y abriremos el pagfx.ini y ponemos:

por ejemplo, si yo pongo un fondo con varios colores, y una letra amarilla, para que el vacio no se vea se poner de fondo ese color
 * 1) TranspColor Magenta // el color trasparente seria el margenta, se puede poner cualquiera (en ingles)

cuadrado.PNG //nombre del sprite 256colors //indica que esta en 256 colores master //nombre de la paleta(mas adelante lo aprenderemos) letras.PNG 256colors master //lo mismo para las letras
 * 1) Sprites :


 * 1) Backgrounds :

Este seria el codigo:


 * 1) TranspColor Magenta

cuadrado.PNG 256colors sprites letras.PNG 256colors sprites
 * 1) Sprites :


 * 1) Backgrounds :

Ya tenemos nuestros sprites listos. Y ahora el código:

// Includes
 * 1) include  // Include de las PA_Lib
 * 2) include "gfx/all_gfx.c"
 * 3) include "gfx/all_gfx.h"

// Funcion: main int main(int argc, char ** argv) { PA_Init; // Iniciamos las PA_Lib PA_InitVBL; // Iniciamos VBL

//cargamos la paleta PA_LoadSpritePal(0, // pantalla 0, // numero de paleta (puede aver varias)

(void*)sprites_Pal); // nombre de la paleta (lo que mencione antes) //mostramos el cuadrado PA_CreateSprite(0, // pantalla 0, /* numero de sprite ( de 0 a 127 sprites que soporta ) el 0 estaria al frente de todos, el 1, encima de todos menos del 0, etc... */

(void*)cuadrado_Sprite, // nombre del sprite OBJ_SIZE_32X32, // tamaño 1, // modo (1= 256 colores) 0, // numero de paleta 50, 50); // posicion X, Y

//mostramos las letras PA_CreateSprite(0, // pantalla

1, // numero de sprite (void*)letras_Sprite, // nombre del sprite OBJ_SIZE_32X32, // tamaño (el tamaño de cada frame, aunque en total tenga 32 x 128 1, // modo de 256 colores 0, // numero de paleta

90, 50); // posicion X, Y //animamos el segundo sprite

PA_StartSpriteAnim( 0, // pantalla 1, // numero de sprite 0, // el primer frame que animamos es 0 3, // el ultimo es 3 ya que la animacion tiene 4 frames y el primero seria el 0 1); // velocidad, 1 frames por segundo, por ejemplo //Bucle while (1) { PA_WaitForVBL; } return 0; } //Fin de main

Finalmente así quedaría, uno en animación y el otro sin animar.

Y ya terminamos el ejercicio.

Imagen del ejemplo: