Skip to main content

ActionsComponent

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 {
  // zero arg support required if you want to use component dependencies
  constructor(public optionalPos?: ex.Vector) {}
}

Hierarchy

Implements

Index

Constructors

constructor

Properties

dependencies

dependencies: (typeof TransformComponent | typeof MotionComponent)[] = ...

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

optionalowner

owner?: Entity<any> = undefined

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

Methods

publicblink

  • blink(timeVisible: number, timeNotVisible: number, numBlinks?: number): ActionContext
  • This method will cause an actor to blink (become visible and not visible). Optionally, you may specify the number of blinks. Specify the amount of time the actor should be visible per blink, and the amount of time not visible. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • timeVisible: number

      The amount of time to stay visible per blink in milliseconds

    • timeNotVisible: number

      The amount of time to stay not visible per blink in milliseconds

    • optionalnumBlinks: number

      The number of times to blink

    Returns ActionContext

publiccallMethod

  • This method allows you to call an arbitrary method as the next action in the action queue. This is useful if you want to execute code in after a specific action, i.e An actor arrives at a destination after traversing a path


    Parameters

    • method: () => any

    Returns ActionContext

publicclearActions

  • clearActions(): void
  • Clears all queued actions from the Actor


    Returns void

clone

  • Clones any properties on this component, if that property value has a clone() method it will be called


    Returns Component

publicdelay

  • This method will delay the next action from executing for a certain amount of time (in milliseconds). This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • time: number

      The amount of time to delay the next action in the queue from executing in milliseconds

    Returns ActionContext

publicdie

  • This method will add an action to the queue that will remove the actor from the scene once it has completed its previous Any actions on the action queue after this action will not be executed.


    Returns ActionContext

publiceaseBy

  • This method will move an actor by a specified vector offset relative to the current position given a duration and a [[EasingFunction]]. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • offset: Vector

      Vector offset relative to the current position

    • duration: number

      The duration in milliseconds

    • optionaleasingFcn: EasingFunction

      Use [[EasingFunction]] or a custom function to use to calculate position, Default is [[EasingFunctions.Linear]]

    Returns ActionContext

publiceaseTo

  • This method will move an actor to the specified x and y position over the specified duration using a given [[EasingFunctions]] and return back the actor. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • pos: Vector

      The x,y vector location to move the actor to

    • duration: number

      The time it should take the actor to move to the new location in milliseconds

    • optionaleasingFcn: EasingFunction

      Use [[EasingFunctions]] or a custom function to use to calculate position, Default is [[EasingFunctions.Linear]]

    Returns ActionContext

publicfade

  • This method will cause an actor's opacity to change from its current value to the provided value by a specified time (in milliseconds). This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • opacity: number

      The ending opacity

    • time: number

      The time it should take to fade the actor (in milliseconds)

    Returns ActionContext

publicfollow

  • This method will cause the entity to follow another at a specified distance


    Parameters

    • entity: Actor

      The entity to follow

    • optionalfollowDistance: number

      The distance to maintain when following, if not specified the actor will follow at the current distance.

    Returns ActionContext

publicgetQueue

  • Returns the internal action queue


    Returns ActionQueue

    action queue

publicmeet

  • This method will cause the entity to move towards another until they collide "meet" at a specified speed.


    Parameters

    • entity: Actor

      The entity to meet

    • optionalspeed: number

      The speed in pixels per second to move, if not specified it will match the speed of the other actor

    Returns ActionContext

publicmoveBy

  • This method will move an actor by the specified x offset and y offset from its current position, at a certain speed. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • offset: Vector

      The (x, y) offset to apply to this actor

    • speed: number

      The speed in pixels per second the actor should move

    Returns ActionContext

publicmoveTo

  • This method will move an actor to the specified x and y position at the speed specified (in pixels per second) and return back the actor. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • pos: Vector

      The x,y vector location to move the actor to

    • speed: number

      The speed in pixels per second to move

    Returns ActionContext

onAdd

  • onAdd(entity: Entity<any>): void
  • Optional callback called when a component is added to an entity


    Parameters

    Returns void

onRemove

  • onRemove(): void
  • Optional callback called when a component is removed from an entity


    Returns void

publicrepeat

  • This method will cause the actor to repeat all of the actions built in the repeatBuilder callback. If the number of repeats is not specified it will repeat forever. This method is part of the actor 'Action' fluent API allowing action chaining

    // Move up in a zig-zag by repeated moveBy's
    actor.actions.repeat(repeatCtx => {
    repeatCtx.moveBy(10, 0, 10);
    repeatCtx.moveBy(0, 10, 10);
    }, 5);

    Parameters

    • repeatBuilder: (repeatContext: ActionContext) => any

      The builder to specify the repeatable list of actions

    • optionaltimes: number

      The number of times to repeat all the previous actions in the action queue. If nothing is specified the actions will repeat forever

    Returns ActionContext

publicrepeatForever

  • This method will cause the actor to repeat all of the actions built in the repeatBuilder callback. If the number of repeats is not specified it will repeat forever. This method is part of the actor 'Action' fluent API allowing action chaining

    // Move up in a zig-zag by repeated moveBy's
    actor.actions.repeat(repeatCtx => {
    repeatCtx.moveBy(10, 0, 10);
    repeatCtx.moveBy(0, 10, 10);
    }, 5);

    Parameters

    • repeatBuilder: (repeatContext: ActionContext) => any

      The builder to specify the repeatable list of actions

    Returns ActionContext

publicrotateBy

  • This method will rotate an actor by the specified angle offset, from it's current rotation given a certain speed in radians/sec and return back the actor. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • angleRadiansOffset: number

      The angle to rotate to in radians relative to the current rotation

    • speed: number

      The speed in radians/sec the actor should rotate at

    • optionalrotationType: RotationType

      The [[RotationType]] to use for this rotation, default is shortest path

    Returns ActionContext

publicrotateTo

  • This method will rotate an actor to the specified angle at the speed specified (in radians per second) and return back the actor. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • angleRadians: number

      The angle to rotate to in radians

    • speed: number

      The angular velocity of the rotation specified in radians per second

    • optionalrotationType: RotationType

      The [[RotationType]] to use for this rotation

    Returns ActionContext

publicrunAction

publicscaleBy

  • This method will scale an actor by an amount relative to the current scale at a certain speed in scale units/sec and return back the actor. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • offset: Vector

      The scaling factor to apply to the actor

    • speed: number

      The speed to scale at in scale units/sec

    Returns ActionContext

publicscaleTo

  • This method will scale an actor to the specified size at the speed specified (in magnitude increase per second) and return back the actor. This method is part of the actor 'Action' fluent API allowing action chaining.


    Parameters

    • size: Vector

      The scale to adjust the actor to over time

    • speed: Vector

      The speed of scaling specified in magnitude increase per second

    Returns ActionContext

publictoPromise

  • toPromise(): Promise<void>
  • Returns a promise that resolves when the current action queue up to now is finished.


    Returns Promise<void>

publicupdate

  • update(elapsedMs: number): void
  • Updates the internal action context, performing action and moving through the internal queue


    Parameters

    • elapsedMs: number

    Returns void