En este tutorial aprenderemos de forma sencilla como poner texto en tus proyectos y personalizar las fonts(letras) y hasta escribir el texto que quieras con un teclado en la pantalla inferior(personalizable también),asi que si quieren saber hacer estas funciones sigan leyendo.
Requesitos:
-Devkitpro.
-Palib.
-Saber programar:es decir saber manejarte en palib o libnds.
Inicializar texto en una pantalla(importante para lo demas).
Sin este codigo lo demas relacionado con el texto no sirve,solo han de agregar este codigo para poder iniciar el texto:
PA_InitText(numero de pantalla,numero de fondo);
Numero de pantalla: Si pones un 0 te refieres a la pantalla inferior(tactil),si pones un 1 te refieres a la pantalla superior.
Numero de fondo: Hay 3 capas por lo cual se conviene poner un 0 asi quedara en primer lugar.
ejemplo:
-para iniciar texto en pantalla inferior:
PA_InitText(0,0);
-para iniciar texto en pantalla superior:
PA_InitText(1,0);
Mostrar un texto.
Este codigo es para mostrar un texto en un determinado lugar:
PA_OutputSimpleText(numero de pantalla,coordenada X,coordenada Y,"texto");
Numero de pantalla: Si pones un 0 te refieres a la pantalla inferior(tactil),si pones un 1 te refieres a la pantalla superior.
coordenada X: Es el lugar horizontal en chars de 8 pixeles.
coordenada Y: Es el lugar vertical en chars de 8 pixeles.
Mostrar una variable.
Este codigo podria ayudarte para mostrar vidas,magia,ect... de tus proyectos:
PA_OutputText(numero de pantalla,coordenada X,coordenada Y,"codigo para mostrar",variable);
Numero de pantalla: Si pones un 0 te refieres a la pantalla inferior(tactil),si pones un 1 te refieres a la pantalla superior.
coordenada X: Es el lugar horizontal en chars de 8 pixeles.
coordenada Y: Es el lugar vertical en chars de 8 pixeles.
variable: Hay va el nombre de la variable que quieres que se muestre.
codigo para mostrar: Hay uno para cada cosa:
%s para el texto.
%d para variables sencillas(u8,s32,ect...).
%f para floats y doubles.
%f2 para decimales.
%x para mostrarse en hexadecimal.
Función cambiar color de texto en el mismo OutputText:
%c0 -> color normal de la font.
%c1 -> rojo.
%c2 -> verde.
%c3 -> azul.
%c4 -> rosa.
%c5 -> azul claro.
%c6 -> amarillo.
%c7 -> gris.
%c8 -> gris mas oscuro.
%c9 -> negro.
Si quieres cambiar de color luego pon el codigo del otro color y sigue escribiendo.
Personalizar las letras del proyecto(fonts).
Es muy facil solo pon esto:
PA_InitCustomText(numero pantalla,numero fondo,nombre);
Numero de pantalla: si pones un 0 te refieres a la pantalla inferior(tactil),si pones un 1 te refieres a la pantalla superior.
Numero de fondo: Hay 3 capas por lo cual se conviene poner un 0 asi quedara en primer lugar.
Nombre: El nombre que hayas asignado a las fonts.
Escribir texto con el teclado.
Este ya es un poco mas dificil pero sigue siendo posible:
Añadir esto para poder establecer texto:
char text[200]; s32 nletter = 0; char letter = 0;
Iniciar al teclado en pantalla inferior:
PA_InitKeyboard(numero de fondo);
Interactuar con el:
letter = PA_CheckKeyboard(); if (letter > 31) { // there is a new letter text[nletter] = letter; nletter++; } else if(letter == PA_TAB){// TAB Pressed... u8 i; for (i = 0; i < 4; i++){ // put 4 spaces... text[nletter] = ' '; nletter++; } } else if ((letter == PA_BACKSPACE)&&nletter) { // Backspace pressed nletter--; text[nletter] = ' '; // Erase the last letter } else if (letter == '\n'){ // Enter pressed text[nletter] = letter; nletter++; }
Mostrarlo:
PA_OutputSimpleText(pantalla, coordenada x, coordenada y, text);
Personalizar teclado.
Como era de esperar palib no nos complica la vida:
PA_InitCustomKeyboard(numero fondo, nombre);
Color del texto(mas fácil).
Solo basta con esto:
PA_SetTextTileCol(pantalla, numero color);
Numeros de los colores:
0 -> color normal de la font.
1 -> rojo.
2 -> verde.
3 -> azul.
4 -> rosa.
5 -> azul claro.
6 -> amarillo.
7 -> gris.
8 -> gris mas oscuro.
9 -> negro.
A partir del nueve hay unos pocos de tonos negros y luego empiezan otra vez.
Color del texto (fácil).
Si entendeis de colores sera mas util que el anterior:
PA_SetTextCol(u8 pantalla, PA_RGB(u8 rojo, u8 verde, u8 azul));
Según la cantidad que pongas de cada color conseguireis el tono que mas os guste.
Fonts y plantilla par situar texto.
Fonts:
Plantilla para averiguar coordenadas facilmente(hecha por mi):
Salu2
donde deben guardarse las fonts?
pues eso, que donde deben estar las fonts para que funcionen
salu2! y espero respuestas
las font las conviertes con
las font las conviertes con PAGFX junto a lso demas gráficos.
Salu2
OK
pero... como sprites o backgrounds??
como background. Salu2
como background.
Salu2
¡actualización!
He puesto como cambiar el colro del texto en el mismo OutputText, por cierto creo que este tutoria les muy util para los novatos y pienso que se podria añadir a los tutoriales ya que siempre vendra bien.
Salu2
No me habia dado cuenta,
No me habia dado cuenta, creia que usaba el que no era simple de por si :P.
Ahora lo modifico.
Salu2
Se me olvido comentar que en
Se me olvido comentar que en la plantilla para averiguar coordenadas es asi:
Por cada cuadradito a la derecha sumar 1 y lo mismo en vertical cuando avances abajo ;).
PD:Voy a añadir la accion que menciono almamuPP para colorear texto también.
Salu2
Ya dije que no entiendo muy
Ya dije que no entiendo muy bien eso pero a mi me funciona el %a...
Salu2
Está genial, Master, pero
Está genial, Master, pero sólo falla un detalle
PA_OutputSimpleText<span style="color: #009900;">(</span>numero de pantalla<span style="color: #339933;">,</span>coordenada X<span style="color: #339933;">,</span>coordenada Y<span style="color: #339933;">,</span><span style="color: #ff0000;">"%d"</span><span style="color: #339933;">,</span>variable<span style="color: #009900;">)</span><span style="color: #339933;">; </span>
Esto sólo sirve para mostrar variables de tipo entero. Podrías ampliarlo para enseñar a la gente como sacar cadenas de texto o números decimales
Saludos!!
Proyectos en curso
El Taller de Eglomer
Añadido lo que has dicho
Añadido lo que has dicho ^^.Aunque no se muy bien de esos codigos pero creo que mas o menos esta bien.
salu2
Tienes razón,en un rato
Tienes razón,en un rato libre desarrollare mas esa parte.
salu2
Mira aver si te sirve alguna
Mira aver si te sirve alguna de estas:
Y luego por si no sabes donde poner el texto:
Intentare buscar dicha font
Intentare buscar dicha font o la hare yo mismo.Sobre lo del
PA_SetTextTileCol(pantalla,color_rojo,color_verde,color_azul);
no sabia que también se podia usar asi.salu2
A ok ya lo investigare,por
A ok ya lo investigare,por cierto sobre lo de las font de pokemon diamante,he encontrado las letras,si eso te las paso y las pasas a forma de font porque yo es que no tenga mucho tiempo .
salu2
será util
ya que estoy empezando ...
aver si consigo hacer el hello world , se supone que es facil xD
no entiendo como poner el color
cuando pongo el codigo que tu dices... me compila bien, pero no aparece nada en pantalla. el numero de color cual es si, por ejemplo, quiero el rojo?
espero respuestas
ya añadi el numero de cada
ya añadi el numero de cada color,si quieres el rojo es el 1.
salu2
pues sigui igual
la cosa sigue igual
el PA_SetTextTileCol se pone en vez del PA_InitText, verdad?
y mi otra pregunta: no falta añadir el numero de la capa?
No el initext es
No el initext es importantisimo sin el,el texto no se inicia añade el PA_InitText y el PA_SetTextTileCol ,si este no necesita capa ya que cambia el color de todas las letras que hay en la pantalla.
salu2
que crack
gracias tío, una cosa más que se y una cosa más para mi proyecto
muchas gracias
salu2!!
PD: aclaro que se pone antes del PA_OutputSimpleText, como si fuera el PA_InitText
gracias
me servirá de ayuda ;)
Salu2