feat(player): reworked some of the player's animation code

This commit is contained in:
Sara 2023-11-23 18:35:55 +01:00
parent dd0af050c9
commit 1d18873f4b

View file

@ -1,14 +1,12 @@
#ifndef TOPDOWN_PLAYER_H
#define TOPDOWN_PLAYER_H
#define TOPDOWN_PLAYER_H
#include "sprite.h"
#include "spritesheet.h"
#include "sprite_entity.h"
#include "drop.h"
#include "animation_sprite.h"
#include "behaviour_entity.h"
#include "drop.h"
#include "player_input.h"
#include "state_machine.h"
#include "transformable.h"
#include "player_input.h"
typedef struct Player {
Transform transform;
@ -19,14 +17,11 @@ typedef struct Player {
unsigned short faceDirection;
StateMachine* animationStateMachine;
size_t animFrame;
float animFrameTimer;
float animFrameInterval;
Spritesheet* walk;
Spritesheet* stand;
Sprite* sprite;
AnimationSprite* idle;
AnimationSprite* walk;
AnimationSprite* current_anim;
} Player;
extern Player* MakePlayer();
@ -40,30 +35,21 @@ extern void PlayerDraw(Player* self);
extern void PlayerInputHorizontal(Player* self, InputEvent event);
extern void PlayerInputVertical(Player* self, InputEvent event);
extern Sprite* PlayerGetSprite(Player* self);
extern Transform* PlayerGetTransform(Player* self);
impl_Drop_for(Player,
PlayerDestroy
)
PlayerDestroy)
impl_Transformable_for(Player,
PlayerGetTransform
)
impl_Transformable_for(Player,
PlayerGetTransform)
impl_BehaviourEntity_for(Player,
PlayerStart,
PlayerUpdate,
SpawnPlayer,
PlayerDraw
)
impl_BehaviourEntity_for(Player,
PlayerStart,
PlayerUpdate,
SpawnPlayer,
PlayerDraw)
impl_SpriteEntity_for(Player,
PlayerGetSprite
)
extern const State* PlayerAnimationUpdate(Player* player, float deltaTime);
extern void PlayerAnimationExit(Player* player);
extern void PlayerAnimationExit(Player* player);
extern void PlayerIdleEnter(Player* player);
extern const State* PlayerIdleUpdate(Player* player, float deltaTime);
@ -71,7 +57,6 @@ extern const State* PlayerIdleUpdate(Player* player, float deltaTime);
DefineState(PlayerIdle, Player,
PlayerIdleEnter,
PlayerAnimationExit,
PlayerIdleUpdate
)
PlayerIdleUpdate)
#endif // !TOPDOWN_PLAYER_H