You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
542 B
27 lines
542 B
#pragma once
|
|
#include <fmt/core.h>
|
|
|
|
struct Animator {
|
|
int width = 0;
|
|
int height = 0;
|
|
int max_frames = 0;
|
|
size_t count = 0;
|
|
int frame = 0;
|
|
bool playing = false;
|
|
|
|
inline void step(sf::Sprite& sprite, int rect_x, int rect_y, int rect_w, int rect_h) {
|
|
if(playing) {
|
|
count++;
|
|
frame = ((count / 4) % max_frames);
|
|
playing = frame != 0;
|
|
}
|
|
|
|
sprite.setTextureRect(sf::IntRect({
|
|
{rect_x + frame * width, rect_y},
|
|
{rect_w, rect_h}}));
|
|
}
|
|
|
|
inline void play() {
|
|
playing = true;
|
|
}
|
|
};
|
|
|