Options
All
• Public
• Public/Protected
• All

# Class EasingFunctions

Standard easing functions for motion in Excalibur, defined on a domain of [0, duration] and a range from [+startValue,+endValue] Given a time, the function will return a value from positive startValue to positive endValue.

``````function Linear (t) {
return t * t;
}

// accelerating from zero velocity
return t * t;
}

// decelerating to zero velocity
return t * (2 - t);
}

// acceleration until halfway, then deceleration
return t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
}

// accelerating from zero velocity
function EaseInCubic (t) {
return t * t * t;
}

// decelerating to zero velocity
function EaseOutCubic (t) {
return (--t) * t * t + 1;
}

// acceleration until halfway, then deceleration
function EaseInOutCubic (t) {
return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
}``````

### Hierarchy

• EasingFunctions

## Properties

### Static EaseInCubic

EaseInCubic: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;return endValue * currentTime * currentTime * currentTime + startValue;})

### Static EaseInOutCubic

EaseInOutCubic: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration / 2;if (currentTime < 1) {return (endValue / 2) * currentTime * currentTime * currentTime + startValue;}currentTime -= 2;return (endValue / 2) * (currentTime * currentTime * currentTime + 2) + startValue;})

EaseInOutQuad: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration / 2;if (currentTime < 1) {return (endValue / 2) * currentTime * currentTime + startValue;}currentTime--;return (-endValue / 2) * (currentTime * (currentTime - 2) - 1) + startValue;})

EaseInQuad: (Anonymous function) = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;return endValue * currentTime * currentTime + startValue;})

### Static EaseOutCubic

EaseOutCubic: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;currentTime--;return endValue * (currentTime * currentTime * currentTime + 1) + startValue;})

EaseOutQuad: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;currentTime /= duration;return -endValue * currentTime * (currentTime - 2) + startValue;})

### Static Linear

Linear: EasingFunction = EasingFunctions.CreateReversibleEasingFunction((currentTime: number, startValue: number, endValue: number, duration: number) => {endValue = endValue - startValue;return (endValue * currentTime) / duration + startValue;})

## Methods

### Static CreateReversableEasingFunction

• CreateReversableEasingFunction(easing: EasingFunction): (Anonymous function)

### Static CreateReversibleEasingFunction

• CreateReversibleEasingFunction(easing: EasingFunction): (Anonymous function)

### Static CreateVectorEasingFunction

• CreateVectorEasingFunction(easing: EasingFunction): (Anonymous function)