mirror of
https://git.planet-casio.com/Slyvtt/Collab_RPG.git
synced 2025-04-19 09:27:16 +02:00
31 lines
1,016 B
C
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;
|
|
}
|
|
}
|