From 9f616e196cf9eb75a4153c8869c142da8bb91f4b Mon Sep 17 00:00:00 2001 From: n0ffie Date: Thu, 13 Feb 2025 00:49:56 +0100 Subject: [PATCH] fixing sprites idk... --- alyson/src/animation/sprite.c | 31 +++++++++++++++++++++++-------- assets/karl-heinz_head.png | Bin 0 -> 2687 bytes src/main.c | 25 ++++++++++++++++++++----- 3 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 assets/karl-heinz_head.png diff --git a/alyson/src/animation/sprite.c b/alyson/src/animation/sprite.c index 62f9a3c..27b1c1c 100644 --- a/alyson/src/animation/sprite.c +++ b/alyson/src/animation/sprite.c @@ -37,7 +37,24 @@ void UpdateSpriteAnimation(SpriteAnimation self, float dt) { } void DrawSpriteAnimation(SpriteAnimation spriteAnimation, Vector2 position) { - Vector2 drawpos = Vector2Add(position, Vector2Scale(spriteAnimation->size, 2.f)); +#ifdef _DEBUG + DrawCircleV(position, 5, DARKGREEN); +#endif + Rectangle destination = (Rectangle){ + 0, + 0, + spriteAnimation->size.x * spriteAnimation->scale, + spriteAnimation->size.y * spriteAnimation->scale + } ; + + Vector2 origin = (Vector2){ + .x = position.x + destination.width/2.f, + .y = position.y + destination.height/2.f + }; +#ifdef _DEBUG + DrawCircleV(origin, 5, RED); +#endif + DrawTexturePro( spriteAnimation->texture, (Rectangle){ @@ -46,16 +63,14 @@ void DrawSpriteAnimation(SpriteAnimation spriteAnimation, Vector2 position) { spriteAnimation->sourceRect.width, spriteAnimation->sourceRect.height }, - (Rectangle){ - position.x, - position.y, - spriteAnimation->size.x * spriteAnimation->scale, - spriteAnimation->size.y * spriteAnimation->scale - }, - position, + destination, + origin, spriteAnimation->rotation, WHITE ); +#ifdef _DEBUG + DrawRectangleLinesEx(destination, 2, BLACK); +#endif } void DestroySpriteAnimation(SpriteAnimation spriteAnimation) diff --git a/assets/karl-heinz_head.png b/assets/karl-heinz_head.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1a26cd08765be916feb5aedbefc9065b7ada67 GIT binary patch literal 2687 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 literal 0 HcmV?d00001 diff --git a/src/main.c b/src/main.c index 892cbc8..839eee9 100644 --- a/src/main.c +++ b/src/main.c @@ -20,24 +20,39 @@ int main(int argc, char** argv) { InitWindow(900, 600, "Colysis"); - SetConfigFlags(FLAG_WINDOW_RESIZABLE | FLAG_WINDOW_UNDECORATED); - Texture2D gery = LoadTexture(ASSETS_PATH "/gery_hand.png"); + SetConfigFlags(FLAG_WINDOW_RESIZABLE); + Texture2D gery = LoadTexture(ASSETS_PATH "/karl-heinz_head.png"); - SpriteAnimation geryanim = CreateSpriteAnimation(gery, (Vector2){64*5,64}, (Vector2){64,64}, 0.f, 1.f, 5, 0.2f); + SpriteAnimation geryanim = CreateSpriteAnimation(gery, (Vector2){64*14,64}, (Vector2){64,64}, 0.f, 4.f, 5, 0.15f); + + Camera2D camera = { 0 }; + camera.target = (Vector2){0,0}; + camera.offset = (Vector2){GetScreenWidth()/2.f,GetScreenHeight()/2.f}; + camera.rotation = 0.f; + camera.zoom = 1.f; while (!WindowShouldClose()) { ClearBackground((Color){ 0x00, 0x6d, 0xfb }); float dt = GetFrameTime(); + UpdateSpriteAnimation(geryanim, dt); BeginDrawing(); { - DrawTextFull(GetFontDefault(), "Darling, I'm Home!", (Vector2){20,20}, TEXT_ORIENTATION_RIGHT, 0, 24, 5, 5, RAYWHITE); + BeginMode2D(camera); + { + DrawSpriteAnimation(geryanim, (Vector2){0,0}); - DrawSpriteAnimation(geryanim, (Vector2){GetScreenWidth()/2.f, GetScreenHeight()/2.f}); + } + EndMode2D(); + + { + DrawTextFull(GetFontDefault(), "Darling, I'm Home!", (Vector2){20,20}, TEXT_ORIENTATION_RIGHT, 0, 24, 5, 5, RAYWHITE); + + } } EndDrawing();