diff options
| -rw-r--r-- | src/crepe/system/AnimatorSystem.cpp | 20 | 
1 files changed, 10 insertions, 10 deletions
| diff --git a/src/crepe/system/AnimatorSystem.cpp b/src/crepe/system/AnimatorSystem.cpp index 1a30502..759d14c 100644 --- a/src/crepe/system/AnimatorSystem.cpp +++ b/src/crepe/system/AnimatorSystem.cpp @@ -26,22 +26,22 @@ void AnimatorSystem::frame_update() {  		duration_t frame_duration = 1000ms / ctx.fps;  		int cycle_end = (ctx.cycle_end == -1) ? a.grid_size.x : ctx.cycle_end; -		int total_frames = cycle_end - ctx.cycle_start; -		int curr_cycle_frame = (a.frame - ctx.cycle_start) % total_frames; -  		if (a.elapsed_time >= frame_duration) {  			a.elapsed_time = 0ms;  			a.frame++; +			if (a.frame == cycle_end) { +				a.frame = ctx.cycle_start; +				if (!ctx.looping) { +					a.active = false; +					continue; +				} +			}  		} -		if (!ctx.looping && a.frame >= cycle_end) { -			a.active = false; -			continue; -		} -		ctx.row = (ctx.cycle_start + curr_cycle_frame) % a.grid_size.x; -		//ctx.col = curr_cycle_frame / a.grid_size.x; +		ctx.row = ctx.cycle_start + a.frame;  		a.spritesheet.mask.x = ctx.row * a.spritesheet.mask.w; -		a.spritesheet.mask.y = ctx.col * a.spritesheet.mask.y; +		//a.spritesheet.mask.y = ctx.col * a.spritesheet.mask.y; +  	}  } |