// Main function int main(void) { // PAlib init PA_Init(); PA_InitVBL(); PA_Init3D(); // Uses Bg0, Init 3D... PA_Reset3DSprites(); // Init or Reset 3D Sprites PA_InitText(1, 0); PA_OutputText(1, 0, 10, "Press Pad to change frame"); // Load the sprite palette, PA_Load3DSpritePal(0, // Palette number (void*)frames_Pal); // Palette name gfx[0] = PA_3DCreateTex((void*)frames_Texture, 32, 32, TEX_256COL); PA_3DCreateSpriteFromTex(0, gfx[0], 32, 32, 0, 128, 96); while(1) { if (Pad.Held.Up) PA_3DSetSpriteFrame(0, 0); // screen, sprite, frame if (Pad.Held.Down) PA_3DSetSpriteFrame(0, 2); // screen, sprite, frame if (Pad.Held.Left) PA_3DSetSpriteFrame(0, 3); // screen, sprite, frame if (Pad.Held.Right) PA_3DSetSpriteFrame(0, 1); // screen, sprite, frame PA_WaitForVBL(); PA_3DProcess(); } return 0; }
void Stone::draw(int x, int y, char c) { u16 sgfx; PA_Load3DSpritePal(1, (void*)stone_Pal); // Palette switch (c) { case BLACK: sgfx = PA_3DCreateTex((void*)blackstone_Texture, 16, 16, TEX_256COL); PA_3DCreateSpriteFromTex(x+18*y, sgfx, 16, 16, 1, x*10+71, y*10+7); PA_PlaySimpleSound(sound_stone); break; case WHITE: sgfx = PA_3DCreateTex((void*)whitestone_Texture, 16, 16, TEX_256COL); PA_3DCreateSpriteFromTex(x+18*y, sgfx, 16, 16, 1, x*10+71, y*10+7); PA_PlaySimpleSound(sound_stone); break; case FRONTIER: case EMPTY: PA_3DDeleteSprite(x+18*y); break; default: break; } // PA_3DSetSpriteWidth(x+18*y,8); // PA_3DSetSpriteHeight(x+18*y,8); PA_3DSetSpriteFrame(x+18*y, 0); //PA_3DSetSpriteAlpha(x+18*y, 15); //PA_3DSetSpritePolyID(x+18*y, 0); PA_3DProcess(); // Update sprites PA_WaitForVBL(); }