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

Índice de foros NDS Scene

[Tutoriales Palib] 4. Uso de textos avanzado

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] 4. Uso de textos avanzado

Mensajepor amchacon 13 Jun 2009 17:01

4. Uso de textos avanzados

En este tutorial aprenderemos a usar textos totalmente personalizados (distinto color, distinto tamaño, distinta fuente...)

4.1 Colores en texto

Explicare dos formas de hacerlo, aunque yo personalmente recomiendo usar fuentes de color (lo explico tambien posteriormente)

4.1.1 Color por titles

Esta funcion se compone de 9 colores basicos, aqui pongo una tabla con los colores y su numero:

0 = blanco
1 = rojo
2 = verde
3 = azul
4 = púrpura
5 = celeste
6 = amarillo
7 = gris claro
8 = gris oscuro
9 = negro

Tambien se puede representar con TEXT_(Color en ingles y en mayusculas)

Por ejemplo:

TEXT_YELLOW


El codigo para usar esto es:

PA_SetTextTileCol(0,//Pantalla
1//Color, ya sea con numeros o con el TEXT
);

Todo el texto que pongamos a partir de ese codigo saldra en ese color

Pos ya esta. Pongo un ejemplo por si no queda del todo claro:

#include <PA9.h>

int main(int argc, char ** argv)
{
PA_Init();
PA_InitVBL();
PA_InitText(0, 1);// Iniciamos el texto

//Seleccionamos el color rojo
PA_SetTextTileCol(0,1);
//Escribimos el texto
PA_OutputSimpleText(0, 2, 1, "Rojo");
PA_OutputSimpleText(0, 2, 3, "O no es cierto?");
// Cambiamos al color verde
PA_SetTextTileCol(0, 2);
PA_OutputSimpleText(0, 6, 1, "Color Verde");
PA_OutputSimpleText(0, 6, 3, "Verdad?");
// Ahora al azul
PA_SetTextTileCol(0, 3);
PA_OutputSimpleText(0, 10, 3, "Azul");
PA_OutputSimpleText(0, 10, 3, "Ovbio no?");


while (1)
{
PA_WaitForVBL();
}

return 0;
}

4.1.2 Color por RGB

Este otro metodo, tiene la ventaja de que dispone de una gama de colores mucho mas amplia (creo que son 30.000 colores). Lo malo es que se aplica a todo el texto sin exepcion

Este metodo consiste en mezclar los tres colores basicos (rojo,azul y verde) en una determinada cantidad para así conseguir cualquier color

Por ejemplo, para conseguir el amarillo habria que mezclar:

Rojo: 15
Azul: 15
Verde: 0

Y el naranja:

Rojo: 30
Azul: 15
Verde: 0

Si aumentamos las cantidad de cada color, iremos consiguiendo colores mas claros. Si las disminuimos seran mas oscuros. La cantidad maxima que se le puede poner a un color es de 31. Por ello hay 31*31*31 numero de combinaciones posibles

Aqui teneis el codigo:

PA_SetTextCol(0,//pantalla
15, //Rojo
15, //Verde
0 //Azul
);
Y ya por ultimo, pongo un codigo entero:


#include <PA9.h>

int main(int argc, char ** argv)
{
PA_Init();
PA_InitVBL();
PA_InitText(0, 1);// Iniciamos el texto

//Seleccionamos el color rojo, muy rojo
PA_SetTextCol(0,31,0,0);
//Escribimos el texto
PA_OutputSimpleText(0, 1, 1, "El color rojo");
PA_OutputSimpleText(0, 1, 3, "me encanta");

while (1)
{
PA_WaitForVBL();
}

return 0;
}


4.2 Tamaño

Podemos hacerlo con esto:

PA_SmartText(0, // Pantalla
0, // Coordenada X
1, // Coordenada Y
255, // Coordenadas X derecha (Lo maximo donde puede llegar el texto en horizontal)
20, // Coordenas Y derecha (Lo maximo donde puede llegar el texto en horizontal)
"Hola mundo", // El texto
1, // Color del texto (0-255)
0, // Tamaño del texto (0-4)
0, // Modo de texto (0 - normal, 1 - transparente, 2 - sin texto, 3 - rotado 90°, 4 - mas de 90°)
100); // Maximo número de carácteres.
Yo nunca lo he usado, por lo que no puedo explicar nada de aqui. Yo personalmente para poner texto de mas tamaño uso fuentes distintas. Lo explico a continuacion

4.3 Fuentes


Una fuente, es una imagen en la que aparecen dibujadas las letras que vas a usar. He aqui un ejemplo de fuente:

Imagen

De esta forma puede escribir con el estilo de letra que quieras, si pusieras la letra mas grande podras escribir mas grande. Si la pusieras en otro color, apareceria en otro color

Las fuentes se pueden hacer con el dsfont. Se encuentra dentro de la carpeta de palib y en tools. No voy a explicar como funciona porque seria un tutorial muy muy largo entonces

Bien, voy a explicar como cargar una fuente para usarla como texto. Coged la misma que puse antes:

Imagen

(Renombradla a font)

Lo primero que vamos ha hacer es convertirla, nos vamos a palib/tools/pagfx. Pasamos alli la font y abrimos el pagfx. Nos vamos a backgrounds y insertamos nuestra fuente. Le ponemos el modo TitleBg:

Imagen

La convertimos, y pasamos los archivos a nuestro proyecto como en el tutorial anterior. Sin embargo en vez de poner los archivos en una carpeta gfx. La pondremos en una que se llame font


Bien, para que palib use nuestra fuente basta con que pongamos esto:

PA_InitCustomText(1,//pantalla
1,//capa
font);//nombre de la fuente

Y ya esta, el texto que pongamos aparecera con esa fuente. Ahora, no se nos puede olvidar incluir los all_gfx:
#include "font/all_gfx.c"
#include "font/all_gfx.h"

Pongo, ahora el codigo entero:
<p>
#include <PA9.h>
#include "font/all_gfx.c"
#include "font/all_gfx.h"

int main(int argc, char ** argv)
{
PA_Init();
PA_InitVBL();

//Preparamos el texto
PA_InitCustomText(1,1,font);

//Y escribimos
PA_OutputSimpleText(1, 12, 12, "A que mola mi fuente?");


while (1)
{
PA_WaitForVBL();
}

return 0;
}


Tarea:

Usar textos de colores y fuentes distintas. Añadir un fondo, con esto repasaremos todo lo que llevamos por ahora

Saludos

pd: Es posible que añada algo mas al tutorial <img class="inlineimg" src="http://www.espalnds.com/foros/images/smilies/wink.gif" border="0" /></p>
Ultima edición por amchacon el 15 Jul 2009 16:32, editado 3 veces

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

Mensajepor magic black 2009 14 Jun 2009 20:57

MUY BUENO, ESPERANDO LOS SIGUIENTES, QUE ME HACEN FALTA
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