Collab_RPG/src/animation.c
2024-08-01 17:48:10 +02:00

31 lines
1,016 B
C

#include "animation.h"
#include <gint/display.h>
void animation_new(Animation *animation, bopti_image_t *image,
unsigned char len, unsigned short frame_ms) {
animation->image = image;
animation->frame = 0;
animation->len = len;
animation->frame_ms = frame_ms;
animation->current_ms = 0;
animation->width = image->width / len;
animation->height = image->height;
animation->wrap_dest = 0;
}
void animation_draw(Animation *animation, int x, int y) {
dsubimage(x, y, animation->image, animation->frame * animation->width, 0,
animation->width, animation->height, DIMAGE_NONE);
}
void animation_update(Animation *animation, unsigned short frame_ms) {
animation->current_ms += frame_ms;
while(animation->current_ms > animation->frame_ms) {
animation->frame++;
if(animation->frame >= animation->len) {
animation->frame = animation->wrap_dest;
}
animation->current_ms -= animation->frame_ms;
}
}