Package clock provides a clock and time functions for a sprite engine.
var ( EaseIn = CubicBezier(0.42, 0, 1, 1) EaseOut = CubicBezier(0, 0, 0.58, 1) EaseInOut = CubicBezier(0.42, 0, 0.58, 1) )
Standard tween functions.
Easing means a slowing near the timing boundary, as defined by a cubic bezier curve. Exact parameters match the CSS properties.
CubicBezier generates a tween function determined by a Cubic Bézier curve.
The parameters are cubic control parameters. The curve starts at (0,0) going toward (x0,y0), and arrives at (1,1) coming from (x1,y1).
Linear computes the fraction [0,1] that t lies between [t0,t1].
A Time represents an instant in sprite time.
The application using the sprite engine is responsible for determining sprite time.
Typically time 0 is when the app is initialized and time is quantized at the intended frame rate. For example, an app may record wall time when it is initialized
var start = time.Now()
and then compute the current instant in time for 60 FPS:
now := clock.Time(time.Since(start) * 60 / time.Second)
An application can pause or reset sprite time, but it must be aware of any stateful sprite.Arranger instances that expect time to continue.