#include #include "../api/Animator.h" #include "../facade/SDLContext.h" #include "../manager/ComponentManager.h" #include "AnimatorSystem.h" using namespace crepe; void AnimatorSystem::update() { ComponentManager & mgr = this->component_manager; RefVector animations = mgr.get_components_by_type(); uint64_t tick = SDLContext::get_instance().get_ticks(); for (Animator & a : animations) { if (!a.active) continue; // (10 frames per second) a.curr_row = (tick / 100) % a.row; a.spritesheet.mask.x = (a.curr_row * a.spritesheet.mask.w) + a.curr_col; a.spritesheet.mask = a.spritesheet.mask; } }