Exploring raycasters and possibly make a little "doom like" game based on it.
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.
raycaster/animator.hpp

28 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;
}
};