[Tutorial]NFlib,textos,usarlos y mostrarlos. 5 5 1

[Tutorial]NFlib,textos,usarlos y mostrarlos.

Ver el tema anterior Ver el tema siguiente Ir abajo

[Tutorial]NFlib,textos,usarlos y mostrarlos.

Mensaje por Roberto258 el Vie 4 Feb 2011 - 21:50

Si habéis conseguido finalizar la instalación,podéis empezar a crear todo tipo de homebrews a vuestro gusto,pero tenéis que recordad que las Nflib son unas librerías que utilizan el devkitARM y libnds,están creadas por KnightFox y,lo más importante,están sujetas a la licencia Creative Commons NoComercial 3.0.,que debereis aceptar y cumplir antes de publicar cualquier homebrew o usar la librería.

Para ello deberemos de ir a donde hayamos puesto la carpeta nflib y leeros:

-[ESP]Licencia creative commons
-[ESP]Descargo de responsabilidad

Que os informrán de la licencia y los derechos de uso.La mejor manera de cumplirla es realizando unos splashes al principio del homebrew para nombrar que se ha hecho con NFlib.Esto lo veremos más detenidamente en el próximo tutorial.
_________________________________________________________________________________________________________________________________________
¿Como empiezo un proyecto?

Para empezar un proyecto,deberemos copiar la carpeta "template"(que está en la carpeta de nflib)a cualquier otro sitio.Podemos cambiarle el nombre peroNO DEBE CONTENER ESPACIOS.
Para saber si hemos instalado todo perfectamente,deberemos darle a "compile" que es un archivo .bat que compilará el proyecto.Después,dadle a "clean" para limpiar lo que se ha producido.

Y ahora veremos donde deberemos escribir para realizar nuestro proyecto,en el "main.cpp",que se localiza en "carpeta_de_tu_proyecto"\source.Este lo podemos abrir con cualquier editor de texto,como el bloc de notas,pero yo usaré el Visual C++ 2008.
Una vez abierto,veremos lo siguiente:

Spoiler:
/*
-------------------------------------------------

NightFox's Lib Template

Requiere DevkitARM R28
Requiere NightFox's Lib

Codigo por NightFox
http://blogs.gamefilia.com/knightfox
Inicio 10 de Octubre del 2009

(c)2009 - 2010 NightFox & Co.

-------------------------------------------------
*/





/*
-------------------------------------------------
Includes
-------------------------------------------------
*/

// Includes c/c++
#include

// Includes propietarios NDS
#include

// Includes librerias propias
#include





/*
-------------------------------------------------
Main() - Bloque general del programa
-------------------------------------------------
*/

int main(int argc, char **argv) {

consoleDemoInit(); // Inicializa la consola de texto
consoleClear(); // Borra la pantalla
setBrightness(3, 0); // Restaura el brillo

iprintf("\n Hello World!");

// Bucle (repite para siempre)
while(1) {

swiWaitForVBlank(); // Espera al sincronismo vertical

}

return 0;

}


Como podéis ver al final de cada línea se encuentra un punto y coma.Esto es muy importante porque si no se pone ";" al final de cada línea,el compilador seguirá leyendo en la siguiente línea como si fuera la misma y esto ocasionará error seguro.
*Hay viene todo bastante claro,asi pasaré directamente a los textos.

Escribir en pantalla(Básico)

Si habéis mirado el main.cpp veréis que hay una parte que dice:

iprintf("\n Hello World!");

Esto significa que se escribirá en pantalla Hello World! sin utilizar ningún tipo de fuente específica o un posición predeterminada,por lo tanto,no suele usarse.

Escribir con una fuente y en un lugar exacto(Básico y obligatorio)

Debemos conseguir una fuente que podamos usar en las librerías,la cual podemos convertir con el grit,o usar las que ciene con los ejemplos de la librería.
Yo usaré las que vienen en nflib\examples\text\font template(default es la normal y font16 la grande)Creamos una carpeta llamada "fnt" dentro de la carpeta "nitrofiles",en la raíz de vuesto proyecto y pegaremos allí las fuentes.

Ahora empezaré a explicaros las funciones necesarias:

NF_SetRootFolder("NITROFS");
//Esta función elige la carpeta *nitrofiles como carpeta inicial,que se agregará a nuestro hb.

*Nota:Si elegimos cualquier otra carpeta creada por nosotros(y puesta en la raíz del proyecto)deberemos copiar dicha carpeta a la raíz de nuestra flash card.

NF_Set2D(pantalla, modo);
//Esto inicia el sistema de fondos en la pantalla que queramos(1 ó 2).En el modo debemos poner 0.

NF_InitTiledBgBuffers();
//Esto inicia los bufers de los fondos tileados(el texto es un fondo tileado).

NF_InitTiledBgSys(pantalla);
//Inicia el sistema de fondos tileados en la pantalla indicada(debemos haber usado antes NF_InitTiledBgBuffers();).

NF_InitTextSys(pantalla);
//Inicia el sistema de fondos de la pantalla que nos de la real gana(debemos haber usado antes NF_InitTextSys(pantalla);).

NF_InitTiledBgSys(pantalla);
//Inicia el sistema de fondos(sí,es necesario).

NF_LoadTextFont("archivo", "nombre de la fuente", ancho, alto, rotacion);
//Cargamos la fuente.En archivo,deberemos poner(en nuestro caso)"fnt/default"(con comillas) y en nombre de la fuente,un nombre cualquiera,por ejemplo "normal"(con comillas),que será el nombre que usaremos para identificarla.En ancho y alto pondré 256 y la rotación,podéis dejarla en 0.

NF_CreateTextLayer(pantalla, fondo, rotacion, nombre para identificarla);
//Esto crea la capa de texto en la pantalla que elijamos,en el fondo que elijamos(0,1,2 o 3.El 0 es el primero y el 3 el que está más atrás)con la rotación dicha y el nombre que usamos anterior mete para identificarla,en mi caso,"normal"(con comillas).

NF_WriteText(pantalla, capa, x, y, "texto");
//Esto escribe en la pantalla que queramos(por fin xD),en la capa deseada,y en las posiciones x e y(en tiles).El texto va entre comillas.

NF_UpdateTextLayers();
//Finalmente,pondremos esto(preferiblemente en el while)para que se actualizen las capas de texto y así se muestren.

NF_ClearTextLayer(pantalla, capa);
//Para borrar el texto de la pantalla y capa elegida.

He aquí un ejemplo:

Spoiler:
int main(int argc, char **argv) {

consoleDemoInit(); // Inicializa la consola de texto
consoleClear(); // Borra la pantalla
setBrightness(3, 0); // Restaura el brillo

NF_SetRootFolder("NITROFS");
NF_Set2D(1, 0);
NF_Set2D(0, 0);
NF_InitTiledBgBuffers();
NF_InitTiledBgSys(1);
NF_InitTiledBgSys(0);
NF_InitTextSys(0);
NF_InitTextSys(1);
NF_LoadTextFont("fnt/default", "normal", 256, 256, 0);
NF_LoadTextFont("fnt/default", "normal1", 256, 256, 0);
NF_CreateTextLayer(0, 0, 0,"normal");
NF_CreateTextLayer(1, 0, 0,"normal1");
NF_WriteText(0, 0, 0, 0, "Hola mundo!");
NF_WriteText(1, 0, 0, 0, "Hola mundo!");

// Bucle (repite para siempre)
while(1) {

NF_UpdateTextLayers();

swiWaitForVBlank();//Espero al sincronismo vertical
}

return 0;

}


Como podemos ver,se mostrará un texto que dirá "Hello World" En la parte superior izquierda de las dos pantallas.

Cambiar el color de un texto(opcional)

Muchas veces queremos cambiar el color del texto,por ejemplo,para indicar que habla un personaje diferente.Para esto(aparte de lo anteriormente dicho) usaremos:

NF_DefineTextColor(pantalla,capa,nº de color,rojo,verde,azul);
//Esto define un color mezclando los colores rojo,verde y azul(0-31).Se debe asignarle un nº,que será como un ID.

NF_SetTextColor(pantalla,capa,nºcolor)
//Cambia el color del texto.

Texto grande 8x16(Básico)
No me voy a parar mucho en este tema,puesto que no cambia mucho respecto al anterior.Lo que si tengo que destacar es que esta vez cargaremos "font16" en vez de "default".

NF_LoadTextFont16() ;
//Lo mismo que para el normal.

NF_CreateTextLayer16();
//Lo mismo que para el normal.

NF_WriteText16();
//Lo mismo que para el normal.

NF_ClearTextLayer16();
//Lo mismo que para el normal.

Nota:En la última versión se pueden poner tildes sólo en el texto 8 x 16.
Hasta aqui llega el tutorial de los textos.Si tenéis alguna duda o véis que algo está mal explicado reportármelo.Nos vemos en el próximo tutorial de gráficos.

¡Alto!¿Dónde ibas?Te he preparado una tarea.¿Qué tal si pruebas a mover un texto indefinidamente por la pantalla?Intentarlo y recordad,traducid vuestros pensamientos a C.

Pista:Tendréis que usar variables.
______________________________________________________________________________

Otros tutoriales nflib

1-Conceptos previos e instalación.
3-Gráficos simples fondos & sprites.Utilizar los splashes.
4-Teclas,música & cmaps.
4.1-Maxmod, las librerías de audio de la NDS


Última edición por Roberto258 el Vie 20 Mayo 2011 - 23:16, editado 4 veces

Roberto258
NDS-Fan

Masculino
Cantidad de envíos: 857
Localización: P'allá, p'allá, y luego to p'alante
Empleo/Ocio: Llevar el juego del asesino :P
Humor: Quarcástico
Opinión sobre NDS-Extra: Me Encanta
Reputación: 77
Puntos: 1081
Inscripción: 28/08/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: [Tutorial]NFlib,textos,usarlos y mostrarlos.

Mensaje por pepenillo el Dom 6 Feb 2011 - 17:40

Yo creo que deberias hacer unas explicaciones basicas sobre C, pero no tan basicas como en el tutorial 1.

Yo voy a seguir el tuto, para mi (principiante en C, pero con algunos conocimientos) es bastante facil de seguir.

Espero proximos tutos.

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos: 1765
Opinión sobre NDS-Extra: Ninguna
Reputación: 176
Puntos: 2533
Inscripción: 12/08/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: [Tutorial]NFlib,textos,usarlos y mostrarlos.

Mensaje por Roberto258 el Dom 6 Feb 2011 - 19:24

pepenillo escribió:Yo creo que deberias hacer unas explicaciones basicas sobre C, pero no tan basicas como en el tutorial 1.

Yo voy a seguir el tuto, para mi (principiante en C, pero con algunos conocimientos) es bastante facil de seguir.

Espero proximos tutos.


Es que,en realidad,los tutoriales de NFlib se limitan prácticamente a conocer y saber usar sus funciones.Como ves,apenas se utiliza poco más de lo que expliqué.De todas maneras,cuando se meta algo,lo explicaré para que lo entendáis.

Roberto258
NDS-Fan

Masculino
Cantidad de envíos: 857
Localización: P'allá, p'allá, y luego to p'alante
Empleo/Ocio: Llevar el juego del asesino :P
Humor: Quarcástico
Opinión sobre NDS-Extra: Me Encanta
Reputación: 77
Puntos: 1081
Inscripción: 28/08/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: [Tutorial]NFlib,textos,usarlos y mostrarlos.

Mensaje por pepenillo el Dom 6 Feb 2011 - 19:29

OK, espero con ansias el tuto de los sprites, y algunosmas avanzados

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos: 1765
Opinión sobre NDS-Extra: Ninguna
Reputación: 176
Puntos: 2533
Inscripción: 12/08/2010

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

Permiso de este foro:
No puedes responder a temas en este foro.