move easing_animate to common tasks
This commit is contained in:
parent
8fed29ca68
commit
d724d7d997
4 changed files with 39 additions and 38 deletions
|
@ -313,3 +313,15 @@ cmplx common_wander(cmplx origin, double dist, Rect bounds) {
|
|||
|
||||
return dest;
|
||||
}
|
||||
|
||||
DEFINE_EXTERN_TASK(common_easing_animate) {
|
||||
float from = *ARGS.value;
|
||||
float scale = ARGS.to - from;
|
||||
float ftime = ARGS.duration;
|
||||
|
||||
for(int t = 0; t < ARGS.duration;t++) {
|
||||
YIELD;
|
||||
*ARGS.value = from + scale * ARGS.ease(t / ftime);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "move.h"
|
||||
#include "entity.h"
|
||||
#include "global.h"
|
||||
#include "util/glm.h"
|
||||
|
||||
DECLARE_EXTERN_TASK(
|
||||
common_drop_items,
|
||||
|
@ -115,4 +116,14 @@ DECLARE_EXTERN_TASK(
|
|||
}
|
||||
);
|
||||
|
||||
DECLARE_EXTERN_TASK(
|
||||
common_easing_animate,
|
||||
{
|
||||
float *value;
|
||||
float to;
|
||||
int duration;
|
||||
glm_ease_t ease;
|
||||
}
|
||||
);
|
||||
|
||||
#endif // IGUARD_common_tasks_h
|
||||
|
|
|
@ -13,19 +13,9 @@
|
|||
|
||||
#include "stageutils.h"
|
||||
#include "coroutine.h"
|
||||
#include "common_tasks.h"
|
||||
#include "util/glm.h"
|
||||
|
||||
TASK(easing_animate, { float *val; float to; int time; glm_ease_t ease; }) {
|
||||
float from = *ARGS.val;
|
||||
float scale = ARGS.to - from;
|
||||
float ftime = ARGS.time;
|
||||
|
||||
for(int t = 0; t < ARGS.time;t++) {
|
||||
YIELD;
|
||||
*ARGS.val = from + scale * ARGS.ease(t / ftime);
|
||||
}
|
||||
}
|
||||
|
||||
TASK(animate_hina_mode, NO_ARGS) {
|
||||
Stage2DrawData *draw_data = stage2_get_draw_data();
|
||||
|
||||
|
@ -58,15 +48,15 @@ TASK(animate_bg_fullstage, NO_ARGS) {
|
|||
|
||||
real dur = 600;
|
||||
glm_ease_t func = glm_ease_quad_inout;
|
||||
INVOKE_TASK(easing_animate,&cam->rot.v[0], 40, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(easing_animate,&cam->rot.v[2], -2.5f, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(easing_animate,&cam->pos[0], 0, dur, func);
|
||||
INVOKE_TASK(easing_animate,&cam->vel[1], 0.05f, dur, func);
|
||||
INVOKE_TASK(common_easing_animate,&cam->rot.v[0], 40, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(common_easing_animate,&cam->rot.v[2], -2.5f, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(common_easing_animate,&cam->pos[0], 0, dur, func);
|
||||
INVOKE_TASK(common_easing_animate,&cam->vel[1], 0.05f, dur, func);
|
||||
|
||||
INVOKE_TASK(easing_animate, &cam->rot.v[0], 40, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(easing_animate, &cam->rot.v[2], -2.5f, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(easing_animate, &cam->pos[0], 0, dur, func);
|
||||
INVOKE_TASK(easing_animate, &cam->vel[1], 0.05f, dur, func);
|
||||
INVOKE_TASK(common_easing_animate, &cam->rot.v[0], 40, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(common_easing_animate, &cam->rot.v[2], -2.5f, dur, glm_ease_quad_out);
|
||||
INVOKE_TASK(common_easing_animate, &cam->pos[0], 0, dur, func);
|
||||
INVOKE_TASK(common_easing_animate, &cam->vel[1], 0.05f, dur, func);
|
||||
|
||||
for(;;) {
|
||||
YIELD;
|
||||
|
|
|
@ -12,19 +12,7 @@
|
|||
#include "draw.h"
|
||||
|
||||
#include "stageutils.h"
|
||||
#include "util/glm.h"
|
||||
|
||||
// merge with stage2 version?
|
||||
TASK(easing_animate, { float *val; float to; int time; glm_ease_t ease; }) {
|
||||
float from = *ARGS.val;
|
||||
float scale = ARGS.to - from;
|
||||
float ftime = ARGS.time;
|
||||
|
||||
for(int t = 0; t < ARGS.time;t++) {
|
||||
YIELD;
|
||||
*ARGS.val = from + scale * ARGS.ease(t / ftime);
|
||||
}
|
||||
}
|
||||
#include "common_tasks.h"
|
||||
|
||||
TASK(update_stage_3d, NO_ARGS) {
|
||||
for(;;) {
|
||||
|
@ -44,16 +32,16 @@ TASK(animate_bg_fullstage, NO_ARGS) {
|
|||
cam->vel[2] = 0.008;
|
||||
|
||||
WAIT(400);
|
||||
INVOKE_TASK(easing_animate,&cam->vel[1], 0.013, 200, glm_ease_sine_inout);
|
||||
INVOKE_TASK(easing_animate,&cam->vel[2], 0.0, 200, glm_ease_quad_out);
|
||||
INVOKE_TASK(common_easing_animate,&cam->vel[1], 0.013, 200, glm_ease_sine_inout);
|
||||
INVOKE_TASK(common_easing_animate,&cam->vel[2], 0.0, 200, glm_ease_quad_out);
|
||||
WAIT(800);
|
||||
INVOKE_TASK(easing_animate,&cam->pos[2], 4, 400, glm_ease_quad_inout);
|
||||
INVOKE_TASK(common_easing_animate,&cam->pos[2], 4, 400, glm_ease_quad_inout);
|
||||
WAIT(1200);
|
||||
INVOKE_TASK(easing_animate,&cam->pos[2], 3, 400, glm_ease_quad_inout);
|
||||
INVOKE_TASK(common_easing_animate,&cam->pos[2], 3, 400, glm_ease_quad_inout);
|
||||
WAIT(100);
|
||||
INVOKE_TASK(easing_animate,&cam->pos[2], 4, 400, glm_ease_quad_inout);
|
||||
INVOKE_TASK(common_easing_animate,&cam->pos[2], 4, 400, glm_ease_quad_inout);
|
||||
WAIT(300);
|
||||
INVOKE_TASK(easing_animate,&cam->vel[1], 0.06, 200, glm_ease_quad_in);
|
||||
INVOKE_TASK(common_easing_animate,&cam->vel[1], 0.06, 200, glm_ease_quad_in);
|
||||
}
|
||||
|
||||
void stage4_bg_init_fullstage() {
|
||||
|
|
Loading…
Reference in a new issue