[Duda PAlib]Los numeros no se borran y un sprite no se anima

Hola estaba haciendo un pequeño juego(por llamarlo asi, no es juego ni na) en el que si le das a un boton azul se anima y te suma a los aciertos +1 y si le das a un boton rojo se anima(Pero no se lo que pasa que no se quiere animar) y te resta -10 a tu vida. Y si te quitan toda la vida te pone GAME OVER y si tienes 5 aciertos te pone HAS GANADO.
Pero lo que pasa es que el boton rojo no se anima y si le das todo el rato al boton rojo empieza a restar asi: 100, 900,800,700,600...etc. Creo que sera por que el 100 del principio no se borra y se queda ahi. Y cuando llegas a 0 empieza por los numeros negativos y yo quiero que se pare el juego, lo mismo quiero que si llegas a 5 aciertos se pare y no se pueda dar a nada.
Este es el codigo(una cosa el boton azul se llama boton, y el boton rojo se llama boton1):
// Includes
#include <PA9.h>       // Include for PA_Lib
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"

int vida;
u32 aciertos;


// Function: main()
int main(int argc, char ** argv)
{

   PA_Init();    // Initializes PA_Lib
   PA_InitVBL(); // Initializes a standard VBL
   vida = 100;
   aciertos = 0;
   PA_InitText(1,0);
   PA_LoadSpritePal(0,0,(void*)sprite0_Pal);
   PA_LoadSpritePal(0,1,(void*)sprite1_Pal);
   PA_CreateSprite(0,0,(void*)boton_Sprite,OBJ_SIZE_32X32,1,0,0,0);
   PA_CreateSprite(0,1,(void*)boton1_Sprite,OBJ_SIZE_32X32,1,1,32,0);
   
   // Infinite loop to keep the program running
   while (1)
   {
      if((Stylus.Held) && PA_StylusInZone(0, 0, 32, 32)){
         PA_SetSpriteAnim(0,0,1);
      }
       if((Stylus.Released)&& PA_StylusInZone(0, 0, 32, 32)){
          PA_SetSpriteAnim(0,0,0);
          PA_OutputSimpleText(1,20,0,"Bien!");
          aciertos += 1;
       }
             
        
      if((Stylus.Held) && PA_StylusInZone(32, 32, 64, 32)){
         PA_SetSpriteAnim(0,1,1);
      }
       if((Stylus.Released)&& PA_StylusInZone(32, 0, 64, 32)){
          PA_SetSpriteAnim(0,1,0);
          PA_OutputSimpleText(1,20,0,"Mal!");
          vida -= 10;
       } 
       if(vida == 0){
          PA_OutputSimpleText(1,20,10,"GAME OVER");
        }
        if(aciertos ==5){
       PA_OutputSimpleText(1,20,10,"HAS GANADO");
}      
       PA_OutputText(1,0,0,"Vida: %d", vida);
      PA_OutputText(1,0,1,"Aciertos: %d", aciertos); 
      PA_WaitForVBL();
   }

   
   return 0;
}
Si el boton es un sprite, prueba a usar PA_SpriteTouched(pantalla, numero de sprite). Y te evitas de complicaciones [ginyo]
Saludos
amchacon escribió:Si el boton es un sprite, prueba a usar PA_SpriteTouched(pantalla, numero de sprite). Y te evitas de complicaciones [ginyo]
Saludos

Ok gracias ya se me anima el boton rojo [oki] ya solo falta arreglar lo de los numeros y que se pare el juego cuando la vida sea cero o los aciertos sean 5 ¿Como se puede hacer? :-?
2 respuestas