diff --git a/src/dusk/entity/entity.h b/src/dusk/entity/entity.h index 1fc8737..1630fb1 100644 --- a/src/dusk/entity/entity.h +++ b/src/dusk/entity/entity.h @@ -12,10 +12,10 @@ #define ENTITY_COUNT_MAX 32 typedef enum { - ENTITY_DIR_NORTH = 0, - ENTITY_DIR_SOUTH = 1, + ENTITY_DIR_SOUTH = 0, + ENTITY_DIR_EAST = 1, ENTITY_DIR_WEST = 2, - ENTITY_DIR_EAST = 3, + ENTITY_DIR_NORTH = 3, ENTITY_DIR_UP = ENTITY_DIR_NORTH, ENTITY_DIR_DOWN = ENTITY_DIR_SOUTH, diff --git a/src/duskraylib/display/draw/drawoverworld.c b/src/duskraylib/display/draw/drawoverworld.c index eeda0b8..9c5c6e1 100644 --- a/src/duskraylib/display/draw/drawoverworld.c +++ b/src/duskraylib/display/draw/drawoverworld.c @@ -98,47 +98,61 @@ void drawOverworldDrawEntity(const entity_t *entity) { uint32_t x = (uint32_t)floorf(entity->x); uint32_t y = (uint32_t)floorf(entity->y); + uint32_t row = 0; + uint32_t col = entity->dir; - DrawRectangle( - x, - y, - TILE_WIDTH, - TILE_HEIGHT, - (entity->type == ENTITY_TYPE_PLAYER) ? BLUE : YELLOW + DrawTextureRec( + RENDER_ENTITIES_TEXTURE, + (Rectangle){ + col * TILE_WIDTH, + row * TILE_HEIGHT, + TILE_WIDTH, + TILE_HEIGHT + }, + (Vector2){ x, y }, + WHITE ); + + // DrawRectangle( + // x, + // y, + // TILE_WIDTH, + // TILE_HEIGHT, + // (entity->type == ENTITY_TYPE_PLAYER) ? BLUE : YELLOW + // ); - switch(entity->dir) { - case ENTITY_DIR_NORTH: - DrawTriangle( - (Vector2){ x + TILE_WIDTH / 2, y }, - (Vector2){ x, y + TILE_HEIGHT }, - (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT }, - WHITE - ); - break; - case ENTITY_DIR_SOUTH: - DrawTriangle( - (Vector2){ x + TILE_WIDTH / 2, y + TILE_HEIGHT }, - (Vector2){ x + TILE_WIDTH, y }, - (Vector2){ x, y }, - WHITE - ); - break; - case ENTITY_DIR_WEST: - DrawTriangle( - (Vector2){ x, y + TILE_HEIGHT / 2 }, - (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT }, - (Vector2){ x + TILE_WIDTH, y }, - WHITE - ); - break; - case ENTITY_DIR_EAST: - DrawTriangle( - (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT / 2 }, - (Vector2){ x, y }, - (Vector2){ x, y + TILE_HEIGHT }, - WHITE - ); - break; - } + // switch(entity->dir) { + // case ENTITY_DIR_NORTH: + // DrawTriangle( + // (Vector2){ x + TILE_WIDTH / 2, y }, + // (Vector2){ x, y + TILE_HEIGHT }, + // (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT }, + // WHITE + // ); + // break; + // case ENTITY_DIR_SOUTH: + // DrawTriangle( + // (Vector2){ x + TILE_WIDTH / 2, y + TILE_HEIGHT }, + // (Vector2){ x + TILE_WIDTH, y }, + // (Vector2){ x, y }, + // WHITE + // ); + // break; + // case ENTITY_DIR_WEST: + // DrawTriangle( + // (Vector2){ x, y + TILE_HEIGHT / 2 }, + // (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT }, + // (Vector2){ x + TILE_WIDTH, y }, + // WHITE + // ); + // break; + // case ENTITY_DIR_EAST: + // DrawTriangle( + // (Vector2){ x + TILE_WIDTH, y + TILE_HEIGHT / 2 }, + // (Vector2){ x, y }, + // (Vector2){ x, y + TILE_HEIGHT }, + // WHITE + // ); + // break; + // } } \ No newline at end of file diff --git a/src/duskraylib/display/render.c b/src/duskraylib/display/render.c index ece27de..c3090a5 100644 --- a/src/duskraylib/display/render.c +++ b/src/duskraylib/display/render.c @@ -12,6 +12,7 @@ RenderTexture2D RENDER_SCREEN_TEXTURE; Texture2D RENDER_TILEMAP_TEXTURE; +Texture2D RENDER_ENTITIES_TEXTURE; void renderInit(void) { InitWindow( @@ -28,6 +29,7 @@ void renderInit(void) { RENDER_SCREEN_TEXTURE = LoadRenderTexture(RENDER_WIDTH, RENDER_HEIGHT); RENDER_TILEMAP_TEXTURE = LoadTexture("../data/tilemap.png"); + RENDER_ENTITIES_TEXTURE = LoadTexture("../data/entities.png"); drawOverworldInit(); } diff --git a/src/duskraylib/display/render.h b/src/duskraylib/display/render.h index 7d03bf6..2e2753a 100644 --- a/src/duskraylib/display/render.h +++ b/src/duskraylib/display/render.h @@ -10,4 +10,5 @@ #include "display/renderbase.h" extern RenderTexture2D RENDER_SCREEN_TEXTURE; -extern Texture2D RENDER_TILEMAP_TEXTURE; \ No newline at end of file +extern Texture2D RENDER_TILEMAP_TEXTURE; +extern Texture2D RENDER_ENTITIES_TEXTURE; \ No newline at end of file