Anuncios Google

Tutorial crear una pantalla de inicio (yo lo llamo asi otros lo llaman menus)

 Bueno aqui explicare como se hace una pantalla de inicio con ella podremos cargar nuestro homebrew con un fondo y al pulsar sobre el fondo se habra el homebrew en si aunque tambien con el codigo que voy a mostrar a continuacion si lo aplicais literalmente a vuestro homebrew lo que hara que al pulsar en la pantalla tactil pase a otro fondo y si vuelves a pulsar en la patalla volveras al fondo del principio si quereis que esto no ocurra debereis quitar una parte que yo marcare al final del tutorial.Una pequeña aclaracion algunos lo llaman menus poque con esto se pueden crear menus yo lo utilizo para hacer  algo parecido a una pantalla de inicio.

 

Codigo:

// como muchos conocen ya estos son los incluide los dos ultimos incluides que aparecen aqui son para cargar los graficos convertidos antes con  PAgfx

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

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

bool menu; /* declaramos el booleano le damos valor falso
le ponemos falso para que este en el  menu 1 y verdadero para que pase al menu 2*/

// le damos el valor de falso
menu = false;

// cargamos los bg del menu 1los fondos para los que no lo entiendan

PA_EasyBgLoad(0, 3, bg0_1);
PA_EasyBgLoad(1, 3, bg0_2);

while (1)
{

// si tocamos la pantalla en el menu 1

if ((Stylus.Newpress) && (menu == false)){ /*OJO MUY IMPORTANTE, si pones como condicion el
valor de un booleano o una variable en el if, enved de = hay que colocarle ==, sino no lo comprueba*/

// borramos los anteriores bg
PA_DeleteBg(0, 3);
PA_DeleteBg(1, 3);
// cargamos los bg del menu 2
PA_EasyBgLoad(0, 3, bg1_1);
PA_EasyBgLoad(1, 3, bg1_2);

menu = true; // indicamos que estamos en el menu 2
}

// esto es para volver al menu 1 si no quereis que volver al menu 1 no lo pongais

else if ((Stylus.Newpress) && (menu == true)){ // si tocamos la pantalla y estamos en el menu 2...
// borramos los anteriores bg
PA_DeleteBg(0, 3);
PA_DeleteBg(1, 3);
// cargamos los bg del menu 1 otra vez
PA_EasyBgLoad(0, 3, bg0_1);
PA_EasyBgLoad(1, 3, bg0_2);

menu = false; // indicamos que estamos en el menu 1
}
PA_WaitForVBL();
}

return 0;
}

 

Esta parte si no quereis volver al menu 1 no hace falta que la pongais.

// esto es para volver al menu 1 si no quereis que volver al menu 1 no lo pongaiselse if ((Stylus.Newpress) && (menu == true)){ // si tocamos la pantalla y estamos en el menu 2...
// borramos los anteriores bg
PA_DeleteBg(0, 3);


PA_DeleteBg(1, 3);
// cargamos los bg del menu 1 otra vez
PA_EasyBgLoad(0, 3, bg0_1);
PA_EasyBgLoad(1, 3, bg0_2);

menu = false; // indicamos que estamos en el menu 1
}

El codigo sin la parte anterior seria asi ( con el siguiente codigo no volveriamos al menu 1):

// como muchos conocen ya estos son los incluide los dos ultimos
incluides que aparecen aqui son para cargar los graficos convertidos
antes con PAgfx

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

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

bool menu; /* declaramos el booleano le damos valor falso
le ponemos falso para que este en el  menu 1 y verdadero para que pase al menu 2*/

// le damos el valor de falso
menu = false;

// cargamos los bg del menu 1los fondos para los que no lo entiendan

PA_EasyBgLoad(0, 3, bg0_1);
PA_EasyBgLoad(1, 3, bg0_2);

while (1)
{

// si tocamos la pantalla en el menu 1

if ((Stylus.Newpress) && (menu == false)){ /*OJO MUY IMPORTANTE, si pones como condicion el
valor de un booleano o una variable en el if, enved de = hay que colocarle ==, sino no lo comprueba*/

// borramos los anteriores bg
PA_DeleteBg(0, 3);
PA_DeleteBg(1, 3);
// cargamos los bg del menu 2
PA_EasyBgLoad(0, 3, bg1_1);
PA_EasyBgLoad(1, 3, bg1_2);

menu = true; // indicamos que estamos en el menu 2

}

PA_WaitForVBL();
}

return 0;
}

 

Un ejemplo de como me ha quedado:

Cuando lo iniciamos    Pulsamos la pantalla tactil

Cuando lo iniciamos.                                      Cuando pulsamos la pantalla tactil.

 

Bueno creo que ya esta todo explicado espero que os sirva a todos cualquier fallo que os de avisar a lo mejor e escrito algo mal un saludo a todos.

P.D. Creo que solo podeis tener un problema al compilar que las imagenesqueconvirtais tengan el nombre (ej. BG1) y en el tuto viene com bg1_1 ya me entendeis.

P.D.2 Las imagenes son de mi proyecto espero que os gusten.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jumacj

Demasiado lioso

Demasiado lioso. ¿Para que complicarse la vida cuando hay un método mucho más facil que ese? Si no me equivoco, quieres enseñarnos a poner dos pantalla y que al pulsar la tactil se cargen otras dos. Pues todo eso se puede hacer simplemente con esto:

 

PA_EasyBgLoad(1,3,nombre_de_la_pantalla);
PA_EasyBgLoad(0,3,nombre_de_la_pantalla);
 
PA_WaitFor(Stylus.Newpress);
 
PA_EasyBgLoad(1,3,nombre_de_la_pantalla);
PA_EasyBgLoad(0,3,nombre_de_la_pantalla);

 

Asi de simple. Saludos.

Imagen de ARAM04

Buen Tuto

Buen Tuto

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.