Advertisement
NightFox

NFlib Sprite Example

Oct 9th, 2011
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.97 KB | None | 0 0
  1. /*
  2. -------------------------------------------------
  3.     Main() - Bloque general del programa
  4. -------------------------------------------------
  5. */
  6.  
  7. int main(int argc, char **argv) {
  8.  
  9.     // Pantalla de espera inicializando NitroFS
  10.     NF_Set2D(0, 0);
  11.     NF_Set2D(1, 0);
  12.     consoleDemoInit();
  13.     iprintf("\n NitroFS init. Please wait.\n\n");
  14.     iprintf(" Iniciando NitroFS,\n por favor, espere.\n\n");
  15.     swiWaitForVBlank();
  16.  
  17.     // Define el ROOT e inicializa el sistema de archivos
  18.     NF_SetRootFolder("NITROFS");    // Define la carpeta ROOT para usar NITROFS
  19.  
  20.     // Inicializa el motor 2D
  21.     NF_Set2D(0, 0);             // Modo 2D_0 en ambas pantallas
  22.     NF_Set2D(1, 0);
  23.  
  24.     // Inicializa los Sprites
  25.     NF_InitSpriteBuffers();     // Inicializa los buffers para almacenar sprites y paletas
  26.     NF_InitSpriteSys(0);        // Inicializa los sprites para la pantalla superior
  27.     NF_InitSpriteSys(1);        // Inicializa los sprites para la pantalla inferior
  28.  
  29.     // Carga los archivos de sprites desde la FAT / NitroFS a la RAM
  30.     NF_LoadSpriteGfx("sprite/personaje", 0, 64, 64);    // Personaje
  31.     NF_LoadSpritePal("sprite/personaje", 0);
  32.  
  33.     NF_LoadSpriteGfx("sprite/bola", 1, 32, 32);         // Bola azul
  34.     NF_LoadSpritePal("sprite/bola", 1);
  35.  
  36.     // Transfiere a la VRAM los sprites necesarios
  37.     NF_VramSpriteGfx(1, 0, 0, true);    // Bola, manten los frames adicionales en RAM
  38.     NF_VramSpritePal(1, 0, 0);
  39.  
  40.     NF_VramSpriteGfx(0, 1, 0, false);   // Personaje, copia todos los frames a la VRAM
  41.     NF_VramSpritePal(0, 1, 0);
  42.  
  43.     // Crea el sprite del personaje en pantalla
  44.     s16 pj_x = 127;
  45.     s16 pj_y = 95;
  46.     NF_CreateSprite(1, 0, 0, 0, pj_x, pj_y);
  47.  
  48.     // Crea las bolas en la pantalla superior
  49.     s16 bola_x = 127;
  50.     s16 bola_y = 95;
  51.     NF_CreateSprite(0, n, 0, 0, bola_x, bola_y);
  52.  
  53.     // Bucle (repite para siempre)
  54.     while(1) {
  55.  
  56.         // Actualiza el array de OAM
  57.         NF_SpriteOamSet(0);
  58.         NF_SpriteOamSet(1);
  59.  
  60.         swiWaitForVBlank();     // Espera al sincronismo vertical
  61.  
  62.         // Actualiza el OAM
  63.         oamUpdate(&oamMain);
  64.         oamUpdate(&oamSub);
  65.    
  66.     }
  67.  
  68.     return 0;
  69.  
  70. }
  71.  
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement