/* ************************************************************************* */ void debug() { PA_OutputSimpleText(1, 0, 0, "Lets go online..."); PA_InitWifi(); PA_ConnectWifiWFC(); char* buffer = malloc(256*256); PA_GetHTTP(buffer,"http://delfare.pizz.biz/getip.php3"); PA_OutputSimpleText(1, 0, 1, buffer); PA_GetHTTP(buffer,"http://deanrather.com/index.php"); PA_OutputSimpleText(1, 0, 2, buffer); PA_GetHTTP(buffer,"http://deanrather.com/highscores/"); PA_OutputSimpleText(1, 0, 3, buffer); PA_OutputSimpleText(1, 0, 4, "Wow, That was fun!!"); PA_WaitFor(Pad.Newpress.Start); }
/** * Inits things for the game */ void init() { // Init PA PA_Init(); PA_InitVBL(); // Init Sound PA_InitSound(); // Init Text PA_InitText(SCREEN_TOP, 0); // debug(); // Roll pre-game credits if(false) { // Code I wish I could put into rollPreCredits(); u8 counter=0; // used to count till timeout // Text clear_text(); print(5,3,PRECREDITS); // logo on bottom screen PA_EasyBgLoad(SCREEN_BOTTOM,3, splash_pong); // Wait & fade out counter = 0; PA_WaitFor(Pad.Newpress.A || Pad.Newpress.Start || Stylus.Newpress || counter++>IDLETIME); fadeOut(); // run DSX/Comp screen PA_EasyBgLoad(SCREEN_TOP, 3, splash_comp); PA_EasyBgLoad(SCREEN_BOTTOM,3, splash_comp2); // Wait & fade out counter = 0; PA_WaitFor(Pad.Newpress.A || Pad.Newpress.Start || Stylus.Newpress || counter++>IDLETIME); fadeOut(); // run PA_Lib & Eclipse screens PA_EasyBgLoad(SCREEN_TOP, 3, splash_palib); PA_EasyBgLoad(SCREEN_BOTTOM,3, splash_eclipse); // Wait & fade out counter = 0; PA_WaitFor(Pad.Newpress.A || Pad.Newpress.Start || Stylus.Newpress || counter++>IDLETIME); fadeOut(); //rollPreCredits(); } PA_InitText(SCREEN_TOP, 0); PA_SetTextCol(SCREEN_TOP, 0, 0, 0); // Some variables game.smartAI = 0; game.score = 0; game.lives = 3; game.rank = ""; game.gameover = false; // Load Palletes PA_LoadSpritePal(SCREEN_TOP, 1, (void*)ball_Pal); PA_LoadSpritePal(SCREEN_BOTTOM, 2, (void*)ball_Pal); PA_LoadSpritePal(SCREEN_TOP, 3, (void*)paddle_a_Pal); PA_LoadSpritePal(SCREEN_BOTTOM, 4, (void*)paddle_b_Pal); // create sprites PA_CreateSprite(SCREEN_BOTTOM, BALL_BOTTOM, (void*)ball_Sprite, OBJ_SIZE_16X16, 1, 1, -BALL_WIDTH, -BALL_HEIGHT); PA_CreateSprite(SCREEN_TOP, BALL_TOP, (void*)ball_Sprite, OBJ_SIZE_16X16, 1, 2, -BALL_WIDTH, -BALL_HEIGHT); PA_CreateSprite(SCREEN_BOTTOM, PADDLE1, (void*)paddle_a_Sprite, OBJ_SIZE_32X16, 1, 3, -PADDLE_WIDTH, -PADDLE_HEIGHT); PA_CreateSprite(SCREEN_TOP, PADDLE2, (void*)paddle_b_Sprite, OBJ_SIZE_32X16, 1, 4, -PADDLE_WIDTH, -PADDLE_HEIGHT); // create backgrounds PA_EasyBgLoad(SCREEN_TOP, 2, background_top); PA_EasyBgLoad(SCREEN_BOTTOM, 2, background_bottom); // Init high score to 0. (Should probably read from a save) highscore.points = 0; highscore.name = "No one"; highscore.submitted = false; }
int main(){ // Initialisation de la PAlib de l'affichage et du son PA_Init(); // Initialisation de la PALib PA_InitVBL(); // Initialisation de l'affichage AS_Init(AS_MODE_16CH); //son AS_SetDefaultSettings(AS_PCM_8BIT, 16384, 0); //son (type,rate) splash(); //Splashscreen // Initialisation du texte PA_LoadDefaultText(0, 0); //bas PA_LoadDefaultText(1, 0); //haut PA_SetTextTileCol(1, TEXT_BLACK); // texte en noir (haut) PA_SetTextTileCol(0, TEXT_BLACK); // texte en noir (bas) //Palettes des couleurs pour les sprites des boutons (une seule suffit) (numéro 1) PA_LoadSpritePal(0, 1, (void*)plus_Pal); PA_LoadBackground(1, 1, &titre); // background de l'écran du haut //Accueil AS_SoundDefaultPlay(pinball, pinball_size, 127, 64, true, 0); //musique de fond en boucle fonduentree(); //fondu d'entrée if(PA_UserInfo.Language == 2) { PA_LoadBackground(0, 1, &jouer); } else { PA_LoadBackground(0, 1, &play); } PA_OutputText(1, 17, 8, "2.1"); //version PA_WaitFor(Pad.Newpress.Anykey || Stylus.Newpress); AS_SoundQuickPlay(clic); fondusortie(); //Nouvelle partie : etiquette et reset debut: PA_ClearTextBg(0); //efface tout le texte PA_ResetSpriteSys(); //efface tout les sprites PA_OutputText(1,1,22," "); // Les variables u32 nmax = 0; //Nombre maximal u32 nmin = 0; //Nombre minimal u32 coup = 0; //Nombre de coups u32 nombre = 0; //Nombre (valeur de départ) u32 diff = 0; u32 temps = 0; //Sélection de la difficulté. fonduentree(); PA_LoadBackground(0, 1, &niveau); while(1) { if(PA_UserInfo.Language == 2) { PA_OutputText(0,5,4,"Facile (B)"); PA_OutputText(0,5,5,"(entre 10 et 25)"); PA_OutputText(0,5,11,"Normal (Y)"); PA_OutputText(0,5,12,"(entre 10 et 60)"); PA_OutputText(0,5,18,"Difficile (X)"); PA_OutputText(0,5,19,"(entre 10 et 95)"); } else { PA_OutputText(0,5,4,"Easy (B)"); PA_OutputText(0,5,5,"(between 10 and 25)"); PA_OutputText(0,5,11,"Normal (Y)"); PA_OutputText(0,5,12,"(between 10 and 60)"); PA_OutputText(0,5,18,"Hard (X)"); PA_OutputText(0,5,19,"(between 10 and 95)"); } if((PA_StylusInZone(29, 21, 227, 57) && Stylus.Newpress) || Pad.Newpress.A) { nombre = 12; nmax = 25; nmin = 10; diff = 1; break; } if((PA_StylusInZone(29, 79, 227, 115) && Stylus.Newpress) || Pad.Newpress.A) { nombre = 35; nmax = 60; nmin = 10; diff = 2; break; } if((PA_StylusInZone(29, 135, 227, 170) && Stylus.Newpress) || Pad.Newpress.A) { nombre = 52; nmax = 95; nmin = 10; diff = 3; break; } PA_WaitForVBL(); } u32 dsnum = PA_RandMinMax(nmin, nmax); //La valeur aléatoire entre 40 et 70 PA_LoadBackground(0, 1, &jeu); //chargement du bg de jeu //Reset pour effacer l'écran de choix de la difficulté PA_ClearTextBg(0); //Bouton + - et +5 -5 PA_CreateSprite(0, 0, (void*)plus_Sprite, OBJ_SIZE_32X32, 1, 1, 40, 33); PA_CreateSprite(0, 1, (void*)moins_Sprite, OBJ_SIZE_32X32, 1, 1, 40, 110); PA_CreateSprite(0, 2, (void*)okb_Sprite, OBJ_SIZE_32X32, 1, 1, 218, 157); PA_CreateSprite(0, 4, (void*)moins5_Sprite, OBJ_SIZE_32X32, 1, 1, 75, 110); PA_CreateSprite(0, 5, (void*)plus5_Sprite, OBJ_SIZE_32X32, 1, 1, 75, 33); // Boucle principale PA_VBLCounterStart(0); while (1) { PA_OutputText(0,8,22,"%d", coup); //PA_OutputText(1,1,20,"La DS pense à : %d", dsnum); // Débug //PA_OutputText(1,1,19,"Temps : %d", PA_VBLCounter[0]/60); // Débug if(PA_UserInfo.Language == 2) { if(diff == 1) { PA_OutputText(1,1,22,"Facile (entre %d et %d)",nmin, nmax); } if(diff == 2) { PA_OutputText(1,1,22,"Normal (entre %d et %d)",nmin, nmax); } if(diff == 3) { PA_OutputText(1,1,22,"Difficile (entre %d et %d)",nmin, nmax); } } else { if(diff == 1) { PA_OutputText(1,1,22,"Easy (between %d and %d)",nmin, nmax); } if(diff == 2) { PA_OutputText(1,1,22,"Normal (between %d and %d)",nmin, nmax); } if(diff == 3) { PA_OutputText(1,1,22,"Hard (between %d and %d)",nmin, nmax); } } if(PA_UserInfo.Language == 2) { PA_OutputText(0,4,10,"Votre nombre:"); } else { PA_OutputText(0,4,10,"Your number:"); } PA_OutputText(0,4,12,"%d", nombre); if(PA_UserInfo.Language == 2) { PA_OutputText(0,1,22,"Coups:"); } else { PA_OutputText(0,1,22,"Tries:"); } if(Pad.Newpress.Up || (Stylus.Newpress && PA_SpriteTouched(0))) { nombre++; AS_SoundQuickPlay(clic); } if(Pad.Newpress.Down || (Stylus.Newpress && PA_SpriteTouched(1))) { nombre--; AS_SoundQuickPlay(clic); } if(Pad.Newpress.Left || (Stylus.Newpress && PA_SpriteTouched(4))) { nombre = nombre - 5; AS_SoundQuickPlay(clic); } if(Pad.Newpress.Right || (Stylus.Newpress && PA_SpriteTouched(5))) { nombre = nombre + 5; AS_SoundQuickPlay(clic); } if(nombre < nmin) { nombre = nmin; } if(nombre > nmax) { nombre = nmax; } if((PA_SpriteTouched(2) && Stylus.Newpress) || Pad.Newpress.A) { coup++; AS_SoundQuickPlay(clic); if (dsnum > nombre) { PA_OutputText(0,25,11," "); PA_OutputText(0,25,11,"Plus !"); } if (dsnum < nombre) { PA_OutputText(0,25,11," "); if(PA_UserInfo.Language == 2) { PA_OutputText(0,25,11,"Moins !"); } else { PA_OutputText(0,25,11,"Minus !"); } } if (dsnum == nombre) { temps = PA_VBLCounter[0]/60; PA_WaitFor(Stylus.Released || Pad.Released.A); PA_ResetSpriteSys(); PA_LoadBackground(0, 1, &gagne); PA_ClearTextBg(0); //efface tout le texte AS_SoundQuickPlay(ok); //Smiley qui applaudit PA_LoadSpritePal(0, 0, (void*)applaudissement_Pal); // la palette du smiley (num 0) PA_CreateSprite(0, 3,(void*)applaudissement_Sprite, OBJ_SIZE_32X32,1, 0, 180, 45); PA_StartSpriteAnimEx(0, 3, 0, 4, 12, ANIM_LOOP, 7); if(PA_UserInfo.Language == 2) { PA_OutputText(0,15,6,"Gagné !"); PA_OutputText(0,6,8,"Vous avez trouvé %d", dsnum); PA_OutputText(0,6,9,"en %d secondes", temps); PA_OutputText(0,6,10,"et %d coups.", coup); PA_OutputText(0,6,16,"START ou touchez"); PA_OutputText(0,6,17,"l'écran pour rejouer."); } else { PA_OutputText(0,15,6,"Win !"); PA_OutputText(0,6,9,"You find %d", dsnum); PA_OutputText(0,6,10,"in %d seconds", temps); PA_OutputText(0,6,11,"and %d tests. ", coup); PA_OutputText(0,6,15,"START or touch"); PA_OutputText(0,6,16,"the screen to replay."); } //Recommencer le jeu avec l'etiquette debut PA_WaitFor(Stylus.Newpress || Pad.Newpress.Start); AS_SoundQuickPlay(clic); goto debut; } } PA_WaitForVBL(); //Rafraichissement à ne pas bouger/enlever } return 0; }
int main(void) { // init PA_Lib PA_Init(); PA_InitVBL(); PA_InitText(1, 0); PA_InitText(0, 0); // init EFSlib & libfat if(EFS_Init(EFS_AND_FAT | EFS_DEFAULT_DEVICE, NULL)) { PA_OutputSimpleText(1, 0, 0, "EFS init ok"); PA_OutputText(1, 0, 1, "found NDS path: %s", efs_path); DIR_ITER* dir; struct stat st; s8 nb; FILE* file; u8* buffer; int i, size; // open a text file and read its contents file = fopen("/test.txt", "rb"); if(file != NULL) { // get file size using stat stat("/test.txt", &st); size = st.st_size; buffer = (u8*)malloc(size); fread(buffer, 1, size, file); buffer[size-1] = '\0'; PA_OutputText(1, 0, 4, "/test.txt content: '%s'", buffer); PA_OutputText(1, 10, 5, "size: %d bytes", size); free(buffer); fclose(file); } // open another file, read its content file = fopen("/folder/test.txt", "rb"); if(file != NULL) { // get file size fseek(file, 0, SEEK_END); size = ftell(file); fseek(file, 0, SEEK_SET); buffer = (u8*)malloc(size); fread(buffer, 1, size, file); buffer[size-1] = '\0'; PA_OutputText(1, 0, 7, "/folder/test.txt content:\n%s", buffer); free(buffer); fclose(file); } // reopen the file, modify its content file = fopen("/folder/test.txt", "rb+"); if(file != NULL) { nb = fwrite("16b Written OK!", 1, 16, file); PA_OutputText(1, 0, 10, "write test done! : %d bytes", nb); fclose(file); } // reopen another file, read its content again, 1 byte at a time file = fopen("/folder/dummy/.././test.txt", "rb"); // funky path to test relative path parsing if(file != NULL) { // get file size fseek(file, 0, SEEK_END); size = ftell(file); fseek(file, 0, SEEK_SET); buffer = (u8*)malloc(size); i = 0; while(i < size) { fread(&buffer[i], 1, 1, file); i++; } buffer[size-1] = '\0'; PA_OutputText(1, 0, 12, "/folder/test.txt new content:\n%s", buffer); free(buffer); fclose(file); } PA_OutputSimpleText(1, 0, 15, "Press A for directory tests."); PA_WaitFor(Pad.Newpress.A); // open root directory then list its content PA_OutputText(0, 0, 0, "Listing '/' directory:"); dir = diropen("."); if(dir != NULL) { i = 0; buffer = (u8*)malloc(EFS_MAXNAMELEN); while(!(dirnext(dir, (char*)buffer, &st))) { if(st.st_mode & S_IFDIR) PA_OutputText(0, 0, i++, "DIR : %s", buffer); else PA_OutputText(0, 0, i++, "FILE: %s, %d bytes", buffer, st.st_size); } PA_OutputSimpleText(0, 0, i++, "end of directory."); PA_OutputSimpleText(0, 0, i++, "directory reset, first file is:"); dirreset(dir); dirnext(dir, (char*)buffer, &st); if(st.st_mode & S_IFDIR) PA_OutputText(0, 0, i++, "DIR : %s", buffer); else PA_OutputText(0, 0, i++, "FILE: %s, %d bytes", buffer, st.st_size); dirclose(dir); free(buffer); } // chdir to a directory then list its content PA_OutputSimpleText(0, 0, i++, "Listing '/list/' directory:"); chdir("/list/"); dir = diropen("./"); if(dir != NULL) { buffer = (u8*)malloc(EFS_MAXNAMELEN); while(!(dirnext(dir, (char*)buffer, &st))) { if(st.st_mode & S_IFDIR) PA_OutputText(0, 0, i++, "DIR : %s", buffer); else PA_OutputText(0, 0, i++, "FILE: %s, %d bytes", buffer, st.st_size); } PA_OutputSimpleText(0, 0, i++, "end of directory."); dirclose(dir); free(buffer); } } else { PA_OutputSimpleText(1, 0, 0, "EFS init error!"); } while(1) { PA_WaitForVBL(); } return 0; }
// Main function int main(void) { // PAlib init PA_Init(); PA_InitVBL(); PA_InitText(0, 0); // Initialise the text system on the top screen PA_InitText(1, 0); // Initialise the text system on the top screen PA_OutputSimpleText(1, 0, 5, "Please insert your DS Motion and press any key"); // Ask to insert the DS Motion... PA_WaitFor(Pad.Newpress.Anykey); // Wait for any key to be pressed before continuing... PA_ClearTextBg(1); // Erase text screen... // Turn on the DS Motion... PA_MotionInit(); while ( !PA_CheckDSMotion()) { // Checks for the DS Motion, continues looking for it until it actually finds it... PA_WaitForVBL(); // If no DSMotion found... PA_OutputText(1, 0, 5, " DS Motion not found ! \nPlease insert your DS Motion and press any key"); // Ask to insert the DS Motion... again... PA_WaitFor(Pad.Newpress.Anykey); // Wait for any key to be pressed before continuing... PA_MotionInit(); } PA_ClearTextBg(1); // erase the text... PA_MotionToPad(1); // Overrides the pad keys and puts the DS Motion instead PA_LoadSpritePal(0, 0, (void*)sprite0_Pal); // Palette.... s32 x = 120; s32 y = 64; PA_CreateSprite(0, 0,(void*)som_Sprite, OBJ_SIZE_16X32,1, 0, x, y); // Sprite while(1) { // Animation code... if(Pad.Newpress.Up) PA_StartSpriteAnim(0, 0, 0, 3, 6); if(Pad.Newpress.Down) PA_StartSpriteAnim(0, 0, 8, 11, 6); if(Pad.Newpress.Right) { PA_StartSpriteAnim(0, 0, 4, 7, 6); PA_SetSpriteHflip(0, 0, 0); } if(Pad.Newpress.Left) { PA_StartSpriteAnim(0, 0, 4, 7, 6); PA_SetSpriteHflip(0, 0, 1); } if(!((Pad.Held.Left)||(Pad.Held.Up)||(Pad.Held.Down)||(Pad.Held.Right))) PA_SpriteAnimPause(0, 0, 1); // Moving Code y += Pad.Held.Down - Pad.Held.Up; x += Pad.Held.Right - Pad.Held.Left; PA_SetSpriteXY(0, 0, x, y); PA_OutputText(1, 3, 7, "Up : %d-%d-%d", Pad.Newpress.Up, Pad.Held.Up, Pad.Released.Up); PA_OutputText(1, 3, 8, "Down : %d-%d-%d", Pad.Newpress.Down, Pad.Held.Down, Pad.Released.Down); PA_OutputText(1, 3, 9, "Left : %d-%d-%d", Pad.Newpress.Left, Pad.Held.Left, Pad.Released.Left); PA_OutputText(1, 3, 10, "Right : %d-%d-%d", Pad.Newpress.Right, Pad.Held.Right, Pad.Released.Right); PA_WaitForVBL(); } return 0; }
int main() { PA_Init(); // Initialisation de la PALib PA_InitVBL(); // Initialisation de l'affichage splash(); // Initialisation du texte, de la palette et du son PA_LoadDefaultText(0, 0); //bas PA_LoadDefaultText(1, 0); //haut PA_SetTextTileCol(1, TEXT_BLACK); // texte en noir (haut) PA_SetTextTileCol(0, TEXT_BLACK); // texte en noir (bas) PA_LoadSpritePal(0, 1, (void*)feu_Pal); // palette du feu PA_LoadSpritePal(0, 2, (void*)mario_Pal); //palette pour mario PA_LoadSpritePal(0, 3, (void*)boite_Pal); //palette pour la boite PA_LoadSpritePal(0, 4, (void*)piece_Pal); //palette pour la piece AS_Init(AS_MODE_16CH); //son AS_SetDefaultSettings(AS_PCM_8BIT, 8000, 0); //son (type,rate) AS_SoundDefaultPlay(fond_smgboss1, fond_smgboss1_size, 50, 64, true, 0); //musique de fond en boucle //Accueil accueil: fonduentree(); //fondu d'entrée PA_LoadBackground(0, 1, &jeu); PA_LoadBackground(1, 1, &titre); if(PA_UserInfo.Language == 2) { PA_OutputText(0, 3, 6, "Le but est d'appuyer"); PA_OutputText(0, 3, 7, "sur les boutons le"); PA_OutputText(0, 3, 8, "plus vite possible."); PA_OutputText(0, 3, 9, "Quand vous appuyez sur"); PA_OutputText(0, 3, 10, "un bouton, votre score"); PA_OutputText(0, 3, 11, "augmente de un."); PA_OutputText(0, 3, 16, "Appuyez sur un bouton"); PA_OutputText(0, 3, 17, "pour commencer !"); } else { PA_OutputText(0, 3, 6, "The aim is to press the"); PA_OutputText(0, 3, 7, "buttons as fast as you can."); PA_OutputText(0, 3, 8, "When a button is pressed,"); PA_OutputText(0, 3, 9, "it add 1 point to"); PA_OutputText(0, 3, 10, "your score."); PA_OutputText(0, 3, 16, "Press any button to start !"); } PA_WaitFor(Pad.Newpress.Anykey || Stylus.Newpress); //Variables u32 coups = 0; //A vos marques, pret, partez ! PA_ClearTextBg(0); //efface tout le texte du bas PA_VBLCounterStart(0); // compteur //A vos marques AS_SoundQuickPlay(un); PA_CreateSprite(0, 0, (void*)feu_Sprite, OBJ_SIZE_32X64, 1, 1, 200, 30); //feu, sprite 0 if(PA_UserInfo.Language == 2) { PA_OutputText(0, 3, 6, "A vos marques..."); } else { PA_OutputText(0, 3, 6, "Ready ?"); } PA_WaitFor(PA_VBLCounter[0]/60 == 2); //Pret AS_SoundQuickPlay(deux); PA_SetSpriteAnim(0, 0, 2); if(PA_UserInfo.Language == 2) { PA_OutputText(0, 3, 8, "Prêt ?"); } else { PA_OutputText(0, 3, 8, "Steady..."); } PA_WaitFor(PA_VBLCounter[0]/60 == 4); //Partez AS_SoundQuickPlay(trois); PA_SetSpriteAnim(0, 0, 1); if(PA_UserInfo.Language == 2) { PA_OutputText(0, 3, 10, "Partez !"); } else { PA_OutputText(0, 3, 10, "Go !"); } PA_WaitFor(PA_VBLCounter[0]/60 == 6); PA_ClearTextBg(0); //efface tout le texte du bas PA_DeleteSprite(0, 0); PA_CreateSprite(0, 1, (void*)mario_Sprite, OBJ_SIZE_32X32, 1, 2, 100, 100); //mario, sprite 1 avec palette 2 PA_CreateSprite(0, 2, (void*)boite_Sprite, OBJ_SIZE_16X16, 1, 3, 110, 84); //boite, sprite 2 avec palette 3 PA_CreateSprite(0, 3, (void*)piece_Sprite, OBJ_SIZE_8X16, 1, 4, 114, 68); //boite, sprite 2 avec palette 3 PA_VBLCounterStart(1); //compteur pour la partie à venir while(1) { PA_OutputText(0, 3, 7, "Score : %d", coups); if(PA_UserInfo.Language == 2) { PA_OutputText(0, 3, 6, "Partie en cours..."); PA_OutputText(0, 3, 8, "Temps : %d ", 20-(PA_VBLCounter[1]/60)); } else { PA_OutputText(0, 3, 6, "Game in progress..."); PA_OutputText(0, 3, 8, "Time : %d ", 20-(PA_VBLCounter[1]/60)); } //Incrémentation du score si la partie n'est pas fini if((Pad.Newpress.A || Pad.Newpress.B || Pad.Newpress.X || Pad.Newpress.Y || Pad.Newpress.L || Pad.Newpress.R || Stylus.Newpress || Pad.Newpress.Left || Pad.Newpress.Right || Pad.Newpress.Up || Pad.Newpress.Down) && PA_VBLCounter[1]/60 < 20) { PA_SetSpriteAnim(0, 1, 1); //fait sauter mario PA_SetSpriteAnim(0, 3, 1); //fait apparaitre une piece coups++; } //Lors du relachement des touches/stylet, les sprites reviennent a la normale if(Pad.Released.Anykey || Stylus.Released) { PA_SetSpriteAnim(0, 1, 0);//mario revient au sol PA_SetSpriteAnim(0, 3, 0); //et la piece disparait } //Fin de la partie if(PA_VBLCounter[1]/60 == 20) { //On efface le txt et les sprites PA_ClearTextBg(0); PA_DeleteSprite(0, 1); PA_DeleteSprite(0, 2); PA_DeleteSprite(0, 3); if(PA_UserInfo.Language == 2) { PA_OutputText(0, 3, 6, "Partie terminée !"); PA_OutputText(0, 3, 7, "Votre score : %d", coups); PA_OutputText(0, 3, 9, "Appuyez sur une touche"); PA_OutputText(0, 3, 10, "pour rejouer..."); } else { PA_OutputText(0, 3, 6, "End of the game !"); PA_OutputText(0, 3, 7, "Your score : %d", coups); PA_OutputText(0, 3, 9, "Press a button to"); PA_OutputText(0, 3, 10, "replay..."); } PA_WaitFor(PA_VBLCounter[1]/60 == 22); PA_WaitFor(Pad.Newpress.Anykey || Stylus.Newpress); goto accueil; } PA_CheckLid(); PA_WaitForVBL(); } return 0; }