[HOMEBREW] Xplosion Time! 1.0

Holas!!

Aquí os dejo con un juego-chorra que he hecho. Básicamente se trata de explotar los sprites con el stylus lo más rápido posible. Hay un error que todavía no he conseguido arreglar, y es que si explotas el primer sprite cuando aún quedan otros sprites, crea fallos gráficos y de funcionamiento... Si alguien quiere echarle un ojo al source, está muy sucio y muy guarro, porque en este homebrew apenas he usado funciones [+risas]

Algunas capturas:
Imagen Imagen
Imagen Imagen

Descargar Xplosion Time! 1.0 (Megaupload)

// Includes
#include <PA9.h>       // Include for PA_Lib
#include "gfx/all_gfx.c"  // Incluimos gráficos
#include "gfx/all_gfx.h"
#include "choque.h"
#include "tetrisa.h"
#include "tetrisb.h"

// Función para cargar sprites
void carga_nivel(int nivel){
   int x = 0, y = 0, sprite = 0;
   switch (nivel){
      case 1:
            PA_LoadSpritePal(0,0,(void*)lv1pal_Pal);
            for (x=20; x<250;x+=77){
               for (y=26; y<173; y+=74){
                  PA_CreateSprite(0,sprite,(void*)lv1_Sprite,OBJ_SIZE_64X64,1,0,x,y);
                  PA_SetSpritePrio(0,sprite,2);
                  PA_StartSpriteAnim(0,sprite,0,3,5);
                  sprite++;
               }
            }
            break;            
      case 2:
            PA_LoadSpritePal(0,1,(void*)lv2pal_Pal);
            for (x=12; x<218;x+=39){
               for (y=10; y<184; y+=35){
                  PA_CreateSprite(0,sprite,(void*)lv2_Sprite,OBJ_SIZE_32X32,1,1,x,y);
                  PA_SetSpritePrio(0,sprite,2);
                  PA_StartSpriteAnim(0,sprite,0,3,5);
                  sprite++;
               }
            }
            break;
      case 3:
            PA_LoadSpritePal(0,2,(void*)lv3pal_Pal);
            for (x=13; x<241;x+=18){
               for (y=14; y<184; y+=19){
                  PA_CreateSprite(0,sprite,(void*)lv3_Sprite,OBJ_SIZE_16X16,1,2,x,y);
                  PA_SetSpritePrio(0,sprite,2);
                  PA_StartSpriteAnim(0,sprite,0,3,5);
                  sprite++;
               }
            }
            break;
      default:
            PA_OutputSimpleText(0,1,5,"Error al cargar nivel");
            //exit();
            break;
   }     
}



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

   // Iniciamos
   PA_Init();    // Initializes PA_Lib
   PA_InitVBL(); // Initializes a standard VBL
   PA_InitFat(); // Iniciamos FAT para escritura de hiscores
   PA_InitSound(); // Iniciamos sonido
   PA_SetSoundVol (255);
   PA_PlaySimpleSound(1,tetrisa);
   PA_InitText(0,0);   // Iniciamos texto en la capa principal
   PA_InitText(1,0);
   PA_SetTextTileCol(0,3); // Color azul oscuro
   PA_SetTextTileCol(1,3);


   // Variables
   int level = 0, boton = 1, sprites_activos = 0, auxiliar = 0, auxiliar2 = 0;
   int Vsprites[118];

   int hitemp = 0;
   int hi11 = 100000, hi12 = 100000, hi13 = 100000, hi14 = 100000, hi15 = 100000;
   int hi21 = 100000, hi22 = 100000, hi23 = 100000, hi24 = 100000, hi25 = 100000;
   int hi31 = 100000, hi32 = 100000, hi33 = 100000, hi34 = 100000, hi35 = 100000;

   
   //Cargamos fondos
   PA_EasyBgLoad(1,3,bg1);
   PA_EasyBgLoad(0,3,bg0);
   PA_EasyBgLoad(0,2,botonesbg);
   PA_EasyBgLoad(0,1,facil);
   
   

   // Infinite loop to keep the program running
   while (1){      
      while (level == 0){   // Menu         
         if (Stylus.Newpress && PA_StylusInZone(39,15,133,54)){
            if (boton == 1){
               // NIVEL 1 (6)
               PA_PlaySimpleSound(0,choque);
               PA_StopSound(1);
               PA_PlaySimpleSound(1,tetrisb);
               sprites_activos = 6;
               for(auxiliar=0; auxiliar < sprites_activos; auxiliar++) //llenamos el vector
                  Vsprites[auxiliar]=auxiliar;
               Vsprites[sprites_activos]=666;
               level = 1;
               PA_ResetBgSysScreen(0);
               PA_EasyBgLoad(0,3,bg0game);
               PA_InitText(0,0);
               PA_SetTextTileCol(0,1);
               Stylus.X=1; Stylus.Y=1;
               carga_nivel(level);
               PA_OutputText(0,8,1,"Toca para empezar");
               PA_WaitFor(Stylus.Newpress);
               // Empezamos a contar
               PA_VBLCounterStart(0);
               
               while (level == 1){
                  PA_ClearTextBg(0);
                  PA_OutputText(0,3,22,"Puntuacion:%d",PA_VBLCounter[0]);
                  PA_OutputText(0,19,22,"Faltan:%d",sprites_activos);
                  for (auxiliar = 0; auxiliar < sprites_activos; auxiliar ++){ // Comprueba si se ha tocado algun sprite            
                        if (PA_SpriteTouched(Vsprites[auxiliar])){ // Si toca el sprite, eliminalo
                           PA_DeleteSprite(0,Vsprites[auxiliar]);
                           PA_PlaySimpleSound(0,choque);
                           sprites_activos--;
                           
                           //actualizamos vector
                           for (auxiliar2 = auxiliar; auxiliar2 <= sprites_activos; auxiliar2++){
                              if (Vsprites[auxiliar] != 666){
                                 Vsprites[auxiliar2]=Vsprites[auxiliar2+1];
                              }   
                           }   
                        }   
                  }   
                  
                  // Si pulsa select sal de la partida
                  if (Pad.Newpress.Select){
                     PA_ClearTextBg(0);
                     Stylus.X=0; Stylus.Y=0;
                     PA_ResetBgSysScreen(0);
                     PA_EasyBgLoad(1,3,bg1);
                     PA_EasyBgLoad(0,3,bg0);
                     PA_EasyBgLoad(0,2,botonesbg);
                     PA_EasyBgLoad(0,1,facil);
                     level=0;
                     PA_ResetSpriteSys();
                     PA_StopSound(1);
                     PA_PlaySimpleSound(1,tetrisa);
                  }
                     
                  // Si pulsa Start, pausa
                  if (Pad.Newpress.Start){
                     PA_VBLCounterPause(0);
                     PA_EasyBgLoad(0,1,pausa);
                     PA_WaitFor(Stylus.Newpress);
                     PA_DeleteBg(0,1);
                     PA_VBLCounterUnpause(0);
                  }
                  
                  if (sprites_activos == 0){
                     // Pausamos contador y mostramos puntos
                     PA_ResetSpriteSys();
                     PA_VBLCounterPause(0);
                     PA_ClearTextBg(0);
                     PA_SetTextTileCol(0,3);
                     PA_OutputText(0,6,11,"¡Fin de la partida!");
                     PA_OutputText(0,2,13,"Tu puntuacion: %d puntos",PA_VBLCounter[0]);
                     PA_WaitFor(Stylus.Newpress);
                     
                     // Comprobamos si está en el hall de la fama
                     hitemp = PA_VBLCounter[0];
                     PA_VBLCountersReset();
                     if (hitemp<=hi11){
                        hi15 = hi14;
                        hi14 = hi13;
                        hi13 = hi12;
                        hi12 = hi11;
                        hi11 = hitemp;
                       
                     }else if (hitemp<=hi12){
                        hi15 = hi14;
                        hi14 = hi13;
                        hi13 = hi12;
                        hi12 = hitemp;
                       
                       
                     }else if (hitemp<=hi13){
                        hi15 = hi14;
                        hi14 = hi13;
                        hi13 = hitemp;
                       
                     }else if (hitemp<=hi14){
                        hi15 = hi14;
                        hi14 = hitemp;
                       
                     }else if (hitemp<=hi15)
                        hi15 = hitemp;      
                                          
                     // Mostramos Hall de la fama
                     PA_ClearTextBg(0);
                     PA_OutputText(0,5,6,"HALL DE LA FAMA (Lv1)");
                     PA_OutputText(0,10,8,"1");
                     PA_OutputText(0,12,8,"%d",hi11);
                     PA_OutputText(0,10,9,"2");
                     PA_OutputText(0,12,9,"%d",hi12);
                     PA_OutputText(0,10,10,"3");
                     PA_OutputText(0,12,10,"%d",hi13);
                     PA_OutputText(0,10,11,"4");
                     PA_OutputText(0,12,11,"%d",hi14);
                     PA_OutputText(0,10,12,"5");
                     PA_OutputText(0,12,12,"%d",hi15);
                     PA_OutputText(0,6,22,"Toca para continuar");
                     PA_WaitFor(Stylus.Newpress); 
                     
                     //Volvemos al menú
                     PA_ClearTextBg(0);
                     Stylus.X=0; Stylus.Y=0;
                     PA_ResetBgSysScreen(0);
                     PA_EasyBgLoad(1,3,bg1);
                     PA_EasyBgLoad(0,3,bg0);
                     PA_EasyBgLoad(0,2,botonesbg);
                     PA_EasyBgLoad(0,1,facil);
                     level = 0;
                     PA_StopSound(1);
                     PA_PlaySimpleSound(1,tetrisa);// salimos a menu
                  }   
                  PA_CheckLid ();
                  PA_WaitForVBL();   
               }
                  
            }else{
               PA_DeleteBg(0,1);
               PA_EasyBgLoad(0,1,facil);
               boton = 1;
            }
         }else
         
         if (Stylus.Newpress && PA_StylusInZone(151,39,244,79)){
            if (boton == 2){
               // NIVEL 2
               PA_PlaySimpleSound(0,choque);
               PA_StopSound(1);
               PA_PlaySimpleSound(1,tetrisb);
               sprites_activos = 30;
               for(auxiliar=0; auxiliar < sprites_activos; auxiliar++) //llenamos el vector
                  Vsprites[auxiliar]=auxiliar;
               Vsprites[sprites_activos]=666;
               level = 2;
               PA_ResetBgSysScreen(0);
               PA_EasyBgLoad(0,3,bg0game);
               PA_InitText(0,0);
               PA_SetTextTileCol(0,1);
               Stylus.X=1; Stylus.Y=1;
               carga_nivel(level);
               PA_OutputText(0,8,0,"Toca para empezar");
               PA_WaitFor(Stylus.Newpress);
               // Empezamos a contar
               PA_VBLCounterStart(0);
               
               while (level == 2){
                  PA_ClearTextBg(0);
                  PA_OutputText(0,3,23,"Puntuacion:%d",PA_VBLCounter[0]);
                  PA_OutputText(0,19,23,"Faltan:%d",sprites_activos);
                  for (auxiliar = 0; auxiliar < sprites_activos; auxiliar ++){ // Comprueba si se ha tocado algun sprite            
                        if (PA_SpriteTouched(Vsprites[auxiliar])){ // Si toca el sprite, eliminalo
                           PA_DeleteSprite(0,Vsprites[auxiliar]);
                           PA_PlaySimpleSound(0,choque);
                           sprites_activos--;
                           //actualizamos vector
                           for (auxiliar2 = auxiliar; auxiliar2 <= sprites_activos; auxiliar2++){
                              if (Vsprites[auxiliar] != 666){
                                 Vsprites[auxiliar2]=Vsprites[auxiliar2+1];
                              }   
                           }   
                        }   
                  }   
                  
                  // Si pulsa select sal de la partida
                  if (Pad.Newpress.Select){
                     PA_ClearTextBg(0);
                     Stylus.X=0; Stylus.Y=0;
                     PA_ResetBgSysScreen(0);
                     PA_EasyBgLoad(1,3,bg1);
                     PA_EasyBgLoad(0,3,bg0);
                     PA_EasyBgLoad(0,2,botonesbg);
                     PA_EasyBgLoad(0,1,facil);
                     level=0;
                     PA_ResetSpriteSys();
                     PA_StopSound(1);
                     PA_PlaySimpleSound(1,tetrisa);
                  }
                     
                  // Si pulsa Start, pausa
                  if (Pad.Newpress.Start){
                     PA_VBLCounterPause(0);
                     PA_EasyBgLoad(0,1,pausa);
                     PA_WaitFor(Stylus.Newpress);
                     PA_DeleteBg(0,1);
                     PA_VBLCounterUnpause(0);
                  }         
                  
                  if (sprites_activos == 0){
                     // Pausamos contador y mostramos puntos
                     PA_ResetSpriteSys();
                     PA_VBLCounterPause(0);
                     PA_ClearTextBg(0);
                     PA_SetTextTileCol(0,3);
                     PA_OutputText(0,6,11,"¡Fin de la partida!");
                     PA_OutputText(0,2,13,"Tu puntuacion: %d puntos",PA_VBLCounter[0]);
                     PA_WaitFor(Stylus.Newpress);
                     
                     // Comprobamos si está en el hall de la fama
                     hitemp = PA_VBLCounter[0];
                     PA_VBLCountersReset();
                     if (hitemp<hi21){
                        hi25 = hi24;
                        hi24 = hi23;
                        hi23 = hi22;
                        hi22 = hi21;
                        hi21 = hitemp;
                     }else if (hitemp<hi22){
                        hi25 = hi24;
                        hi24 = hi23;
                        hi23 = hi22;
                        hi22 = hitemp;
                     }else if (hitemp<hi23){
                        hi25 = hi24;
                        hi24 = hi23;
                        hi23 = hitemp;
                     }else if (hitemp<hi24){
                        hi25 = hi24;
                        hi24 = hitemp;
                     }else if (hitemp<hi25)
                        hi25 = hitemp;                           
                     
                     // Mostramos Hall de la fama
                     PA_ClearTextBg(0);
                     PA_OutputText(0,5,6,"HALL DE LA FAMA (Lv2)");
                     PA_OutputText(0,10,8,"1");
                     PA_OutputText(0,12,8,"%d",hi21);
                     PA_OutputText(0,10,9,"2");
                     PA_OutputText(0,12,9,"%d",hi22);
                     PA_OutputText(0,10,10,"3");
                     PA_OutputText(0,12,10,"%d",hi23);
                     PA_OutputText(0,10,11,"4");
                     PA_OutputText(0,12,11,"%d",hi24);
                     PA_OutputText(0,10,12,"5");
                     PA_OutputText(0,12,12,"%d",hi25);
                     PA_OutputText(0,6,22,"Toca para continuar");
                     PA_WaitFor(Stylus.Newpress); 
                     
                     //Volvemos al menú
                     PA_ClearTextBg(0);
                     Stylus.X=0; Stylus.Y=0;
                     PA_ResetBgSysScreen(0);
                     PA_EasyBgLoad(1,3,bg1);
                     PA_EasyBgLoad(0,3,bg0);
                     PA_EasyBgLoad(0,2,botonesbg);
                     PA_EasyBgLoad(0,1,facil);
                     level = 0; // salimos a menu
                     PA_StopSound(1);
                     PA_PlaySimpleSound(1,tetrisa);
                  }     
                  PA_CheckLid ();
                  PA_WaitForVBL();   
               }
               
            }else{
               PA_DeleteBg(0,1);
               PA_EasyBgLoad(0,1,medio);
               boton = 2;
            }
         }else         
         
         if (Stylus.Newpress && PA_StylusInZone(20,70,113,109)){
            if (boton == 3){
               // NIVEL 3
               PA_PlaySimpleSound(0,choque);
               PA_StopSound(1);
               PA_PlaySimpleSound(1,tetrisb);
               sprites_activos = 117;
               for(auxiliar=0; auxiliar < sprites_activos; auxiliar++) //llenamos el vector
                  Vsprites[auxiliar]=auxiliar;
               Vsprites[sprites_activos]=666;
               level = 3;
               PA_ResetBgSysScreen(0);
               PA_EasyBgLoad(0,3,bg0game);
               PA_InitText(0,0);
               PA_SetTextTileCol(0,1);
               Stylus.X=1; Stylus.Y=1;
               carga_nivel(level);
               PA_OutputText(0,8,1,"Toca para empezar");
               PA_WaitFor(Stylus.Newpress);
               // Empezamos a contar
               PA_VBLCounterStart(0);
               
               while (level == 3){
                  PA_ClearTextBg(0);
                  PA_OutputText(0,3,23,"Puntuacion:%d",PA_VBLCounter[0]);
                  PA_OutputText(0,19,23,"Faltan:%d",sprites_activos);
                  for (auxiliar = 0; auxiliar < sprites_activos; auxiliar ++){ // Comprueba si se ha tocado algun sprite            
                        if (PA_SpriteTouched(Vsprites[auxiliar])){ // Si toca el sprite, eliminalo
                           PA_DeleteSprite(0,Vsprites[auxiliar]);
                           PA_PlaySimpleSound(0,choque);
                           sprites_activos--;
                           //actualizamos vector
                           for (auxiliar2 = auxiliar; auxiliar2 <= sprites_activos; auxiliar2++){
                              if (Vsprites[auxiliar] != 666){
                                 Vsprites[auxiliar2]=Vsprites[auxiliar2+1];
                              }   
                           }   
                        }   
                  }   
                  
                  // Si pulsa select sal de la partida
                  if (Pad.Newpress.Select){
                     PA_ClearTextBg(0);
                     Stylus.X=0; Stylus.Y=0;
                     PA_ResetBgSysScreen(0);
                     PA_EasyBgLoad(1,3,bg1);
                     PA_EasyBgLoad(0,3,bg0);
                     PA_EasyBgLoad(0,2,botonesbg);
                     PA_EasyBgLoad(0,1,facil);
                     level=0;
                     PA_ResetSpriteSys();
                     PA_StopSound(1);
                     PA_PlaySimpleSound(1,tetrisa);
                  }         
                     
                  // Si pulsa Start, pausa
                  if (Pad.Newpress.Start){
                     PA_VBLCounterPause(0);
                     PA_EasyBgLoad(0,1,pausa);
                     PA_WaitFor(Stylus.Newpress);
                     PA_DeleteBg(0,1);
                     PA_VBLCounterUnpause(0);
                  }
                  
                  if (sprites_activos == 0){
                     // Pausamos contador y mostramos puntos
                     PA_ResetSpriteSys();
                     PA_VBLCounterPause(0);
                     PA_ClearTextBg(0);
                     PA_SetTextTileCol(0,3);
                     PA_OutputText(0,6,11,"¡Fin de la partida!");
                     PA_OutputText(0,2,13,"Tu puntuacion: %d puntos",PA_VBLCounter[0]);
                     PA_WaitFor(Stylus.Newpress);
                     
                     // Comprobamos si está en el hall de la fama
                     hitemp = PA_VBLCounter[0];
                     PA_VBLCountersReset();
                     if (hitemp<hi31){
                        hi35 = hi34;
                        hi34 = hi33;
                        hi33 = hi32;
                        hi32 = hi31;
                        hi31 = hitemp;
                     }else if (hitemp<hi32){
                        hi35 = hi34;
                        hi34 = hi33;
                        hi33 = hi32;
                        hi32 = hitemp;
                     }else if (hitemp<hi33){
                        hi35 = hi34;
                        hi34 = hi33;
                        hi33 = hitemp;
                     }else if (hitemp<hi34){
                        hi35 = hi34;
                        hi34 = hitemp;
                     }else if (hitemp<hi35)
                        hi35 = hitemp;                        
                     
                     // Mostramos Hall de la fama
                     PA_ClearTextBg(0);
                     PA_OutputText(0,5,6,"HALL DE LA FAMA (Lv3)");
                     PA_OutputText(0,10,8,"1");
                     PA_OutputText(0,12,8,"%d",hi31);
                     PA_OutputText(0,10,9,"2");
                     PA_OutputText(0,12,9,"%d",hi32);
                     PA_OutputText(0,10,10,"3");
                     PA_OutputText(0,12,10,"%d",hi33);
                     PA_OutputText(0,10,11,"4");
                     PA_OutputText(0,12,11,"%d",hi34);
                     PA_OutputText(0,10,12,"5");
                     PA_OutputText(0,12,12,"%d",hi35);
                     PA_OutputText(0,6,22,"Toca para continuar");
                     PA_WaitFor(Stylus.Newpress); 
                     
                     //Volvemos al menú
                     PA_ClearTextBg(0);
                     Stylus.X=0; Stylus.Y=0;
                     PA_ResetBgSysScreen(0);
                     PA_EasyBgLoad(1,3,bg1);
                     PA_EasyBgLoad(0,3,bg0);
                     PA_EasyBgLoad(0,2,botonesbg);
                     PA_EasyBgLoad(0,1,facil);
                     level = 0; // salimos a menu
                     PA_StopSound(1);
                     PA_PlaySimpleSound(1,tetrisa);
                  }     
                  PA_CheckLid ();
                  PA_WaitForVBL();   
               }
            }else{
               PA_DeleteBg(0,1);
               PA_EasyBgLoad(0,1,dificil);
               boton = 3;
            }
         }else
         
         if (Stylus.Newpress && PA_StylusInZone(131,97,225,136)){
            if (boton == 4){
               PA_PlaySimpleSound(0,choque);
               PA_ResetBgSysScreen(0);
               PA_EasyBgLoad(0,3,bg0game);
               PA_InitText(0,0);
               PA_SetTextTileCol(0,1);
               
               // Hi-Scores lv1
               PA_ClearTextBg(0);
               PA_OutputText(0,5,6,"HALL DE LA FAMA (Lv1)");
               PA_OutputText(0,10,8,"1");
               PA_OutputText(0,12,8,"%d",hi11);
               PA_OutputText(0,10,9,"2");
               PA_OutputText(0,12,9,"%d",hi12);
               PA_OutputText(0,10,10,"3");
               PA_OutputText(0,12,10,"%d",hi13);
               PA_OutputText(0,10,11,"4");
               PA_OutputText(0,12,11,"%d",hi14);
               PA_OutputText(0,10,12,"5");
               PA_OutputText(0,12,12,"%d",hi15);
               PA_OutputText(0,6,22,"Toca para continuar");
               PA_WaitFor(Stylus.Newpress);
               PA_PlaySimpleSound(0,choque);
               
               // Hi-Scores lv2           
               PA_ClearTextBg(0);
               PA_OutputText(0,5,6,"HALL DE LA FAMA (Lv2)");
               PA_OutputText(0,10,8,"1");
               PA_OutputText(0,12,8,"%d",hi21);
               PA_OutputText(0,10,9,"2");
               PA_OutputText(0,12,9,"%d",hi22);
               PA_OutputText(0,10,10,"3");
               PA_OutputText(0,12,10,"%d",hi23);
               PA_OutputText(0,10,11,"4");
               PA_OutputText(0,12,11,"%d",hi24);
               PA_OutputText(0,10,12,"5");
               PA_OutputText(0,12,12,"%d",hi25);
               PA_OutputText(0,6,22,"Toca para continuar");
               PA_WaitFor(Stylus.Newpress);
               PA_PlaySimpleSound(0,choque);
               
               // Hi-Scores lv3
               PA_ClearTextBg(0);
               PA_OutputText(0,5,6,"HALL DE LA FAMA (Lv3)");
               PA_OutputText(0,10,8,"1");
               PA_OutputText(0,12,8,"%d",hi31);
               PA_OutputText(0,10,9,"2");
               PA_OutputText(0,12,9,"%d",hi32);
               PA_OutputText(0,10,10,"3");
               PA_OutputText(0,12,10,"%d",hi33);
               PA_OutputText(0,10,11,"4");
               PA_OutputText(0,12,11,"%d",hi34);
               PA_OutputText(0,10,12,"5");
               PA_OutputText(0,12,12,"%d",hi35);
               PA_OutputText(0,6,22,"Toca para continuar");
               PA_WaitFor(Stylus.Newpress);
               PA_PlaySimpleSound(0,choque);
               
               //Volvemos al menú
               PA_ClearTextBg(0);
               PA_SetTextTileCol(0,3);
               Stylus.X=0; Stylus.Y=0;
               PA_ResetBgSysScreen(0);
               PA_EasyBgLoad(1,3,bg1);
               PA_EasyBgLoad(0,3,bg0);
               PA_EasyBgLoad(0,2,botonesbg);
               PA_EasyBgLoad(0,1,facil);
               level = 0; // salimos a menu
            }else{
               PA_DeleteBg(0,1);
               PA_EasyBgLoad(0,1,hiscores);
               boton = 4;
            }
         }else
         
         if (Stylus.Newpress && PA_StylusInZone(0,153,94,192)){
            // Creditos
            PA_PlaySimpleSound(0,choque);
            PA_ResetBgSysScreen(0);
            PA_InitText(0,0);
            PA_SetTextTileCol(0,3);
            Stylus.X=0; Stylus.Y=0;
            PA_EasyBgLoad(0,3,bg0game);
            PA_OutputSimpleText(0,5,9," Xplosion Time! 1.0");
            PA_OutputSimpleText(0,5,10," Creado, programado");
            PA_OutputSimpleText(0,5,11,"  y disenyado por:");
            PA_OutputSimpleText(0,5,13," JAVIER MOYA NAJERA");
            PA_OutputSimpleText(0,5,17,"               2oo8");
            PA_WaitFor(Stylus.Newpress);               
            PA_ResetBgSysScreen(0);
            PA_ClearTextBg(0);
            PA_EasyBgLoad(0,3,bg0);
            PA_EasyBgLoad(0,2,botonesbg);
            PA_EasyBgLoad(0,1,facil);
            boton = 1;
         }else      
         
         if (Stylus.Newpress && PA_StylusInZone(163,153,256,192)){
            // Instrucciones
            PA_PlaySimpleSound(0,choque);
            PA_ResetBgSysScreen(0);
            PA_InitText(0,0);
            PA_SetTextTileCol(0,3);
            Stylus.X=0; Stylus.Y=0;
            PA_EasyBgLoad(0,3,bg0game);
            PA_OutputSimpleText(0,1,6,"El juego consiste en explotar");
            PA_OutputSimpleText(0,1,7,"todas las bolas en el menor");
            PA_OutputSimpleText(0,1,8,"tiempo posible. Para ello, usa");
            PA_OutputSimpleText(0,1,9,"el Stylus de tu Nintendo DS.");
            PA_OutputSimpleText(0,1,11,"Otros botones:");
            PA_OutputSimpleText(0,1,12,"  Select - Abandonar partida");
            PA_OutputSimpleText(0,1,13,"  Start - Pausar partida");
            PA_WaitFor(Stylus.Newpress);               
            PA_ResetBgSysScreen(0);
            PA_ClearTextBg(0);
            PA_EasyBgLoad(0,3,bg0);
            PA_EasyBgLoad(0,2,botonesbg);
            PA_EasyBgLoad(0,1,facil);
            boton = 1;
         }                  
         PA_CheckLid ();            
         PA_WaitForVBL();
      }   
   
   

      PA_CheckLid ();
      PA_WaitForVBL();
   }
   
   return 0;
} // End of main()

Buen homebrew, lo pruebo luego y te cuento =D.

PD: Primero! XD
Cacho codigaco, madre mia, te habra costao lo tuyo
sostaco escribió:Cacho codigaco, madre mia, te habra costao lo tuyo


nah. Hay tanto código por no usar funciones, xq si te fijas es todo el rato lo mismo xDD
sostaco escribió:Cacho codigaco, madre mia, te habra costao lo tuyo

Bah... Eso no es na... [sonrisa]

PD: En nivel difícil a veces me peta el juego.
ANTONIOND escribió:
sostaco escribió:Cacho codigaco, madre mia, te habra costao lo tuyo

Bah... Eso no es na... [sonrisa]

PD: En nivel difícil a veces me peta el juego.


al reventar la primera bola o xq si?
Cuando le parece al juego, puede ser al principio, en el medio...
:S que raro... a mi no me pasa ni en el emu ni con el M3R...
ANTONIOND escribió:A mi en el NO$GBA.


Nada, lo acabo de probar en el NO$GBA 2.6 varias veces y me tira bien. No sé por qué puede ser...
keda escribió:
ANTONIOND escribió:A mi en el NO$GBA.


Nada, lo acabo de probar en el NO$GBA 2.6 varias veces y me tira bien. No sé por qué puede ser...

Yo uso justamente ese... Lo que pasa es q me pongo a hacer clic a lo loco, igual es eso.
prueba a mantener el boton del ratón apretado y mover el cursor sin tanto clic a ver
Da igual, sigue pasando (nivel difícil).
ANTONIOND escribió:Da igual, sigue pasando (nivel difícil).

pues ni idea... en el PC de mi novia tp pasa.
Si señor, vaya cracks del Palib, a ver si me meto en el mundo Palib y empiezo con movidas hombrew...
que envidia...
¡A probarlo! [oki] [plas]
Tampoco hay que saber ingeniería para saber programar XD
alexpowerup escribió:Tampoco hay que saber ingeniería para saber programar XD

Lo que no quita que haya que tener un mínimo de inteligencia para hacer algo decente. ;)
ANTONIOND escribió:
alexpowerup escribió:Tampoco hay que saber ingeniería para saber programar XD

Lo que no quita que haya que tener un mínimo de inteligencia para hacer algo decente. ;)


Hombre, creo que no soy un idiota.
Pero me da pereza empezar, así que se me podría llamar vago...
Eso si, como empiece no paro..

Recuerdo que hace 2 años hice una web en flash con ayuda de un programa llamado SwishMax, y una vez aprendí cuatro cosas, fue coser y cantar hacerla.
Para quien quiera verla: http://www.legiondehielo.tk/
Es una pagina sin terminar, para un clan de Warcraft 3.

Si programar C o NDS es parecido a Flash (del que no recuerdo na), no será muy dificil...
con los tutos de Plata más lo que mires por internet es muy fácil hacer algo como el juego éste. Es cuestión de echarle ganas ;)
keda escribió:con los tutos de Plata más lo que mires por internet es muy fácil hacer algo como el juego éste. Es cuestión de echarle ganas ;)


Ok, me pondré cuando acabe de traducir el TWEWY y el Luminous Arc... [+risas]
Osea, como pronto para finales de verano, y eso a toda pastilla...

SaluDS!
lamateporunyogur escribió:
keda escribió:con los tutos de Plata más lo que mires por internet es muy fácil hacer algo como el juego éste. Es cuestión de echarle ganas ;)


Ok, me pondré cuando acabe de traducir el TWEWY y el Luminous Arc... [+risas]
Osea, como pronto para finales de verano, y eso a toda pastilla...

SaluDS!


Suerte entonces ^^
20 respuestas