add actor array and draw all actors to screen

This commit is contained in:
StrangeD0s
2024-04-14 15:44:42 +02:00
parent 1754ce9954
commit 6cd4b87b05
6 changed files with 274 additions and 149 deletions
+141
View File
@@ -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 <gb/metasprites.h>
/* 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 */
+14 -6
View File
@@ -1,6 +1,6 @@
/* /*
SUBMARINE.H SPRITES.H
Include File. Include File.
@@ -10,7 +10,7 @@
Compression : None. Compression : None.
Counter : None. Counter : None.
Tile size : 8 x 8 Tile size : 8 x 8
Tiles : 0 to 12 Tiles : 0 to 30
Palette colors : None. Palette colors : None.
SGB Palette : None. SGB Palette : None.
@@ -21,11 +21,13 @@
This file was generated by GBTD v2.2 This file was generated by GBTD v2.2
*/ */
#include <gb/metasprites.h>
/* Bank of tiles. */ /* Bank of tiles. */
#define submarineBank 0 #define spritesBank 0
/* Start of tile array. */ /* Start of tile array. */
extern const unsigned char submarine_tileset[]; extern unsigned char sprites[];
/* Metatile index */ /* Metatile index */
extern const unsigned char submarine_tilemap[]; extern const unsigned char submarine_tilemap[];
// Create the metasprite structure for the character // Create the metasprite structure for the character
@@ -33,4 +35,10 @@ extern const metasprite_t submarine_metasprite[];
extern const metasprite_t submarine_metasprite2[]; 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 */
-75
View File
@@ -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 <gb/metasprites.h>
/* 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 */
+19 -45
View File
@@ -59,12 +59,12 @@ void move_actor(Actor *actor, uint8_t x, uint8_t y) // Evtl. sollte is_moving hi
// Move the metasprite // Move the metasprite
if (actor->is_facing_right) 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) if (!actor->is_facing_right)
{ {
// flip the metasprite horizontally when is_facing_right is TRUE // 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); 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 // move_metasprite_ex(actor->metasprite, 0, 0, actor->sprite_id, x + 8, y + 16);
actor->x = 80;
// Set initial Y move_actor(actor, x, 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);
} }
+1 -1
View File
@@ -38,4 +38,4 @@ void scroll_actor(Actor *actor);
void move_actor_with_joypad(Actor *actor, uint8_t framecount); 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); 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);
+98 -21
View File
@@ -6,15 +6,19 @@
#include "../res/hud.h" #include "../res/hud.h"
#include "../res/underwater_tiles.h" #include "../res/underwater_tiles.h"
#include "../res/underwater_map.h" #include "../res/underwater_map.h"
#include "../res/submarine_sprites.h" // #include "../res/submarine_sprites.h"
#include "../res/test-tileset.h" #include "../res/test-tileset.h"
#include "../res/test-tilemap.h" #include "../res/test-tilemap.h"
#include "../res/Sprites.h"
#include "actor.h" #include "actor.h"
// #include "input.h" // #include "input.h"
#include "collision.h" #include "collision.h"
Actor submarine; Actor submarine;
Actor squid1;
Actor squid2;
Actor fish1;
uint8_t framecount; uint8_t framecount;
uint8_t two_frame_counter = 0; 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_WIDTH_IN_TILES (tilemap_WIDTH >> 3)
#define TILEMAP_HEIGHT_IN_TILES (tilemap_HEIGHT >> 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 // 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 // from https://gbdev.gg8.se/forums/viewtopic.php?id=850
void animcounter(uint8_t numframes) 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) void init(void)
{ {
@@ -121,28 +212,14 @@ void init(void)
set_bkg_tiles(0, 0, TILEMAP_WIDTH_IN_TILES, TILEMAP_HEIGHT_IN_TILES, tilemap_map); set_bkg_tiles(0, 0, TILEMAP_WIDTH_IN_TILES, TILEMAP_HEIGHT_IN_TILES, tilemap_map);
// Fill tileset bank 0 with 4 actor tiles // 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 //! Prüfen, welche variables für das metasprite überhaupt noch benötigt werden
// Setup player actor setup();
setup_actor( // uint8_t startingSprite = 0;
// 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);
// 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); // MoveCharacter(&submarine, 80, 90);
// Show the HUD // Show the HUD
@@ -167,9 +244,9 @@ void main(void)
update_two_frame_counter(); update_two_frame_counter();
animate_actor(&submarine, two_frame_counter); animate_actor(&submarine, two_frame_counter);
// animate_actor(&squid, two_frame_counter);
move_actor_with_joypad(&submarine, framecount); 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. 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.
} }