Class: Shake

Phaser.Cameras.Scene2D.Effects. 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.


new Shake(camera)

Parameters:
Name Type Description
camera Phaser.Cameras.Scene2D.Camera

The camera this effect is acting upon.

Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 12)

Members


<readonly> camera :Phaser.Cameras.Scene2D.Camera

The Camera this effect belongs to.

Type:
Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 37)

<readonly> duration :number

The duration of the effect, in milliseconds.

Type:
  • number
Since: 3.5.0
Default Value:
  • 0
Source: src/cameras/2d/effects/Shake.js (Line 58)

intensity :Phaser.Math.Vector2

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.

Type:
Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 69)

<readonly> isRunning :boolean

Is this effect actively running?

Type:
  • boolean
Since: 3.5.0
Default Value:
  • false
Source: src/cameras/2d/effects/Shake.js (Line 47)

progress :number

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

Type:
  • number
Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 80)

Methods


destroy()

Destroys this effect, releasing it from the Camera.

Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 297)

effectComplete()

Called internally when the effect completes.

Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 259)
Fires:

preRender()

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

Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 198)

reset()

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

Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 279)

start( [duration] [, intensity] [, force] [, callback] [, context])

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

Parameters:
Name Type Argument Default Description
duration number <optional>
100

The duration of the effect in milliseconds.

intensity number | Phaser.Math.Vector2 <optional>
0.05

The intensity of the shake.

force boolean <optional>
false

Force the shake effect to start immediately, even if already running.

callback Phaser.Types.Cameras.Scene2D.CameraShakeCallback <optional>

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

context any <optional>

The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.

Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 143)
Fires:
Returns:

The Camera on which the effect was started.

Type
Phaser.Cameras.Scene2D.Camera

update(time, delta)

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

Parameters:
Name Type Description
time number

The current timestamp as generated by the Request Animation Frame or SetTimeout.

delta number

The delta time, in ms, elapsed since the last frame.

Since: 3.5.0
Source: src/cameras/2d/effects/Shake.js (Line 212)