aboutsummaryrefslogtreecommitdiffstats
path: root/src/animation.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/animation.h')
-rw-r--r--src/animation.h26
1 files changed, 20 insertions, 6 deletions
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 <raylib.h>
#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