gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit c66e15671a8c12f3cef5dfdb31d07a69510652f2 parent e141c7d10cbc01128a65744974ae6733f66706ee Author: Toxa <untoxa@mail.ru> Date: Mon, 25 Jan 2021 20:43:28 +0300 hide_sprite() Diffstat:
| M | gbdk-lib/examples/gb/metasprites/metasprites.c | 26 | +------------------------- |
| M | gbdk-lib/include/gb/gb.h | 8 | ++++++++ |
2 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/gbdk-lib/examples/gb/metasprites/metasprites.c b/gbdk-lib/examples/gb/metasprites/metasprites.c @@ -2,30 +2,6 @@ #include <gb/sgb.h> #include <gb/metasprites.h> -const unsigned char coin_data[] = -{ -0x00,0x00,0x07,0x07,0x18,0x18,0x27,0x20,0x2D,0x20,0x5A,0x64,0x5A,0x64,0x5A,0x64, -0x5A,0x64,0x2D,0x32,0x27,0x38,0x18,0x1F,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xC0,0xC0,0x20,0x20,0xA0,0x20,0xD0,0x10,0xD0,0x10,0xD0,0x10, -0xD0,0x10,0xA0,0x60,0x20,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - -0x00,0x00,0x07,0x07,0x1F,0x18,0x38,0x20,0x32,0x20,0x41,0x40,0x41,0x40,0x41,0x40, -0x41,0x40,0x20,0x20,0x20,0x20,0x18,0x18,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0xC0,0xC0,0xE0,0x20,0x60,0x20,0x30,0x10,0x30,0x10,0x30,0x10, -0x30,0x10,0x20,0x20,0x20,0x20,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -}; - -const metasprite_t coin0 = { - 2, - { - {0, 0, 0, 0}, {0, 8, 2, 0}, - {0, -8, 4, 0x10}, {0, 0, 6, 0x10}, - {metasprite_end} - } -}; -const metasprite_t * const coins[] = { &coin0 }; - - UINT8 sprite_data[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x0d,0x0e,0x1f,0x10,0x3f,0x20,0x3f,0x20, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0xfd,0xfe,0x3f,0xc0,0xff,0x0c,0xff,0x13,0xf7,0x08,0xc1,0x3e, @@ -201,7 +177,7 @@ void main(void) { }; // hide rest of the hardware sprites, because amount of sprites differ between animation frames - for (UBYTE i = metasprites[idx]->count; i < 40; i++) shadow_OAM[i].y = 0; + for (UBYTE i = metasprites[idx]->count; i < 40; i++) hide_sprite(i); if (!(PosF & ACC_Y)) { if (SpdY >= 0) { diff --git a/gbdk-lib/include/gb/gb.h b/gbdk-lib/include/gb/gb.h @@ -1114,6 +1114,14 @@ inline void scroll_sprite(UINT8 nb, INT8 x, INT8 y) { } +/** Hides sprite number __nb__ by moving it to zero position by Y. + + @param nb Sprite number, range 0 - 39 + */ +inline void hide_sprite(UINT8 nb) { + shadow_OAM[nb].y = 0; +} + /** Copies Tile Pattern data to an address in VRAM
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.