Hola:
Estoy intentando hacer funcionar un pequeño ejemplo que pinta una serie de sprites en pantalla, luego al presionar uno de ellos nos lleva a una pantalla de espera en la que hasta que no pulsemos start, no se sigue adelante. Todo funciona correctamente, excepto el paso en el que se debe apretar el "start" que ni la máquina física, ni el DESMUME hacen nada, como si no se hubiese pulsado nada, es curioso ya que sólo me pasa con las teclas, porque el touchpad funciona muy bien. ¿Algún consejo?, os pongo aquí el trozo de código.
#include <PA9.h>
// PAGfxConverter Include
#include "gfx/all_gfx.h"
#include "gfx/all_gfx.c"
int main(void){
bool start = false;
bool tocado = false;
int valor;
PA_Init(); //PAlib inits
PA_InitVBL();
PA_InitText(0,1);
PA_OutputSimpleText(0,0,1,"Elige un tipo de juego...");
PA_LoadSpritePal(0, // Pantalla
0, // Numero de paleta
(void*)singleplayer_Pal); // Nombre de paleta
PA_CreateSprite(0, // Pantalla
0, // Numero de sprite
(void*)singleplayer_Sprite, // Nombre de sprite
OBJ_SIZE_32X32, // Tamaño de sprite
1, // Modo de 256 colores
0, // Numero de paleta
80, 70); // Posicion X e Y en la pantalla
PA_LoadSpritePal(0, // Pantalla
1, // Numero de paleta
(void*)multiplayer_Pal); // Nombre de paleta
PA_CreateSprite(0, // Pantalla
1, // Numero de sprite
(void*)multiplayer_Sprite, // Nombre de sprite
OBJ_SIZE_32X32, // Tamaño de sprite
1, // Modo de 256 colores
1, // Numero de paleta
130, 70); // Posicion X e Y en la pantalla
while(1) // Infinite loops
{
PA_WaitForVBL();
while (! tocado){
if (PA_SpriteTouched(0)==true){
PA_InitText(0,1);
PA_OutputSimpleText(0,0,1,"individual");
valor = 0;
tocado = true;
}else if (PA_SpriteTouched(1)==true){
PA_InitText(0,1);
PA_OutputSimpleText(0,0,1,"colectivo");
valor = 1;
tocado =true;
}/*else if (PA_SpriteTouched(2)==true){
PA_InitText(0,1);
PA_OutputSimpleText(0,0,1,"euskera");
valor = 2;
tocado = true;
}*/
}
PA_ClearBg(0,1);
PA_ResetSpriteSysScreen(0);
PA_InitText(1, 2);
PA_OutputSimpleText(1, 1, 2, "Bienvenido a TrivI/O! pulsa START para continuar...");
while (!start)
{
if (Pad.Newpress.Start)
{
start = true;
PA_ClearBg(1,1);
}
}
}
return 0;
}
}
Gracias, un saludo a todos.