package clock

import "github.com/fyne-io/mobile/exp/sprite/clock"

Package clock provides a clock and time functions for a sprite engine.

Index

Variables

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.

Functions

func CubicBezier

func CubicBezier(x0, y0, x1, y1 float32) func(t0, t1, t Time) float32

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).

func Linear

func Linear(t0, t1, t Time) float32

Linear computes the fraction [0,1] that t lies between [t0,t1].

Types

type Time

type Time int32

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.

Source Files

clock.go tween.go

Version
v0.1.2 (latest)
Published
Dec 29, 2020
Platform
darwin/amd64
Last checked
3 hours ago

Tools for package owners.