Control de usuario
Patrocinadores
Estadísticas
Miembros:
334.655
Online:
682
Hilos:
1.380.675
Mensajes:
24.885.158
Stats

Índice de foros NDS Scene

[Tutoriales Palib] 3. Uso de fondos y capas

Foro dedicado a las aplicaciones y hardware de la scene (no flash carts)

Moderador: eGladiator

amchacon
Adicto
 
Mensajes: 409
Registrado: 28 Nov 2008

[Tutoriales Palib] 3. Uso de fondos y capas

Mensajepor amchacon 12 Jun 2009 22:05

3. Uso de fondos y capas

En este tutorial aprenderemos a poner una imagen de fondo en nuestro homebrew. Tambien repasaremos lo dicho en el tutorial anterior y usaremos imagen y texto. Para ello usaremos las capas

3.1 Conversion de imagenes a formato de palib


Meter imagenes en palib es algo extresante y un poco desesperante a veces. Estad atentos

Con el palib se nos instala un progama que se llama pagfx, sirve para transformar las imagenes al formato de palib, claro que este tiene sus limitaciones. Las imagenes de fondo solo las admite si tiene 256 colores como maximo. Las podemos transformar con un editor de
imagenes como el photoshop, pero yo personalmente uso el
paint XD

Bien, nos metemos en la carpeta del devkitpro de nuevo,
nos metemos en palib, en tools y nos metemos en pagfx (si
tienes linux, usa la version de linux) metemos alli la
imagen. Abrimos el pagfx.exe nos saldra un panel:

Imagen

Nos vamos a backgrounds, metemos nuestra imagen y
seleccionamos en el tipo "EasyBg".

Imagen


Le damos ahora a save and convert, nos sale una pantalla de ms-dos. Cuando se cierre habra hecho la conversion, en la misma carpeta del
pagfx tendremos 4 archivos nuevos:

-All_gfx.c
-All_gfx.h
-(el nombre de la imagen).c
-(el nombre de la imagen).pal

Los dos primeros son unos archivos complementarios,
indica cuantas imagenes ahi y las incluye al progama. Los
otros dos son ovbiamente la imagen convertida

3.2 Carga del fondo

Ahora que tenemos la imagen convertida, vamos a usarla

Abrimos un nuevo proyecto con el vham.En la carpeta
source, abrimos una nueva carpeta que se llame gfx.

Metemos alli los 4 archivos de antes:

Imagen

Y ahora, el codigo que vamos a usar para cargar el fondo es:

PA_EasyBgLoad(0,//para elegir la pantalla
3,// el numero de capa, se explicara mas adelante
fondo//el nombre de nuestra imagen
);

Facil no?, claro que antes habra que añadir los all_gfx de antes, ya que sino dara error (ya que no encontrara ni reconocera la imagen)
Usaremos para esto, el #include. Lo situaremos al principio del codigo:

#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"

Y ahora pondre todo el codigo:

#include <PA9.h>
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"

int main(int argc, char ** argv)
{
PA_Init();
PA_InitVBL();
PA_EasyBgLoad(0,3,fondo);

/* Por cierto, para poner comentarios
de mas de una linea
se usa esto */
while (1)
{

PA_WaitForVBL();
}

return 0;
}


Lo probamos y vemos los resultados

3.3 Fondo y texto (capas)


Para empezar, voy a explicar lo que son las capas. Los que hayan usado photoshop les sonara bastante esto

Existen 4 capas como sabemos: 0 y 1 y 2 y 3. La capa 3 se pone al fondo, la 2 algo mas adelante, la 1 igual y la 0 esta enfrente de todo

Os voy a poner ahora un ejemplo por si no os queda claro (es algo dificil de comprender)

Imaginad un estudio de grabacion, El area que enfoca la camara la hemos dividido en 4 zonas: 0,1,2,3. Siendo 0 la mas cercana a la camara y 3 la mas lejana. Si pusieramos los decorados en la zona 0. Los decorados taparian todo, y a los actores no se les verian. Tienes mas sentido que pusieramos el decorado en la zona 3, y luego los actores los situaramos en la zona 2. De esa forma el decorado no tapa a los personajes, luego los atrezos los podemos situar en la capa 1 si queremos que este delante de los personajes... Etc

En palib ocurre lo mismo, si ponemos un fondo en la capa 2 y un texto en la 3. El texto no se veria ya que lo taparia

Pos sabiendo esto, vamos a intentar poner imagen y texto.

Aqui os dejo el codigo por si teneis dudas:

#include <PA9.h>
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"

int main(int argc, char ** argv)
{
PA_Init();
PA_InitVBL();
PA_InitText(0,2);/*Preparamos para cargar texto en la
pantalla inferior y en la capa 2 */
PA_OutputSimpleText(0,50,50,"Hola");//Escribimos el texto
PA_EasyBgLoad(0,3,fondo);// Cargamos el fondo


while (1)
{




PA_WaitForVBL();
}

return 0;
}


Ya hemos terminado

Tarea:

Esto es muy sencillo, poner un fondo en AMBAS pantallas con texto incluido. Basicamente para repasar lo que hemos hecho hoy

Saludos
Ultima edición por amchacon el 15 Ago 2009 18:39, editado 1 vez

Jesús94
Avatar de usuario
iPod Touch 4G
 
Mensajes: 623
Registrado: 17 Jun 2008
Ubicación: iPod Touch 4G

Mensajepor Jesús94 15 Jun 2009 17:00

los tutoriales son una pasada sigue asín me vale de mucho. Y porsupuesto muchiiiisimas gracias
Visita mi web: Scene World
Tuenti: Jesus Oliva Breakdance
Facebook: Jesus Oliva Morales
ImagenGame Center: Jesus241294Imagen
╔╦╦╗╔╦╗ copia esto si
║║║║╠╬╣ tienes una consola
╚══╝╚╩╝ innovadora, y que con pocos graficos puede hacer grandes juegos

magic black 2009
Avatar de usuario
Programador Novato
 
Mensajes: 677
Registrado: 08 May 2009

Mensajepor magic black 2009 16 Jun 2009 16:29

muy buenos tutos, me sirven de mucho, sigue así
felicidades
Visita mi blog -> El Blog de MagicBlack09
Mis proyectos: Where is the Star?
Mi nuevo proyecto: El Juego Más Difícil del Mundo PRO
Traduciendo Cyanide and Happiness: C&H en castellano
[PARCHES] Distribuciones Pokémon 2011
Cheat database by Manu
Imagen
Tratos C/V:
Tratos positivos (4): santiw, Kirby Konata, PabloH_Snake, Scylla.
Tratos negativos: Ninguno ^^



Volver a Scene

¿Quién está conectado?

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 0 invitados