From 9adfac023fa97f0069c1b0f4d307c17b6b25b752 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 24 Nov 2023 21:17:24 +0100 Subject: [PATCH] feat(animation): separated sprite flip logic into helper function --- game/src/PlayerStates.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/game/src/PlayerStates.c b/game/src/PlayerStates.c index 3f80a74..d669506 100644 --- a/game/src/PlayerStates.c +++ b/game/src/PlayerStates.c @@ -1,6 +1,14 @@ #include "PlayerStates.h" #include "Player.h" +static inline +void InternalSpriteFlipWithMovement(Player* self) { + if(self->moveInput.x > 0.f) + sprite_flip_horizontal(self->sprite, 0); + if(self->moveInput.x < -0.1f) + sprite_flip_horizontal(self->sprite, 1); +} + void PlayerAnimationExit(Player* self) {} void PlayerIdleEnter(Player* self) { @@ -23,25 +31,20 @@ void PlayerWalk_Enter(Player* self) { } const State* PlayerWalk_Update(Player* self, float deltaTime) { + rigidbody_set_velocity(self->rigidbody, vmulf(vnormalizedf(self->moveInput), PLAYER_SPEED)); + if(veqf(self->moveInput, ZeroVector)) return PlayerIdle(); if(self->attackInput) return PlayerJabA(); - - if(self->moveInput.x > 0.f) - sprite_flip_horizontal(self->sprite, 0); - if(self->moveInput.x < -0.1f) - sprite_flip_horizontal(self->sprite, 1); - - self->transform.position = vaddf(self->transform.position, vmulff(vmulf(vnormalizedf(self->moveInput), PLAYER_SPEED), deltaTime)); - + InternalSpriteFlipWithMovement(self); return PlayerWalk(); } void PlayerAttackEnter(Player* self) { self->attackInput = 0; - - PlayerWalk_Update(self, 0.f); + rigidbody_set_velocity(self->rigidbody, ZeroVector); + InternalSpriteFlipWithMovement(self); } void PlayerJabA_Enter(Player* self) {