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 "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) {