TEMA3: Fondos y textos

Bueno en este tema, se explicará como cargar un fondo y también seguiremos con el texto.

Para empezar nos vamos a C:\devkitPro\PAlib\Tools\PAGfx y descomprimimos el archivo comprimido.

Cojemos el archivo que deja al descomprimir (PAGfx.exe) y el archivo PAGfx.ini.

Los copiamos y los pegamos en la carpeta que habíamos creado antes. (C:\devkitPro\programas\ej03\source\gfx)

Ahora obtendremos una imagen de 256x192, y la llamaremos como queramos (yo la he llamado bg0) y la metemos en C:\devkitPro\programas\ej03\source\gfx.

IMPORTANTE: La imagen debe de estar en PNG.

Cuando tengamos la imagen lista, abriremos el archivo PAGfx.ini.

Lo tenemos así:


 * 1) TranspColor Magenta


 * 1) Sprites :


 * 1) Backgrounds :


 * 1) Textures :

Debajo de backgrounds escribimos el nombre de nuestra imagen (en mi caso bg0.PNG). Después dejamos un espacio e indicamos que es un fondo poniendo EasyBg.

El código quedaría así:


 * 1) TranspColor Magenta


 * 1) Sprites :


 * 1) Backgrounds :

bg0.png EasyBg


 * 1) Textures :

Después de esto le damos a PAGfx.exe y os creará unos archivos en la carpeta.

Ahora viene lo complicado, el código.


 * 1) include  // Include de las PA_Lib


 * 1) include "gfx/all_gfx.c" //Incluimos los gráficos, gfx/all_gfx.c es uno de los archivos que se crearon antes


 * 1) include "gfx/all_gfx.h" //Incluimos los gráficos, se compone de dos archivos.

// Funcion: main int main(int argc, char ** argv) { PA_Init; // Iniciamos palib

PA_InitVBL; // Iniciamos VBL

PA_InitText(0, 0); //Iniciamos texto

PA_OutputSimpleText(0, 5, 5,"Hola y adios ");

PA_EasyBgLoad(0, // pantalla

3, // número de capa (0-3)

bg0); // nombre del fondo, el de la imagen de antes.

PA_EasyBgLoad(1, 3, bg0);

/* Ahora os explicaré un poco las capas… hay tres capas, 0, 1 ,2 y 3. La capa 3 será la que irá más al fondo, la 2 delante de la tercera pero a la vez detrás de 1 y 0..., y así sucesivamente... La capa 0 seria la frontal, aquí pondremos el texto porque sino la podemos tapar con el fondo .*/

//Bucle que hace la funcion de system pause o cin.get/ignore; while (1) { PA_WaitForVBL; }

return 0; } //Fin de main

Y ya tenemos el codigo listo para compilar.

Imagen del ejemplo: