From 12b80da7f61df440a6e3252012436fb0baebe073 Mon Sep 17 00:00:00 2001 From: nathansmith117 Date: Thu, 15 Feb 2024 16:32:41 -0700 Subject: Fixed up animation system --- src/animation.h | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/animation.h') diff --git a/src/animation.h b/src/animation.h index 089e6e1..963af74 100644 --- a/src/animation.h +++ b/src/animation.h @@ -1,30 +1,44 @@ #include "gameCommon.h" +#include #define ANIMATION_DEFAULT_DELAY 0.1 #ifndef ANIMATION_H #define ANIMATION_H +// The asset is what is loaded from a file and the animation is like a instance of it. + +typedef struct AnimationAsset { + // The animation is stored in a image and the texture is used for fast rendering. + int frameCount; + Image image; +} AnimationAsset; + typedef struct Animation { // Frame stuff. int frameCount; int currentFrame; - // The animation is stored in a image and the texture is used for fast rendering. - Image image; + AnimationAsset* asset; Texture texture; + int width; + int height; + // Timing the frames. double delay; double lastTime; } Animation; -Animation loadAnimationFromFile(const char* fileName); -void freeAnimation(Animation* animation); +AnimationAsset loadAnimationAssetFromFile(const char* fileName); +void freeAnimationAsset(AnimationAsset* animationAsset); + +Animation createAnimation(AnimationAsset* asset, double delay); +void closeAnimation(Animation* animation); // Set the frame and update the texture. -void setAnimationFrame(Animation * animation, int frame); +void setAnimationFrame(Animation* animation, int frame); -void runAnimation(Animation * animation); +void runAnimation(Animation* animation); #endif -- cgit v1.2.3