PositionAnimation
Description​
This component creates an animation on an entity.
Properties​
Property | Type | Default | Description |
---|---|---|---|
target | eid | undefined | The target object to animate. If not specified, the animation is run on the object that the component is attached to. |
fromX | number | 0 | The starting X coordinate for the animation. |
fromY | number | 0 | The starting Y coordinate for the animation. |
fromZ | number | 0 | The starting Z coordinate for the animation. |
toX | number | 0 | The target X coordinate for the animation. |
toY | number | 0 | The target Y coordinate for the animation. |
toZ | number | 0 | The target Z coordinate for the animation. |
autoFrom | boolean | false | If enabled, ignore 'fromX/Y/Z' properties and animate from the state of the object at the start of the animation. |
duration | number | 1000 | Length of time that the animation runs in milliseconds. |
loop | boolean | true | If enabled, repeat the animation. |
reverse | boolean | false | Whether to play in reverse, if loop set. |
easeIn | boolean | false | If enabled, easing function will be applied over time instead of straight interpolation |
easeOut | boolean | false | If enabled, easing function will be applied over time instead of straight interpolation |
easingFunction | string | 'Quadratic' | Choose from Quadratic, Cubic, Quartic, Quintic, Sinusoidal, Exponential, Circular, Elastic, Back, and Bounce |
shortestPath | boolean | false | If enabled, The animation will take the shortest path to completion. |
Functions​
Get​
Returns a read-only reference.
Example
ecs.PositionAnimation.get(world, component.eid)
Set​
Ensures the component exists on the entity, then assigns the (optional) data to the component.
Example
ecs.PositionAnimation.set(world, component.eid, {
from: {
x: 0,
y: 0,
z: 0
},
to: {
x: 0,
y: 0,
z: 0
},
autoFrom: false,
duration: 1000,
loop: true,
reverse: false,
easeIn: false,
easeOut: false,
easingFunction: 'Quadratic'
})
Mutate​
Perform an update to the component within a callback function. Return true
to indicate no changes made.
Example
ecs.PositionAnimation.mutate(world, component.eid, (cursor) => {
cursor.to.x = 10;
cursor.to.y = 5;
cursor.duration = 2000;
return false;
})
Remove​
Removes the component from the entity.
Example
ecs.PositionAnimation.remove(world, component.eid)
Has​
Returns true
if the component is present on the entity.
Example
ecs.PositionAnimation.has(world, component.eid)
Reset​
Adds, or resets the component to its default state.
Example
ecs.PositionAnimation.reset(world, component.eid)
Advanced Functions​
Cursor​
Returns a mutable reference. Cursors are reused so only one cursor for each component can exist at a time.
Example
ecs.PositionAnimation.cursor(world, component.eid)
Acquire​
Same behavior as cursor, but commit must be called after the cursor is done being used.
Example
ecs.PositionAnimation.acquire(world, component.eid)
Commit​
Called after acquire. An optional third argument determines whether the cursor was mutated or not.
Example
ecs.PositionAnimation.commit(world, component.eid)
ecs.PositionAnimation.commit(world, component.eid, false)
Dirty​
Mark the entity as having been mutated. Only needed in a specific case where systems are mutating data.
Example
ecs.PositionAnimation.dirty(world, component.eid)