From ac917901e44c2f3f0fbc447ab45a64f526e53481 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Tue, 10 Jun 2025 17:24:12 -0500 Subject: [PATCH] Triangle --- src/duskraylib/display/render.c | 60 ++++++++++++++++++++++++++++----- src/duskraylib/input.c | 13 +++++++ 2 files changed, 64 insertions(+), 9 deletions(-) diff --git a/src/duskraylib/display/render.c b/src/duskraylib/display/render.c index a3eb4fc..b5257ec 100644 --- a/src/duskraylib/display/render.c +++ b/src/duskraylib/display/render.c @@ -10,8 +10,8 @@ #include "raylib.h" #include "rpg/entity/entity.h" -const uint16_t RENDER_WIDTH = 800; -const uint16_t RENDER_HEIGHT = 600; +const uint16_t RENDER_WIDTH = 480; +const uint16_t RENDER_HEIGHT = 270; void renderInit() { InitWindow(RENDER_WIDTH, RENDER_HEIGHT, "Dusk"); @@ -19,6 +19,9 @@ void renderInit() { } bool_t renderUpdate() { + uint8_t x, y; + char_t buffer[64]; + // End rendering? if(WindowShouldClose()) return false; @@ -33,13 +36,52 @@ bool_t renderUpdate() { continue; } - DrawRectangle( - (ent->x * ENTITY_WIDTH) + ent->subX, - (ent->y * ENTITY_HEIGHT) + ent->subY, - ENTITY_WIDTH, - ENTITY_HEIGHT, - RED - ); + x = ent->x * ENTITY_WIDTH + ent->subX; + y = ent->y * ENTITY_HEIGHT + ent->subY; + + // DrawRectangle( + // x, y, + // ENTITY_WIDTH, ENTITY_HEIGHT, + // BLUE + // ); + + switch(ent->dir) { + case ENTITY_DIR_UP: + DrawTriangle( + (Vector2){ x, y + ENTITY_HEIGHT }, + (Vector2){ x + ENTITY_WIDTH, y + ENTITY_HEIGHT }, + (Vector2){ x + ENTITY_WIDTH / 2, y }, + RED + ); + break; + case ENTITY_DIR_DOWN: + DrawTriangle( + (Vector2){ x, y }, + (Vector2){ x + ENTITY_WIDTH / 2, y + ENTITY_HEIGHT }, + (Vector2){ x + ENTITY_WIDTH, y }, + RED + ); + break; + case ENTITY_DIR_LEFT: + DrawTriangle( + (Vector2){ x + ENTITY_WIDTH, y }, + (Vector2){ x, y + ENTITY_HEIGHT / 2 }, + (Vector2){ x + ENTITY_WIDTH, y + ENTITY_HEIGHT }, + RED + ); + break; + case ENTITY_DIR_RIGHT: + DrawTriangle( + (Vector2){ x, y }, + (Vector2){ x, y + ENTITY_HEIGHT }, + (Vector2){ x + ENTITY_WIDTH, y + ENTITY_HEIGHT / 2 }, + RED + ); + break; + default: + assertUnreachable("Invalid entity direction"); + } + ent++; } while(ent < (ENTITIES + ENTITY_COUNT)); diff --git a/src/duskraylib/input.c b/src/duskraylib/input.c index ff5240d..b5e60ba 100644 --- a/src/duskraylib/input.c +++ b/src/duskraylib/input.c @@ -18,8 +18,21 @@ const inputmap_t INPUT_MAP[] = { { KEY_S, INPUT_DOWN }, { KEY_A, INPUT_LEFT }, { KEY_D, INPUT_RIGHT }, + { KEY_SPACE, INPUT_ACTION }, + { KEY_E, INPUT_ACTION }, + { KEY_ENTER, INPUT_ACTION }, + { KEY_ESCAPE, INPUT_CANCEL }, + { KEY_Q, INPUT_CANCEL }, + { KEY_BACKSPACE, INPUT_CANCEL }, + + { KEY_UP, INPUT_UP }, + { KEY_DOWN, INPUT_DOWN }, + { KEY_LEFT, INPUT_LEFT }, + { KEY_RIGHT, INPUT_RIGHT }, + { KEY_ENTER, INPUT_ACTION }, + { KEY_BACKSPACE, INPUT_CANCEL }, { 0, 0 } };