Add and use easing curves

This commit is contained in:
2021-07-15 06:58:09 -07:00
parent c53de8153a
commit 3f410d65dd
2 changed files with 16 additions and 6 deletions

View File

@ -16,11 +16,21 @@
*/
#define easeTimeToEase(start, current, duration) ((current-start)/duration)
// Easing Functions, most were sourced from https://gist.github.com/gre/1650294
#define easeLinear(t) t
#define easeInQuad(t) t*t
#define easeOutQuad(t) t*(2-t)
#define easeInQuad(t) (t*t)
#define easeOutQuad(t) (t*(2-t))
#define easeInOutQuad(t) (t < .5 ? 2*t*t : -1+(4-2*t)*t)
#define easeInCubic(t) t*t*t
#define easeOutCubic(t) t*(t-1)*(t-1)+1
#define easeInCubic(t) (t*t*t)
#define easeOutCubic(t) ((t-1)*(t-1)*(t-1)+1)
#define easeInOutCubic(t) (t < .5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1)
#define easeInQuart(t) (t*t*t*t)
#define easeOutQuart(t) (1 - (t-1)*(t-1)*(t-1)*(t-1))
#define easeInOutQuart(t) (t < .5 ? 8*t*t*t*t : 1-8*(t-1)*(t-1)*(t-1)*(t-1))
#define easeInQuint(t) (t*t*t*t*t)
#define easeOutQuint(t) (1 + (t-1)*(t-1)*(t-1)*(t-1)*(t-1))
#define easeInOutQuint(t) (t<.5 ? 16*t*t*t*t*t : 1+16*(t-1)*(t-1)*(t-1)*(t-1)*(t-1))

View File

@ -27,8 +27,8 @@ void pokerMatchInit(poker_t *poker, engine_t *engine) {
}
void pokerMatchUpdate(poker_t *poker, engine_t *engine) {
float t = easeTimeToEase(poker->roundMatch.time, engine->time.current, 5);
pokerLookAtPlayer(
&poker->cameraWorld, POKER_SEAT_PLAYER0,
easeOutCubic(easeTimeToEase(poker->roundMatch.time,engine->time.current,5))
&poker->cameraWorld, POKER_SEAT_PLAYER0, 1 - easeOutQuint(t)
);
}