feat(animation): separated sprite flip logic into helper function

This commit is contained in:
Sara 2023-11-24 21:17:24 +01:00
parent 333ada2752
commit 9adfac023f

View file

@ -1,6 +1,14 @@
#include "PlayerStates.h" #include "PlayerStates.h"
#include "Player.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 PlayerAnimationExit(Player* self) {}
void PlayerIdleEnter(Player* self) { void PlayerIdleEnter(Player* self) {
@ -23,25 +31,20 @@ void PlayerWalk_Enter(Player* self) {
} }
const State* PlayerWalk_Update(Player* self, float deltaTime) { const State* PlayerWalk_Update(Player* self, float deltaTime) {
rigidbody_set_velocity(self->rigidbody, vmulf(vnormalizedf(self->moveInput), PLAYER_SPEED));
if(veqf(self->moveInput, ZeroVector)) if(veqf(self->moveInput, ZeroVector))
return PlayerIdle(); return PlayerIdle();
if(self->attackInput) if(self->attackInput)
return PlayerJabA(); return PlayerJabA();
InternalSpriteFlipWithMovement(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);
self->transform.position = vaddf(self->transform.position, vmulff(vmulf(vnormalizedf(self->moveInput), PLAYER_SPEED), deltaTime));
return PlayerWalk(); return PlayerWalk();
} }
void PlayerAttackEnter(Player* self) { void PlayerAttackEnter(Player* self) {
self->attackInput = 0; self->attackInput = 0;
rigidbody_set_velocity(self->rigidbody, ZeroVector);
PlayerWalk_Update(self, 0.f); InternalSpriteFlipWithMovement(self);
} }
void PlayerJabA_Enter(Player* self) { void PlayerJabA_Enter(Player* self) {