From 6884619f057440fdfef9f9d0fbec6032032557b2 Mon Sep 17 00:00:00 2001 From: Klemen Plestenjak Date: Sun, 7 Jan 2024 09:01:33 +0100 Subject: [PATCH] Animate arm movement when moving --- game/systems/s_entity.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/game/systems/s_entity.c b/game/systems/s_entity.c index 17e551a..b6ad905 100644 --- a/game/systems/s_entity.c +++ b/game/systems/s_entity.c @@ -146,7 +146,11 @@ static void entityUpdateArm(ecs_entity_t armEntity, Position pos, Velocity vel, if (!armEntity) return; const Arm arm = *ecs_get(ECS, armEntity, Arm); - Vector2 v = {arm.extended, 0.0f}; + f32 time = fmod(GetTime() * 2.0f, 2.0f); + if (time > 1.0f) time = 2.0f - time; + + f32 velLen = Clamp(Vector2Length(vel), 0, 4.0f) * time; + Vector2 v = {arm.extended, velLen}; v = Vector2Rotate(v, orient + arm.offset); v = Vector2Add(v, pos); ecs_set_ptr(ECS, armEntity, Position, &v);