Anuncios Google

Problema con Palib

Por favor, podrían ayudarme, lo que yo quiero es un cosa un poco simple, me gustaría poder conseguir que cuando toque un sprite con el Stylus, cambie de pantalla, el problema viene siendo que sólo funciona con uno de los dos sprites, el otro no realiza el código, les adjunto el código para que lo vean y me puedan aconsejar, por favor, gracias.

 

/ Includes

#include <PA9.h>       // Include for PA_Lib

#include "gfx/all_gfx.c" //Includes con

#include "gfx/all_gfx.h" //info de fondos

 

// Function: main()

int main(int argc, char ** argv)

{

PA_Init();    // Inicializa PA_Lib

PA_InitVBL(); // Inicializa un VBL standard

PA_InitText(1,2);

PA_EasyBgLoad(0,2,mapaa);

PA_InitText(1,2);

 

PA_OutputSimpleText(1, 0, 1, "TOCA A GOKU PARA HISTORIA TOCA A NARUTO PARA VERSUS");

 

 

PA_LoadSpritePal(0,1,(void*)goky2_Pal); // Nombre de paleta

PA_CreateSprite(0,1,(void*)goky2_Sprite, // Nombre de sprite

OBJ_SIZE_64X64, // Tamaño de sprite

1, // Modo de 256 colores

1, // Numero de paleta

10,80); // Posicion X e Y en la pantalla

PA_LoadSpritePal(0,2,(void*)naruto_Pal); // Nombre de paleta

PA_CreateSprite(0,2,(void*)naruto_Sprite, // Nombre de sprite

OBJ_SIZE_64X64, // Tamaño de sprite

1, // Modo de 256 colores

2, // Numero de paleta

175, 75); // Posicion X e Y en la pantalla

while (!PA_SpriteTouched(2))

{

PA_OutputSimpleText(1, 0, 1, "TOCA A GOKU PARA HISTORIA TOCA A NARUTO PARA VERSUS");

}

PA_DeleteBg(0,2);

PA_EasyBgLoad(0,1,dbz2);

PA_DeleteSprite(0,1);

        PA_DeleteSprite(0,2);

while (!PA_SpriteTouched(1))

{

PA_OutputSimpleText(1, 0, 1, "TOCA A GOKU PARA HISTORIA TOCA A NARUTO PARA VERSUS");

}

PA_DeleteBg(0,2);

PA_DeleteSprite(0,1);

        PA_DeleteSprite(0,2);

// Bucle infinito para mantener el programa funcionando

while (1)

{

 

PA_WaitForVBL();

}

return 0;

}

 


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 magicblack2009

Madre mía, menudo lío te has

Madre mía, menudo lío te has hecho ahí poniendo dos whiles, normal que no funcione... Tienes que cambiar cada while por un if, y meterlos dentro del while(1).

Te dejo el código con el error solucionado:

// Includes
 
#include <PA9.h>       // Include for PA_Lib
#include "gfx/all_gfx.c" //Includes con
#include "gfx/all_gfx.h" //info de fondos
 
// Function: main()
 
int main(int argc, char ** argv)
 
{
 
PA_Init();    // Inicializa PA_Lib
PA_InitVBL(); // Inicializa un VBL standard
PA_InitText(1,2);
PA_EasyBgLoad(0,2,mapaa);
PA_InitText(1,2);
 
PA_OutputSimpleText(1, 0, 1, "TOCA A GOKU PARA HISTORIA TOCA A NARUTO PARA VERSUS");
 
PA_LoadSpritePal(0,1,(void*)goky2_Pal); // Nombre de paleta
PA_CreateSprite(0,1,(void*)goky2_Sprite, OBJ_SIZE_64X64, 1, 1, 10,80); // Posicion X e Y en la pantalla
 
PA_LoadSpritePal(0,2,(void*)naruto_Pal); // Nombre de paleta
PA_CreateSprite(0,2,(void*)naruto_Sprite, OBJ_SIZE_64X64, 1, 2, 175, 75); // Posicion X e Y en la pantalla
 
// Bucle infinito para mantener el programa funcionando
 
while (1)
 
{
 
if (PA_SpriteTouched(0,1)){ //Si se toca a Goku...
PA_DeleteBg(0,2);
PA_EasyBgLoad(0,1,dbz2);
PA_DeleteSprite(0,1);
PA_DeleteSprite(0,2);}
 
if (PA_SpriteTouched(0,2)){ //Si se toca a Naruto...
PA_DeleteBg(0,2);
PA_DeleteSprite(0,1);
PA_DeleteSprite(0,2);}
 
 
PA_WaitForVBL();
 
}
 
return 0;
 
}

Creo que he puesto como tú querías las acciones al tocar a uno u otro, sino están bien, cámbialas ;).

Salu2!


¿Quieres estar totalmente informado sobre el universo 3DS? Visita Magic3DS.

También puedes estar al tanto de toda la actualidad de 3DS en Twitter: @Magic3DS

Muchas gracias

Sí, era eso, gracias, es que soy nuevo en ésto y aún no me manejo muy bien, muchas gracias.

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.