diff --git a/res/Sprites.c b/res/Sprites.c new file mode 100644 index 0000000..b1e33ef --- /dev/null +++ b/res/Sprites.c @@ -0,0 +1,141 @@ +/* + + SPRITES.C + + Tile Source File. + + Info: + Form : All tiles as one unit. + Format : Gameboy 4 color. + Compression : None. + Counter : None. + Tile size : 8 x 8 + Tiles : 0 to 30 + + Palette colors : None. + SGB Palette : None. + CGB Palette : None. + + Convert to metatiles : No. + + This file was generated by GBTD v2.2 + +*/ +#include +/* Start of tile array. */ +unsigned char sprites[] = + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, + 0x07, 0x07, 0x04, 0x07, 0x04, 0x07, 0x0B, 0x0F, + 0x6F, 0x68, 0x57, 0x79, 0xE7, 0x9A, 0xA7, 0xDA, + 0x91, 0xFF, 0x78, 0x7F, 0x6F, 0x6F, 0x07, 0x07, + 0x00, 0x00, 0x80, 0xC0, 0x80, 0x80, 0x80, 0x80, + 0x60, 0xE0, 0xA0, 0x60, 0xB0, 0x70, 0xDE, 0xFE, + 0xF3, 0x11, 0xE1, 0x91, 0xFD, 0x51, 0xFD, 0x51, + 0x8D, 0xF9, 0x06, 0xFE, 0xFC, 0xFC, 0xF8, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x07, 0x04, 0x07, 0x04, 0x07, 0x0B, 0x0F, + 0x6F, 0x68, 0x77, 0x79, 0x87, 0xFA, 0xE7, 0x9A, + 0xF1, 0x9F, 0x58, 0x7F, 0x6F, 0x6F, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, + 0x60, 0xE0, 0xA0, 0x60, 0xB0, 0x70, 0xDE, 0xFE, + 0xF3, 0x11, 0xE1, 0x91, 0xFD, 0x51, 0xFD, 0x51, + 0x8D, 0xF9, 0x06, 0xFE, 0xFC, 0xFC, 0xF8, 0xF8, + 0x01, 0x01, 0x07, 0x06, 0x0F, 0x08, 0x1F, 0x10, + 0x3F, 0x20, 0x7F, 0x47, 0xFF, 0x9E, 0xFF, 0xBD, + 0xFF, 0xFD, 0x3F, 0x3E, 0x1F, 0x17, 0x1F, 0x10, + 0x3F, 0x25, 0x3F, 0x25, 0x1F, 0x15, 0x1F, 0x15, + 0x80, 0x80, 0xE0, 0x60, 0xF0, 0x10, 0xF8, 0x08, + 0xFC, 0x04, 0xFE, 0xE2, 0xFF, 0x79, 0xFF, 0xBD, + 0xFF, 0xBF, 0xFC, 0x7C, 0xF8, 0xE8, 0xF8, 0x08, + 0xFC, 0xA4, 0xFC, 0xA4, 0xF8, 0xA8, 0xF8, 0xA8, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0F, 0x0C, + 0x1F, 0x10, 0x3F, 0x20, 0x7F, 0x47, 0xFF, 0x9C, + 0xFF, 0xBB, 0xFF, 0xFB, 0x7F, 0x5C, 0xFF, 0x8F, + 0x7F, 0x48, 0x3F, 0x25, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xF0, 0x30, + 0xF8, 0x08, 0xFC, 0x04, 0xFE, 0xE2, 0xFF, 0x39, + 0xFF, 0xDD, 0xFF, 0xDF, 0xFE, 0x3A, 0xFF, 0xF1, + 0xFE, 0x12, 0xFC, 0xA4, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x01, + 0x00, 0x03, 0x01, 0x66, 0xC2, 0x2D, 0x05, 0xFA, + 0x02, 0x7D, 0x04, 0x1B, 0x00, 0x7F, 0x03, 0xFE, + 0xC1, 0x2F, 0x00, 0x67, 0x00, 0x03, 0x00, 0x00, + 0x80, 0x00, 0xE0, 0x00, 0x20, 0xC0, 0xF0, 0x08, + 0x10, 0xFC, 0x20, 0xFE, 0xCC, 0x7F, 0x5A, 0xF7, + 0xD2, 0x7F, 0x4C, 0xFF, 0x21, 0xFF, 0xD2, 0x3F, + 0xC0, 0x3F, 0xC0, 0xFE, 0x00, 0xF8, 0x00, 0x00, + 0x07, 0x00, 0x0F, 0x00, 0x1C, 0x01, 0x38, 0x07, + 0x30, 0x0F, 0x28, 0x07, 0x3F, 0x00, 0x12, 0x00, + 0x12, 0x00, 0x22, 0x00, 0x24, 0x00, 0x24, 0x00, + 0x24, 0x00, 0x12, 0x00, 0x02, 0x00, 0x02, 0x00, + 0xE0, 0x00, 0xD0, 0x00, 0x38, 0xC0, 0x1C, 0xE0, + 0x0C, 0xF0, 0x0C, 0xE0, 0xFC, 0x00, 0x48, 0x00, + 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x48, 0x00, + 0x28, 0x00, 0x28, 0x00, 0x20, 0x00, 0x20, 0x00, + 0x07, 0x00, 0x0F, 0x00, 0x1C, 0x01, 0x38, 0x07, + 0x30, 0x0F, 0x28, 0x07, 0x3F, 0x00, 0x12, 0x00, + 0x09, 0x00, 0x11, 0x00, 0x12, 0x00, 0x22, 0x00, + 0x22, 0x00, 0x24, 0x00, 0x04, 0x00, 0x04, 0x00, + 0xE0, 0x00, 0xD0, 0x00, 0x38, 0xC0, 0x1C, 0xE0, + 0x0C, 0xF0, 0x0C, 0xE0, 0xFC, 0x00, 0x48, 0x00, + 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x48, 0x00, + 0x48, 0x00, 0x50, 0x00, 0x80, 0x00, 0x80, 0x00, + 0x3C, 0x3C, 0x7E, 0x42, 0xE7, 0x99, 0xDF, 0xA5, + 0xDF, 0xA5, 0xFF, 0x99, 0x7E, 0x42, 0x3C, 0x3C, + 0x18, 0x18, 0x3C, 0x24, 0x7E, 0x4A, 0x7E, 0x4A, + 0x7E, 0x4A, 0x76, 0x5A, 0x3C, 0x24, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +/* Submarine Metatile index */ +const unsigned char submarine_tilemap[] = + { + 0x00, 0x02, 0x01, 0x03}; + +// Create the metasprite structure for the character +const metasprite_t submarine_metasprite[] = { + {.dy = -8, .dx = -8, .dtile = 0, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 2, .props = 0}, + {.dy = 8, .dx = -8, .dtile = 1, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 3, .props = 0}, + METASPR_TERM}; + +const metasprite_t submarine_metasprite2[] = { + {.dy = -8, .dx = -8, .dtile = 0, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 2, .props = 0}, + {.dy = 8, .dx = -8, .dtile = 5, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 3, .props = 0}, + METASPR_TERM}; + +/* Submarine Metatile index */ +const unsigned char squid_tilemap[] = + { + 0x08, 0x09, 0x11, 0x11}; + +const metasprite_t squid_metasprite[] = { + {.dy = -8, .dx = -8, .dtile = 8, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 10, .props = 0}, + {.dy = 8, .dx = -8, .dtile = 9, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 11, .props = 0}, + METASPR_TERM}; + +const metasprite_t squid_metasprite2[] = { + {.dy = -8, .dx = -8, .dtile = 12, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 14, .props = 0}, + {.dy = 8, .dx = -8, .dtile = 13, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 15, .props = 0}, + METASPR_TERM}; + +/* Submarine Metatile index */ +const unsigned char fish_tilemap[] = + { + 0x16, 0x17, 0x18, 0x19}; + +const metasprite_t fish_metasprite[] = { + {.dy = -8, .dx = -8, .dtile = 16, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 18, .props = 0}, + {.dy = 8, .dx = -8, .dtile = 17, .props = 0}, + {.dy = 0, .dx = 8, .dtile = 19, .props = 0}, + METASPR_TERM}; +/* End of SPRITES.C */ diff --git a/res/submarine_sprites.h b/res/Sprites.h similarity index 68% rename from res/submarine_sprites.h rename to res/Sprites.h index 01ce4fd..9b23290 100644 --- a/res/submarine_sprites.h +++ b/res/Sprites.h @@ -1,6 +1,6 @@ /* - SUBMARINE.H + SPRITES.H Include File. @@ -10,7 +10,7 @@ Compression : None. Counter : None. Tile size : 8 x 8 - Tiles : 0 to 12 + Tiles : 0 to 30 Palette colors : None. SGB Palette : None. @@ -21,11 +21,13 @@ This file was generated by GBTD v2.2 */ -#include + + /* Bank of tiles. */ -#define submarineBank 0 +#define spritesBank 0 /* Start of tile array. */ -extern const unsigned char submarine_tileset[]; +extern unsigned char sprites[]; + /* Metatile index */ extern const unsigned char submarine_tilemap[]; // Create the metasprite structure for the character @@ -33,4 +35,10 @@ extern const metasprite_t submarine_metasprite[]; extern const metasprite_t submarine_metasprite2[]; -/* End of SUBMARINE.H */ +extern const unsigned char squid_tilemap[]; +extern const metasprite_t squid_metasprite[]; + +extern const unsigned char fish_tilemap[]; +extern const metasprite_t fish_metasprite[]; + +/* End of SPRITES.H */ diff --git a/res/submarine_sprites.c b/res/submarine_sprites.c deleted file mode 100644 index e963f81..0000000 --- a/res/submarine_sprites.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - - SUBMARINE.C - - Tile Source File. - - Info: - Form : All tiles as one unit. - Format : Gameboy 4 color. - Compression : None. - Counter : None. - Tile size : 8 x 8 - Tiles : 0 to 12 - - Palette colors : None. - SGB Palette : None. - CGB Palette : None. - - Convert to metatiles : No. - - This file was generated by GBTD v2.2 - -*/ -#include -/* Start of tile array. */ -unsigned char submarine_tileset[] = - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, - 0x07, 0x07, 0x04, 0x07, 0x04, 0x07, 0x0B, 0x0F, - 0x6F, 0x68, 0x57, 0x79, 0xE7, 0x9A, 0xA7, 0xDA, - 0x91, 0xFF, 0x78, 0x7F, 0x6F, 0x6F, 0x07, 0x07, - 0x00, 0x00, 0x80, 0xC0, 0x80, 0x80, 0x80, 0x80, - 0x60, 0xE0, 0xA0, 0x60, 0xB0, 0x70, 0xDE, 0xFE, - 0xF3, 0x11, 0xE1, 0x91, 0xFD, 0x51, 0xFD, 0x51, - 0x8D, 0xF9, 0x06, 0xFE, 0xFC, 0xFC, 0xF8, 0xF8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x07, 0x04, 0x07, 0x04, 0x07, 0x0B, 0x0F, - 0x0F, 0x08, 0x17, 0x19, 0xE7, 0xFA, 0xE7, 0x9A, - 0xF1, 0xFF, 0x18, 0x1F, 0x0F, 0x0F, 0x07, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, - 0x60, 0xE0, 0xA0, 0x60, 0xB0, 0x70, 0xDE, 0xFE, - 0xF3, 0x11, 0xE1, 0x91, 0xFD, 0x51, 0xFD, 0x51, - 0x8D, 0xF9, 0x06, 0xFE, 0xFC, 0xFC, 0xF8, 0xF8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, - 0x07, 0x07, 0x04, 0x07, 0x04, 0x07, 0x0B, 0x0F, - 0x8F, 0x88, 0x97, 0x99, 0xE7, 0xFA, 0xE7, 0x9A, - 0xF1, 0xFF, 0x98, 0x9F, 0x8F, 0x8F, 0x07, 0x07, - 0x00, 0x00, 0x80, 0xC0, 0x80, 0x80, 0x80, 0x80, - 0x60, 0xE0, 0xA0, 0x60, 0xB0, 0x70, 0xDE, 0xFE, - 0xF3, 0x11, 0xE1, 0x91, 0xFD, 0x51, 0xFD, 0x51, - 0x8D, 0xF9, 0x06, 0xFE, 0xFC, 0xFC, 0xF8, 0xF8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -/* Metatile index */ -const unsigned char submarine_tilemap[] = - { - 0x00, 0x02, 0x01, 0x03}; - -// Create the metasprite structure for the character -const metasprite_t submarine_metasprite[] = { - {.dy = -8, .dx = -8, .dtile = 0, .props = 0}, - {.dy = 0, .dx = 8, .dtile = 2, .props = 0}, - {.dy = 8, .dx = -8, .dtile = 1, .props = 0}, - {.dy = 0, .dx = 8, .dtile = 3, .props = 0}, - METASPR_TERM}; - -const metasprite_t submarine_metasprite2[] = { - {.dy = -8, .dx = -8, .dtile = 0, .props = 0}, - {.dy = 0, .dx = 8, .dtile = 2, .props = 0}, - {.dy = 8, .dx = -8, .dtile = 5, .props = 0}, - {.dy = 0, .dx = 8, .dtile = 3, .props = 0}, - METASPR_TERM}; - -/* End of SUBMARINE.C */ diff --git a/src/actor.c b/src/actor.c index 19c3494..48831c8 100644 --- a/src/actor.c +++ b/src/actor.c @@ -59,12 +59,12 @@ void move_actor(Actor *actor, uint8_t x, uint8_t y) // Evtl. sollte is_moving hi // Move the metasprite if (actor->is_facing_right) { - move_metasprite_ex(actor->metasprite, 0, 0, 0, x + 8, y + 16); + move_metasprite_ex(actor->metasprite, 0, 0, actor->sprite_id, x + 8, y + 16); } if (!actor->is_facing_right) { // flip the metasprite horizontally when is_facing_right is TRUE - move_metasprite_flipx(actor->metasprite, 0, 0, 0, x + 8, y + 16); + move_metasprite_flipx(actor->metasprite, 0, 0, actor->sprite_id, x + 8, y + 16); } } @@ -205,50 +205,24 @@ void move_actor_with_joypad(Actor *actor, uint8_t framecount) scroll_actor(actor); } -void setup_actor(Actor *actor, uint8_t sprite_id, uint8_t tile_width, uint8_t tile_height, uint8_t tilemap_start, uint8_t total_frames, bool is_facing_right, const unsigned char *tilemap, const metasprite_t *metasprite) +void setup_actor(Actor *actor, uint8_t sprite_id, uint8_t tile_width, uint8_t tile_height, uint8_t tilemap_start, uint8_t total_frames, bool is_facing_right, uint8_t x, uint8_t y, const unsigned char *tilemap, const metasprite_t *metasprite) { + actor->sprite_id = sprite_id; // Set player sprite ID + actor->x = x; // Set initial X + actor->y = y; // Set initial Y + actor->next_x = x; // Set initial next X + actor->next_y = y; // Set initial next Y + actor->is_facing_right = is_facing_right; // Set horizontal direction of + actor->is_moving = FALSE; // Set if the actor is moving + actor->tilemap = tilemap; // Store pointer to tilemap + actor->tilemap_start = tilemap_start; // Set tile start position (in tileset) + actor->sprite_tile_width = tile_width; // Set width + actor->sprite_tile_height = tile_height; // Set height + actor->sprite_frame = total_frames; // Set number of frames + actor->sprite_current_frame = 0; // Make sure to start at frame 1 + actor->metasprite = metasprite; // Store pointer to metasprite - // Set initial X - actor->x = 80; + // move_metasprite_ex(actor->metasprite, 0, 0, actor->sprite_id, x + 8, y + 16); - // Set initial Y - actor->y = 90; - - // Set initial next X - actor->next_x = 80; - // Set initial next Y - actor->next_y = 90; - - // Set horizontal direction of - actor->is_facing_right = is_facing_right; - - // Set if the actor is moving - actor->is_moving = FALSE; - - // Store pointer to tilemap - actor->tilemap = tilemap; - - // Set tile start position (in tileset) - actor->tilemap_start = tilemap_start; - - // Set player sprite ID - actor->sprite_id = sprite_id; - - // Set size - actor->sprite_tile_width = tile_width; - actor->sprite_tile_height = tile_height; - - // Set number of frames - actor->sprite_frame = total_frames; - - // Make sure to start at frame 1 - actor->sprite_current_frame = 0; - - // Move to built in metasprite methods - // load_sprite_frame(actor, 0); - - // Store pointer to metasprite - actor->metasprite = metasprite; - - move_actor(actor, actor->x, actor->y); + move_actor(actor, x, y); } \ No newline at end of file diff --git a/src/actor.h b/src/actor.h index 9fa854f..1075f6a 100644 --- a/src/actor.h +++ b/src/actor.h @@ -38,4 +38,4 @@ void scroll_actor(Actor *actor); void move_actor_with_joypad(Actor *actor, uint8_t framecount); -void setup_actor(Actor *actor, uint8_t sprite_id, uint8_t tile_width, uint8_t tile_height, uint8_t tilemap_start, uint8_t total_frames, bool is_facing_right, const unsigned char *tilemap, const metasprite_t *metasprite); \ No newline at end of file +void setup_actor(Actor *actor, uint8_t sprite_id, uint8_t tile_width, uint8_t tile_height, uint8_t tilemap_start, uint8_t total_frames, bool is_facing_right, uint8_t x, uint8_t y, const unsigned char *tilemap, const metasprite_t *metasprite); \ No newline at end of file diff --git a/src/main.c b/src/main.c index 824c2c1..96bec33 100644 --- a/src/main.c +++ b/src/main.c @@ -6,15 +6,19 @@ #include "../res/hud.h" #include "../res/underwater_tiles.h" #include "../res/underwater_map.h" -#include "../res/submarine_sprites.h" +// #include "../res/submarine_sprites.h" #include "../res/test-tileset.h" #include "../res/test-tilemap.h" +#include "../res/Sprites.h" #include "actor.h" // #include "input.h" #include "collision.h" Actor submarine; +Actor squid1; +Actor squid2; +Actor fish1; uint8_t framecount; uint8_t two_frame_counter = 0; @@ -23,6 +27,8 @@ uint8_t two_frame_real_value = 0; #define TILEMAP_WIDTH_IN_TILES (tilemap_WIDTH >> 3) #define TILEMAP_HEIGHT_IN_TILES (tilemap_HEIGHT >> 3) +#define _countof(x) (sizeof(x) / sizeof((x)[0])) + // animation counter and the directional controls update the player's location on every 2nd frame // from https://gbdev.gg8.se/forums/viewtopic.php?id=850 void animcounter(uint8_t numframes) @@ -100,6 +106,91 @@ void shiftBGTiles(void) } } +void setup(void) +{ + struct Entity + { + Actor *actor; + uint8_t id; // Max 40 because of sprite limit on screen. Must be 1 larger than the previous metasprite + uint8_t width; + uint8_t height; + uint8_t startframe; + uint8_t total_frame; + bool is_facing_right; + uint8_t initialX; + uint8_t initialY; + const unsigned char *tilemap; + const metasprite_t *metasprite; + }; + + // make array of actor entities + struct Entity entities[4]; //! Ich könnte stattdessen wohl auch "struct Actor entities[2]" machen und direkt den Actor struct benutzen + + entities[0].actor = &submarine; + entities[0].id = 0; + entities[0].width = 2; + entities[0].height = 2; + entities[0].startframe = 2; + entities[0].total_frame = 2; + entities[0].is_facing_right = TRUE; + entities[0].initialX = 80; + entities[0].initialY = 90; + entities[0].tilemap = submarine_tilemap; + entities[0].metasprite = submarine_metasprite; + + entities[1].actor = &squid1; + entities[1].id = 4; + entities[1].width = 2; + entities[1].height = 2; + entities[1].startframe = 2; + entities[1].total_frame = 2; + entities[1].is_facing_right = TRUE; + entities[1].initialX = 20; + entities[1].initialY = 80; + entities[1].tilemap = squid_tilemap; + entities[1].metasprite = squid_metasprite; + + entities[2].actor = &squid2; + entities[2].id = 8; + entities[2].width = 2; + entities[2].height = 2; + entities[2].startframe = 2; + entities[2].total_frame = 2; + entities[2].is_facing_right = TRUE; + entities[2].initialX = 120; + entities[2].initialY = 120; + entities[2].tilemap = squid_tilemap; + entities[2].metasprite = squid_metasprite; + + entities[3].actor = &fish1; + entities[3].id = 12; + entities[3].width = 2; + entities[3].height = 2; + entities[3].startframe = 2; + entities[3].total_frame = 2; + entities[3].is_facing_right = TRUE; + entities[3].initialX = 80; + entities[3].initialY = 30; + entities[3].tilemap = fish_tilemap; + entities[3].metasprite = fish_metasprite; + + for (int i = 0; i < _countof(entities); ++i) + { + // Setup actors + setup_actor( + entities[i].actor, // player + entities[i].id, // Sprite ID: 0 + entities[i].width, entities[i].height, // 2x2 meta-sprite + entities[i].startframe, // Tiles start at 0 + entities[i].total_frame, // Total animated frames + entities[i].is_facing_right, // Set is_facing_right bool + entities[i].initialX, // Set initial x + entities[i].initialY, // Set initial x + entities[i].tilemap, // pointer to the tilemap + entities[i].metasprite); // pointer to the metasprite + } +} + void init(void) { @@ -121,29 +212,15 @@ void init(void) set_bkg_tiles(0, 0, TILEMAP_WIDTH_IN_TILES, TILEMAP_HEIGHT_IN_TILES, tilemap_map); // Fill tileset bank 0 with 4 actor tiles - set_sprite_data(0, 8, submarine_tileset); + set_sprite_data(0, 20, sprites); //! Prüfen, welche variables für das metasprite überhaupt noch benötigt werden - // Setup player actor - setup_actor( - // player - &submarine, - // Sprite ID: 0 - 0, - // 2x2 meta-sprite - 2, 2, - // Tiles start at 0 - 0, - // Total animated frames - 4, - // Set is_facing_right bool - TRUE, - // pointer to the tilemap - submarine_tilemap, - // pointer to the metasprite - submarine_metasprite); + setup(); + // uint8_t startingSprite = 0; - // MoveCharacter(&submarine, 80, 90); + // startingSprite += move_metasprite_ex(squid_metasprite, 0, 0, startingSprite, 20 + 8, 80 + 16); + // startingSprite += move_metasprite_ex(submarine_metasprite, 0, 0, startingSprite, 80 + 8, 90 + 16); + // MoveCharacter(&submarine, 80, 90); // Show the HUD // show_hud(); @@ -167,9 +244,9 @@ void main(void) update_two_frame_counter(); animate_actor(&submarine, two_frame_counter); + // animate_actor(&squid, two_frame_counter); move_actor_with_joypad(&submarine, framecount); - // joypad_input(&submarine); animcounter(96); // I picked 96 because of how many factors it has. Easy to have different spaced timings that don't stutter when the counter loops. }