Pixel-Composer/scripts/animation_controller/animation_controller.gml

47 lines
949 B
Text
Raw Normal View History

2022-12-10 05:06:01 +01:00
#region anomation class
function AnimationManager() constructor {
2023-03-07 14:29:47 +01:00
frames_total = 30;
current_frame = 0;
real_frame = 0;
2023-01-01 02:06:02 +01:00
time_since_last_frame = 0;
2023-03-07 14:29:47 +01:00
framerate = 30;
is_playing = false;
frame_progress = false;
play_freeze = 0;
2022-12-10 05:06:01 +01:00
2022-12-23 04:45:52 +01:00
rendering = false;
2022-12-10 05:06:01 +01:00
playback = ANIMATOR_END.loop;
static setFrame = function(frame) {
2022-12-12 09:08:03 +01:00
var _c = current_frame;
2023-02-14 02:51:14 +01:00
frame = clamp(frame, 0, frames_total);
2022-12-10 05:06:01 +01:00
real_frame = frame;
current_frame = round(frame);
2022-12-12 09:08:03 +01:00
2023-02-14 02:51:14 +01:00
if(current_frame == frames_total) {
if(playback == ANIMATOR_END.stop || rendering) {
is_playing = false;
rendering = false;
} else
setFrame(0);
}
if(_c != current_frame) {
2022-12-12 09:08:03 +01:00
frame_progress = true;
2023-02-14 02:51:14 +01:00
time_since_last_frame = 0;
UPDATE = RENDER_TYPE.full;
2023-03-02 07:59:14 +01:00
} else
frame_progress = false;
2022-12-10 05:06:01 +01:00
}
}
#endregion
#region object
2022-12-19 13:35:30 +01:00
enum ANIMATOR_END {
loop,
stop
}
2022-12-10 05:06:01 +01:00
globalvar ANIMATOR;
ANIMATOR = new AnimationManager();
#endregion