¡Mueve a Zippo! (Mi primer homebrew) xD

Pues eso, que he acabado mi primer programa con el palib. Es muy simple y sólo sirve para mover al personaje por la pantalla y que suenen cuatro sonidos de na, pero me hacía ilu ponerlo aquí [sonrisa]

Imagen

Descargar ¡Mueve a Zippo!

// Includes
#include <PA9.h>       // Include for PA_Lib
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"
#include "choque.h"
#include "moonlight.h"
#include "zippo.h"

// Function: main()
int main(int argc, char ** argv)
{
   PA_Init();    // Initializes PA_Lib
   PA_InitVBL(); // Initializes a standard VBL
   PA_InitSound(); // Inicia sonido
   PA_SetSoundVol(200);
   PA_PlaySimpleSound (1,moonlight);
   PA_InitText (0,0); // Inicia Texto
   PA_SetTextTileCol (0,2); //color texto
      
   //cargamos fondos
   PA_EasyBgLoad(0,3,bg0);
   PA_Init16bitBg(1,3);
   PA_Load16bitBitmap(1,bg1_Bitmap);
   
   // variables x, y para posición de sprites
   s32 x=112, y=80;
   bool up=true, down=false, left=false, right=false, select=false, bgs = true;
   int counter = 0;
   
   //cargamos paletas
   PA_LoadSpritePal(0,0,(void*)zippopal_Pal);
   
   
   //cargamos sprite inicial y animamos
   PA_CreateSprite(0,0,(void*)zippo_Sprite,OBJ_SIZE_32X32,1,0,x,y);
   PA_SetSpritePrio(0,0,2); // coloca el sprite en la capa 2 para que quede detrás del texto
   PA_StartSpriteAnim(0,0,0,1,5);
   
   
   // Infinite loop to keep the program running
   while (1)
   {
      while (Pad.Held.Down){  // bajar
            //animamos y actualizamos posición
            if (down == false){
               down=true;
               up=false;
               left=false;
               right=false;
               PA_StopSpriteAnim(0,0);
               PA_StartSpriteAnim(0,0,0,1,5);
            }
            
            if (x<=224 && y<=160 && x>=0 && y>=0){    //evitamos que se salga de la pantalla
               y+=1;
               PA_SetSpriteXY(0,0,x,y);
            }else{
               PA_PlaySimpleSound(0,choque);
               if (x>224)   x=224;
               if (y>160)   y=160;
               if (x<0)      x=0;
               if (y<0)      y=0;
            }                  
            //salimos del while
            break;      
      }
      
      while (Pad.Held.Up){  // subir
            //animamos y actualizamos posición
            if (up == false){
               down=false;
               up=true;
               left=false;
               right=false;
               PA_StopSpriteAnim(0,0);
               PA_StartSpriteAnim(0,0,2,3,5);
            }
            
            if (x<=224 && y<=160 && x>=0 && y>=0){            
               y-=1;
               PA_SetSpriteXY(0,0,x,y);
            }else{
               PA_PlaySimpleSound(0,choque);
               if (x>224)   x=224;
               if (y>160)   y=160;
               if (x<0)      x=0;
               if (y<0)      y=0;
            }         
            //salimos del while
            break;      
      }
      
      while (Pad.Held.Left){  // izquierda
            //animamos y actualizamos posición
            if (left == false){
               down=false;
               up=false;
               left=true;
               right=false;
               PA_StopSpriteAnim(0,0);
               PA_StartSpriteAnim(0,0,4,5,5);
            }
            
            if (x<=224 && y<=160 && x>=0 && y>=0){         
               x-=1;
               PA_SetSpriteXY(0,0,x,y);
            }else{
               PA_PlaySimpleSound(0,choque);
               if (x>224)   x=224;
               if (y>160)   y=160;
               if (x<0)      x=0;
               if (y<0)      y=0;
            }         
            //salimos del while
            break;      
      }
      
      while (Pad.Held.Right){  // derecha
            //animamos y actualizamos posición
            if (right == false){
               down=false;
               up=false;
               left=false;
               right=true;
               PA_StopSpriteAnim(0,0);
               PA_StartSpriteAnim(0,0,6,7,5);
            }
            
            if (x<=224 && y<=160 && x>=0 && y>=0){            
               x+=1;
               PA_SetSpriteXY(0,0,x,y);
            }else{
               PA_PlaySimpleSound(0,choque);
               if (x>224)   x=224;
               if (y>160)   y=160;
               if (x<0)      x=0;
               if (y<0)      y=0;
            }         
            //salimos del while
            break;      
      }

      if (Pad.Newpress.Select){
         // Mostramos creditos
         if (select == false){
            select=true;
            x = 190; y = 73;
            PA_SetSpriteXY(0,0,x,y);
            PA_OutputSimpleText (0,1,1,"Musica:");
            PA_OutputSimpleText (0,1,2,"  Walking under the Moonlight");
            PA_OutputSimpleText (0,1,3,"  por Eglomer");
            PA_OutputSimpleText (0,1,5,"Voz de Zippo:");
            PA_OutputSimpleText (0,1,6,"  Tsuki");
            PA_OutputSimpleText (0,1,8,"Graficos:");
            PA_OutputSimpleText (0,1,9,"  Eglomer");
            PA_OutputSimpleText (0,1,11,"Programacion:");
            PA_OutputSimpleText (0,1,12,"  Eglomer");
            PA_OutputSimpleText (0,1,14,"Basado en:");
            PA_OutputSimpleText (0,1,15,"  Kaizoku no Nikki");
            PA_OutputSimpleText (0,9,16,"  (Diario de un Pirata)");
            PA_OutputSimpleText (0,1,17,"www.kaizokunonikki.blogspot.com");
         }else{
            select=false;
            PA_ClearTextBg(0);   
         }         
      }         
      
      if (Pad.Newpress.Start){
         x = 190; y = 73;
         PA_SetSpriteXY(0,0,x,y);
         PA_ClearTextBg(0); // por si están los créditos activos   
         PA_StopSpriteAnim(0,0);
         PA_OutputSimpleText (0,12,11,"PAUSA");
         PA_WaitFor(Pad.Newpress.Start); //pausamos hasta que vuelva a apretar y después reanudamos
         if (down == true)   PA_StartSpriteAnim(0,0,0,1,5);
         else if (up == true)   PA_StartSpriteAnim(0,0,2,3,5);
         else if (left == true)   PA_StartSpriteAnim(0,0,4,5,5);
         else if (right == true)   PA_StartSpriteAnim(0,0,6,7,5);
         PA_ClearTextBg(0);
      }
                  
      
      if (Pad.Newpress.L)
         if (bgs == true){
            PA_StopSound (1);
            PA_SetTextTileCol (0,3);
            PA_OutputSimpleText (0,1,1,"Cancion detenida"); //Bucle para esperar unos seg antes de borrar el texto
            for (counter = 0; counter < 40; counter++)
               PA_WaitForVBL();
            PA_SetTextTileCol (0,2);
            PA_ClearTextBg(0);
            bgs = false;
         }         
         
      if (Pad.Newpress.R)
         if (bgs == false){
            PA_PlaySimpleSound (1,moonlight);
            PA_SetTextTileCol (0,3);
            PA_OutputSimpleText (0,1,1,"Walking under the Moonlight");
            for (counter = 0; counter < 40; counter++)  //Bucle para esperar unos seg antes de borrar el texto
               PA_WaitForVBL();
            PA_SetTextTileCol (0,2);
            PA_ClearTextBg(0);
            bgs = true;
         }   
      
      
      if (Pad.Newpress.A || Pad.Newpress.B || Pad.Newpress.X || Pad.Newpress.Y)
         PA_PlaySimpleSound(2,zippo);
      
            
      while (Stylus.Held){
         // Actualizamos la posición del sprite con la del pad
         PA_MoveSprite(0);
         x=Stylus.X-16;
         y=Stylus.Y-16;
         PA_SetSpriteXY(0,0,x,y);   
      }   
      
      
      PA_CheckLid(); // Pausa el juego si se cierra la pantalla de la DS
      PA_WaitForVBL();
   }
   
   return 0;
} // End of main()
esta muy bien para ser el primero :) es gracioso el zippo este xD
Para ser el PRIMERO, está bastante currado. Aunque el nombre.... xDDD Parece de estos softwares que venden en las grandes superficies para los niños pequeños.... "aprende mates con pippo!"

[+risas] [carcajad] [carcajad]
judelco escribió:Para ser el PRIMERO, está bastante currado. Aunque el nombre.... xDDD Parece de estos softwares que venden en las grandes superficies para los niños pequeños.... "aprende mates con pippo!"

[+risas] [carcajad] [carcajad]


Si, bueno, los nombres nunca han sido lo mio... [+risas]
keda escribió:
judelco escribió:Para ser el PRIMERO, está bastante currado. Aunque el nombre.... xDDD Parece de estos softwares que venden en las grandes superficies para los niños pequeños.... "aprende mates con pippo!"

[+risas] [carcajad] [carcajad]


Si, bueno, los nombres nunca han sido lo mio... [+risas]


Ponle la banda sonora de caillú [carcajad] [carcajad] [carcajad] [carcajad] [carcajad] [qmparto] [qmparto] [qmparto]
Esta muy bien y gracias por la ayuda

PD:pasate por el otro hilo pliss
judelco escribió:Para ser el PRIMERO, está bastante currado. Aunque el nombre.... xDDD Parece de estos softwares que venden en las grandes superficies para los niños pequeños.... "aprende mates con pippo!"

[+risas] [carcajad] [carcajad]

No es PIPPO, es ZIPO, seguro que estabas pensando en algo raro...(zipo = (zipo)te) xDDDDDDDDDDD
El de ingles estaba bien, los demas no los probe, nos ta mal por ser su primer homebrew, ya lo mejorar o ara otro con otro nombre
Bueno da igual lo de Pipo... dejemoslo en SuperCard(Sin Comentarios) xDDD
alexpowerup escribió:Bueno da igual lo de Pipo... dejemoslo en SuperCard(Sin Comentarios) xDDD

[+risas] [+risas] [+risas] [+risas] [+risas] [+risas] [+risas] [+risas] [+risas] [+risas]
Naxer escribió:Se refiere a esto:

Imagen


Justamente xDDDDDD

Tenia o no razón? XD
judelco escribió:
Naxer escribió:Se refiere a esto:

Imagen


Justamente xDDDDDD

Tenia o no razón? XD


Final de la historia: Judelco siempre tiene razón [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto] [qmparto]
13 respuestas