<p>
2. Nuestros primeros pasos con Palib Aquí vamos con la siguiente parte
En este tutorial vamos a aprender los códigos de palib mas básicos. Y vamos ha hacer nuestro primer homebrew
2.1 Lección muy breve de C Como ya sabéis palib usa el C como lenguaje de programación
EL C es un lenguaje de programación. Se escribe un código en el editor para que luego ocurra un suceso determinado.
Un ejemplo (ejemplo sacado del palib):
PA_OutputSimpleText(1,5,5,"Hola mundo");
Eso quiere quiere decir, que en la pantalla superior de la ds.
Aparecerá un texto que pondrá "hola mundo" justo en la coordenada 5-5 de la pantalla
(parece complicado, pero luego no lo es)
Para pasar esto a programa (en este caso nds) tenemos que usar un compilador, que traduce o compila el código que hemos puesto al lenguaje del ordenador/nds (código binario). Cuando abrimos el nds saldrá justo lo que hayamos puesto en el código
2.2 Estructura básica de un programa con palib Vamos a comenzar ya, nos metemos en la carpeta del devkitpro y en palib. Nos metemos ahora en tools y en vham. Este es nuestro editor de código que vamos a usar aunque se puede usar el bloc de notas también
Abrimos el vham y le damos a nuevo proyecto, ponemos el nombre que queramos y seleccionamos donde estará nuestro proyecto (la carpeta no puede tener ningún espacio)
Una vez terminado, nos saldrá en la pantalla un código. Este es el código básico que toda aplicación con palib debe tener para funcionar:
#include <PA9.h>
int main(int argc, char ** argv)
{
PA_Init();
PA_InitVBL();
while (1)
{
PA_WaitForVBL();
}
return 0;
}
Si compiláramos este código, y abriéramos el nds. No nos saldría nada. Nada mas que una pantalla en negro
Sin embargo este código es muy importante, ya que permite ejecutar el homebrew y mantenerlo en funcionamiento
Ahora vamos a ir definiendo cada una de las partes:
#include <PA9.h> El #include es para incluir instrucciones, herramientas, recursos... al compilador
Lo que esta incluyendo ahí. Son las propias palib al compilador.
int main(int argc, char ** argv)
{ Esto quiere decir el comienzo del código del main
PA_Init(); Esto es para que se inicien las palib con todas sus funcione
PA_InitVBL(); Inicia las rutinas necesarias para que la DS realice ciertas tareas con regularidad. Como obtener la posicion del stylus
while (1) Mientras que el valor de una variable sea 1 se ejecuta este código. Por ahora vamos a decir que se ejecuta
continuamente y nunca termina
PA_WaitForVBL(); Sirve para sincronizar el juego con la velocidad de dibujar la pantalla, con esto esperamos a que acabe de dibujar la pantalla. Sucede cada 16,5 milisegundos.
return 0; Sale de la función, en este caso main(). Nunca se debe de llegar a este punto en la función main() ya que nos saldríamos del programa.</p>
La
} del final significa el final del código
Y por ultimo, queda por mencionar el //
Sirve para hacer anotaciones en el programa. No se tiene en cuenta para compilar, solo sirve de guía para ti u o otra persona que vea el código. En el vham te aparecerán unos cuantos,
Los códigos que pondré haré anotaciones de este mismo estilo para guiaros
2.3 Nuestro primer homebrew: Un hola mundo Haremos un sencillo homebrew. Lo único que hará es mostrar un determinado texto que nosotros pondremos
Estos son los códigos para crear textos sencillos:
PA_InitText(1,//Se refiere a la pantalla superior, la táctil seria la 0
3//se trata de la capa 3, existen 4 capas: 0,1,2,3. Las explicaremos mas adelante
);
PA_OutputSimpleText(1,// la pantalla superior como nosotros sabemos
10,//Coordenada x de la pantalla para situar el texto
10,//Coordenada y de la pantalla para situar el texto
"Hola Mundo"//aqui esta el texto. Siempre tiene que ir entre comillas
);
He puesto comentarios en el codigo para que sea autoexplicativo,
pero lo explicare de todas formas otra vez
Primero se escribe el PA_InitText para preparar la ds para poner texto en una determinada pantalla y capa. Seria como coger el papel para escribir.
Luego va el PA_OutputSimpleText para escribir el texto en dicha pantalla (hay que decirlo otra vez) y en una determinadas coordenadas de la pantalla
Os pongo aquí lo que seria el código entero
#include <PA9.h>
int main(int argc, char ** argv)
{
PA_Init();
PA_InitVBL();
PA_InitText(1,3);
PA_OutputSimpleText(1,10,10,"Hola Mundo");
while (1)
{
PA_WaitForVBL();
}
return 0;
}
Nos vamos a project, a target y a build. Si tenemos el código bien escrito, nos creara un nds y un nds.gba. Pos ya esta
Tarea: Os voy a poner una tarea para que hagáis hasta el siguiente tutorial. Tenéis que escribir un texto en la esquina superior
izquierda de la pantalla superior. Luego en la esquina derecha inferior de la pantalla tactil, y por ultimo un texto en el centro de cualquier pantalla
Para hacerlo tendréis que usar los PA_InitText y el PA_OutSimpleText que hemos aprendido en el tutorial. Esta tarea
sirve como refuerzo y ademas para que aprendais a dominar las coordenadas, y así aprendáis a situar mejor el próximo tuto tratar sobre los fondos
Un saludo