diff options
author | heavydemon21 <nielsstunnebrink1@gmail.com> | 2024-12-02 21:00:54 +0100 |
---|---|---|
committer | heavydemon21 <nielsstunnebrink1@gmail.com> | 2024-12-02 21:00:54 +0100 |
commit | 0a1739de21e5ab270cb45efb6fc0aed092d81227 (patch) | |
tree | ab4019d595fce2410c5ca5d0fd98ad6d8205c079 /src/crepe/api/Animator.cpp | |
parent | a84ca09e97d466643f022acfffcf4c6a77f42052 (diff) |
added all the contructor strutcts for animator,sprite and camera
Diffstat (limited to 'src/crepe/api/Animator.cpp')
-rw-r--r-- | src/crepe/api/Animator.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/crepe/api/Animator.cpp b/src/crepe/api/Animator.cpp index ce824e6..1234967 100644 --- a/src/crepe/api/Animator.cpp +++ b/src/crepe/api/Animator.cpp @@ -9,8 +9,7 @@ using namespace crepe; Animator::Animator(game_object_id_t id, const Animator::Data & ctx) : Component(id), - data(ctx) -{ + data(ctx) { dbg_trace(); this->data.spritesheet.mask.h /= this->data.col; @@ -23,21 +22,33 @@ Animator::Animator(game_object_id_t id, const Animator::Data & ctx) ss.data.aspect_ratio = static_cast<double>(this->data.spritesheet.mask.w) / this->data.spritesheet.mask.h; } + Animator::~Animator() { dbg_trace(); } void Animator::loop() { this->data.looping = true; } + void Animator::play() { this->active = true; } + void Animator::pause() { this->active = false; } + void Animator::stop() { this->active = false; this->data.curr_col = 0; this->data.curr_row = 0; } void Animator::set_fps(int fps) { this->data.fps = fps; } + void Animator::set_cycle_range(int start, int end) { this->data.cycle_start = start, this->data.cycle_end = end; } + void Animator::set_anim(int col) { this->data.curr_row = 0; this->data.curr_col = col; } + +void Animator::next_anim() { + Animator::Data & ctx = this->data; + ctx.curr_row = ctx.curr_row++ % ctx.row; + ctx.spritesheet.mask.x = ctx.curr_row * ctx.spritesheet.mask.w; +} |