Skip to main content
Version: Phaser v4.0.0-rc.6

Shake

A Camera Shake effect.

This effect will shake the camera viewport by a random amount, bounded by the specified intensity, each frame.

Only the camera viewport is moved. None of the objects it is displaying are impacted, i.e. their positions do

not change.

The effect will dispatch several events on the Camera itself and you can also specify an onUpdate callback,

which is invoked each frame for the duration of the effect if required.

Constructor

new Shake(camera)

Parameters

nametypeoptionaldescription
cameraPhaser.Cameras.Scene2D.CameraNoThe camera this effect is acting upon.

Scope: static

Source: src/cameras/2d/effects/Shake.js#L12
Since: 3.5.0

Public Members

camera

camera: Phaser.Cameras.Scene2D.Camera

Description:

The Camera this effect belongs to.

Source: src/cameras/2d/effects/Shake.js#L37
Since: 3.5.0


duration

duration: number

Description:

The duration of the effect, in milliseconds.

Source: src/cameras/2d/effects/Shake.js#L58
Since: 3.5.0


intensity

intensity: Phaser.Math.Vector2

Description:

The intensity of the effect. Use small float values. The default when the effect starts is 0.05.

This is a Vector2 object, allowing you to control the shake intensity independently across x and y.

You can modify this value while the effect is active to create more varied shake effects.

Source: src/cameras/2d/effects/Shake.js#L69
Since: 3.5.0


isRunning

isRunning: boolean

Description:

Is this effect actively running?

Source: src/cameras/2d/effects/Shake.js#L47
Since: 3.5.0


progress

progress: number

Description:

If this effect is running this holds the current percentage of the progress, a value between 0 and 1.

Source: src/cameras/2d/effects/Shake.js#L80
Since: 3.5.0


Public Methods

destroy

<instance> destroy()

Description:

Destroys this effect, releasing it from the Camera.

Source: src/cameras/2d/effects/Shake.js#L297
Since: 3.5.0


effectComplete

<instance> effectComplete()

Description:

Called internally when the effect completes.

Fires: Phaser.Cameras.Scene2D.Events#event:SHAKE_COMPLETE

Source: src/cameras/2d/effects/Shake.js#L259
Since: 3.5.0


preRender

<instance> preRender()

Description:

The pre-render step for this effect. Called automatically by the Camera.

Source: src/cameras/2d/effects/Shake.js#L198
Since: 3.5.0


reset

<instance> reset()

Description:

Resets this camera effect.

If it was previously running, it stops instantly without calling its onComplete callback or emitting an event.

Source: src/cameras/2d/effects/Shake.js#L279
Since: 3.5.0


start

<instance> start([duration], [intensity], [force], [callback], [context])

Description:

Shakes the Camera by the given intensity over the duration specified.

Parameters:

nametypeoptionaldefaultdescription
durationnumberYes100The duration of the effect in milliseconds.
intensitynumber | Phaser.Math.Vector2Yes0.05The intensity of the shake.
forcebooleanYesfalseForce the shake effect to start immediately, even if already running.
callbackPhaser.Types.Cameras.Scene2D.CameraShakeCallbackYesThis callback will be invoked every frame for the duration of the effect. It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.
contextanyYesThe context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.

Returns: Phaser.Cameras.Scene2D.Camera - The Camera on which the effect was started.

Fires: Phaser.Cameras.Scene2D.Events#event:SHAKE_START, Phaser.Cameras.Scene2D.Events#event:SHAKE_COMPLETE

Source: src/cameras/2d/effects/Shake.js#L143
Since: 3.5.0


update

<instance> update(time, delta)

Description:

The main update loop for this effect. Called automatically by the Camera.

Parameters:

nametypeoptionaldescription
timenumberNoThe current timestamp as generated by the Request Animation Frame or SetTimeout.
deltanumberNoThe delta time, in ms, elapsed since the last frame.

Source: src/cameras/2d/effects/Shake.js#L212
Since: 3.5.0