Graphics/Sprites/simple/source/template.c

/*---------------------------------------------------------------------------------

Simple sprite demo
-- dovoto

---------------------------------------------------------------------------------*/
#include <nds.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

//---------------------------------------------------------------------------------
int main(void) {
        //---------------------------------------------------------------------------------
        int i = 0;
        touchPosition touch;

        videoSetMode(MODE_0_2D);
        videoSetModeSub(MODE_0_2D);

        vramSetBankA(VRAM_A_MAIN_SPRITE);
        vramSetBankD(VRAM_D_SUB_SPRITE);

        oamInit(&oamMain, SpriteMapping_1D_32, false);
        oamInit(&oamSub, SpriteMapping_1D_32, false);

        u16* gfx = oamAllocateGfx(&oamMain, SpriteSize_16x16, SpriteColorFormat_256Color);
        u16* gfxSub = oamAllocateGfx(&oamSub, SpriteSize_16x16, SpriteColorFormat_256Color);

        for(i = 0; i < 16 * 16 / 2; i++)
        {
                gfx[i] = 1 | (1 << 8);
                gfxSub[i] = 1 | (1 << 8);
        }

        SPRITE_PALETTE[1] = RGB15(31,0,0);
        SPRITE_PALETTE_SUB[1] = RGB15(0,31,0);

        while(1) {

                scanKeys();

                if(keysHeld() & KEY_TOUCH)
                        touchRead(&touch);

                oamSet(&oamMain, //main graphics engine context
                        0,           //oam index (0 to 127)  
                        touch.px, touch.py,   //x and y pixle location of the sprite
                        0,                    //priority, lower renders last (on top)
                        0,                                        //this is the palette index if multiple palettes or the alpha value if bmp sprite     
                        SpriteSize_16x16,     
                        SpriteColorFormat_256Color, 
                        gfx,                  //pointer to the loaded graphics
                        -1,                  //sprite rotation data  
                        false,               //double the size when rotating?
                        false,                  //hide the sprite?
                        false, false, //vflip, hflip
                        false   //apply mosaic
                        );              
                
                
                oamSet(&oamSub, 
                        0, 
                        touch.px, 
                        touch.py, 
                        0, 
                        0,
                        SpriteSize_16x16, 
                        SpriteColorFormat_256Color, 
                        gfxSub, 
                        -1, 
                        false, 
                        false,                  
                        false, false, 
                        false   
                        );              
        
                swiWaitForVBlank();

                
                oamUpdate(&oamMain);
                oamUpdate(&oamSub);
        }

        return 0;
}
 全て クラス ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義
libndsに対してMon Apr 26 23:39:49 2010に生成されました。  doxygen 1.6.3