Components are containers for state in Excalibur, the are meant to convey capabilities that an Entity possesses

Implementations of Component must have a zero-arg constructor to support dependencies

class MyComponent extends ex.Component<'my'> {
public readonly type = 'my';
// zero arg support required if you want to use component dependencies
constructor(public optionalPos?: ex.Vector) {}




acc: Vector = Vector.Zero

The acceleration of entity in pixels per second^2

angularVelocity: number = 0

The angular velocity which is how quickly the entity is rotating in radians per second

dependencies?: ComponentCtor<Component<string>>[]

Optionally list any component types this component depends on If the owner entity does not have these components, new components will be added to the entity

Only components with zero-arg constructors are supported as automatic component dependencies

inertia: number = 1

Inertia can be thought of as the resistance to motion

optional?: ComponentCtor<Component<string>>[]
owner?: Entity = null

Current owning Entity, if any, of this component. Null if not added to any Entity

scaleFactor: Vector = Vector.Zero

The scale rate of change in scale units per second

torque: number = 0

The amount of torque applied to the entity, angular acceleration is torque * inertia

type: "ex.motion" = 'ex.motion'

Type of this component, must be a unique type among component types in you game.

vel: Vector = Vector.Zero

The velocity of an entity in pixels per second