From 7c4e2dffa9b2b436f27669ca15d0bc07d2a0c0a3 Mon Sep 17 00:00:00 2001 From: huaqo-games Date: Thu, 6 Nov 2025 14:59:53 +0100 Subject: [PATCH] feat: add GetDirectionBetweenTwoVectors --- include/engine.h | 1 + src/appGameBirds.c | 3 ++- src/enginePhysics.c | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/engine.h b/include/engine.h index a1ea2bf..5de25d0 100644 --- a/include/engine.h +++ b/include/engine.h @@ -207,6 +207,7 @@ void SwapAndPopObjectsArrayOnRecCollision(ObjectArray *objects, const Rectangle void SwapAndPopObjectsArrayOnPointCollision(ObjectArray *objects, const Vector2 point); void RenderObjectArray(const ObjectArray *objects); +Vector2 GetDirectionBetweenTwoVectors(Vector2 vec1, Vector2 vec2); void UpdatePhysicsDirection(Vector2 *direction, Vector2 vector); void UpdatePhysicsVelocity(Vector2 *velocity, Vector2 *direction, float *speed); void UpdatePhysicsPosition(Vector2 *position, Vector2 *velocity); diff --git a/src/appGameBirds.c b/src/appGameBirds.c index 0260987..81a79f9 100644 --- a/src/appGameBirds.c +++ b/src/appGameBirds.c @@ -1,4 +1,5 @@ #include "appTypes.h" +#include "engine.h" const TextureAsset birdsTextureAssets[BIRDS_TEX_COUNT] = { @@ -48,7 +49,7 @@ Birds CreateBirds(void){ } void UpdateBirds(Birds *birds){ Camera2D *camera = GetCamera(); - Vector2 dir = {camera->target.x - birds->physics.position.x, camera->target.y - birds->physics.position.y}; + Vector2 dir = GetDirectionBetweenTwoVectors(birds->physics.position, camera->target); UpdatePhysics(&birds->physics, dir); printf("birdsPos: %f, %f", birds->physics.position.x, birds->physics.position.y); printf("cameraTarget: %f, %f",camera->target.x, camera->target.y ); diff --git a/src/enginePhysics.c b/src/enginePhysics.c index 88ec39d..cdfd2b6 100644 --- a/src/enginePhysics.c +++ b/src/enginePhysics.c @@ -1,5 +1,12 @@ #include "engine.h" +Vector2 GetDirectionBetweenTwoVectors(Vector2 vec1, Vector2 vec2) +{ + Vector2 dir = {vec2.x - vec1.x, vec2.y - vec1.y}; + dir = Vector2Normalize(dir); + return dir; +} + void UpdatePhysicsDirection(Vector2 *direction, Vector2 vector) { *direction = Vector2Normalize(vector);