tinyswords/sprites.c

32 lines
1.1 KiB
C

#include "sprites.h"
#include "include/raylib.h"
inline void PlayAnimation(int animation, SpriteAnimation *anims, SpriteAnimationPlayback *playback) {
playback->time_elapsed = 0.0f;
playback->current_frame = 0;
playback->row = animation;
playback->total_frames = anims[animation].total_frames;
playback->loop = anims[animation].loop;
}
void TickSpriteAnimations(SpriteAnimationPlayback *playbacks, int len) {
const f32 anim_speed = 1.0f / 10.0f;
for (int i = 0; i < len; i++) {
SpriteAnimationPlayback *playback = &playbacks[i];
playback->time_elapsed += GetFrameTime();
if (playback->time_elapsed >= anim_speed) {
playback->time_elapsed = 0.0f;
playback->current_frame++;
if (playback->current_frame >= playback->total_frames) {
if (playback->loop) {
playback->current_frame = 0;
}
}
}
}
}
inline bool IsAnimationFinished(SpriteAnimationPlayback playback) {
return playback.current_frame == playback.total_frames;
}