JanMulder wrote:You should be able to disable some backgroundbuffers you don't use though.
Foxi4 wrote:After alot of testing, writing and cursing under my nose, my little "baby" is finally "fairly ready".
//NitroSpritesLib by Foxi4 - Improved and added new features by YoshiInAVoid
unsigned char* SpriteTiles[128] _GFX_ALIGN;
unsigned short SpritePalette[256] _GFX_ALIGN;
FILE* File;
u32 Size;
u8 SpritesCreated = 0;
void PrepareSprite(u8 SpriteNum, char* TileName, char* PaletteName) {
File = fopen(PaletteName, "rb");
fread(SpritePalette, 1, sizeof(SpritePalette), File);
fclose(File);
File = fopen(TileName, "rb");
fseek(File, 0 , SEEK_END);
Size = ftell(File);
rewind(File);
SpriteTiles[SpriteNum] = malloc(Size);
SpritesCreated += 1;
fclose(File);
}
void CreateSprite(u8 Screen, u8 SpriteNum, u8 PaletteNum, u8 X, u8 Y, u8 Shape, u8 Size, char* TileName, char* PaletteName) {
PrepareSprite(SpriteNum, TileName, PaletteName);
PA_LoadSpritePal(Screen, SpriteNum, SpritePalette);
int Gfx = PA_CreateGfx(Screen, SpriteTiles[SpriteNum], Shape, Size, 1);
PA_CreateSpriteFromGfx(Screen, SpriteNum, Gfx, Shape, Size, 1, PaletteNum, X, Y);
free(SpriteTiles[SpriteNum]);
free(File);
}
void DeleteSprite(u8 Screen, u8 SpriteNum) {
PA_DeleteSprite(Screen, SpriteNum);
PA_DeleteGfx(Screen, SpriteNum);
}
void DeleteAllSprites(u8 Screen) {
u8 FreeLoop = 0;
for (FreeLoop = 0; FreeLoop <= SpritesCreated; FreeLoop++) {
DeleteSprite(Screen, FreeLoop);
}
}Return to Tutorials & Examples
Users browsing this forum: Google [Bot] and 0 guests