aboutsummaryrefslogtreecommitdiffstats
path: root/src/animation.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/animation.c')
-rw-r--r--src/animation.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/animation.c b/src/animation.c
index 52210ae..1a2f612 100644
--- a/src/animation.c
+++ b/src/animation.c
@@ -31,6 +31,8 @@ Animation createAnimation(AnimationAsset* asset, double delay)
animation.delay = delay;
animation.lastTime = -1.0; // -1.0 for no last time.
+ animation.playing = false;
+
return animation;
}
@@ -49,6 +51,11 @@ void setAnimationFrame(Animation* animation, int frame)
void runAnimation(Animation* animation)
{
+ if (!animation->playing)
+ {
+ return;
+ }
+
double currentTime = GetTime();
if (animation->lastTime == -1.0 || currentTime - animation->lastTime >= animation->delay)
@@ -68,7 +75,19 @@ void runAnimation(Animation* animation)
}
}
+void playAnimation(Animation* animation)
+{
+ animation->playing = true;
+ animation->lastTime = -1.0;
+}
+
void pauseAnimation(Animation* animation)
{
+ animation->playing = false;
+}
+
+void toggleAnimation(Animation* animation)
+{
+ animation->playing = !animation->playing;
animation->lastTime = -1.0;
}