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;
}