Skip to main content
Version: Phaser v4.0.0

Clock

The Clock is a Scene plugin that manages time and schedules Timer Events for its parent Scene.

You can use it to run callbacks after a delay, on a repeating interval, or in a loop, all governed by the Scene's time rather than the system clock. This means the Clock respects Scene pausing, time scaling, and shutdown lifecycle automatically.

Access it via this.time inside a Scene. For example:


this.time.delayedCall(1000, this.onTimer, [], this);

The Clock's timeScale property allows you to speed up or slow down all Timer Events belonging to it independently of the rest of the game.

Constructor

new Clock(scene)

Parameters

nametypeoptionaldescription
scenePhaser.SceneNoThe Scene which owns this Clock.

Scope: static

Source: src/time/Clock.js#L13
Since: 3.0.0

Public Members

now

now: number

Description:

The current time of the Clock, in milliseconds.

If accessed externally, this is equivalent to the time parameter normally passed to a Scene's update method.

Source: src/time/Clock.js#L61
Since: 3.0.0


paused

paused: boolean

Description:

Whether the Clock is paused (true) or active (false).

When paused, the Clock will not update any of its Timer Events, thus freezing time.

Source: src/time/Clock.js#L95
Since: 3.0.0


scene

scene: Phaser.Scene

Description:

The Scene which owns this Clock.

Source: src/time/Clock.js#L43
Since: 3.0.0


startTime

startTime: number

Description:

The time the Clock (and Scene) started, in milliseconds.

This can be compared to the time parameter passed to a Scene's update method.

Source: src/time/Clock.js#L72
Since: 3.60.0


systems

systems: Phaser.Scenes.Systems

Description:

The Scene Systems object of the Scene which owns this Clock.

Source: src/time/Clock.js#L52
Since: 3.0.0


timeScale

timeScale: number

Description:

The scale of the Clock's time delta.

The time delta is the time elapsed between two consecutive frames and influences the speed of time for this Clock and anything which uses it, such as its Timer Events. Values higher than 1 increase the speed of time, while values smaller than 1 decrease it. A value of 0 freezes time and is effectively equivalent to pausing the Clock.

Source: src/time/Clock.js#L83
Since: 3.0.0


Public Methods

addEvent

<instance> addEvent(config)

Description:

Creates a Timer Event and adds it to this Clock at the start of the next frame.

You can pass in either a TimerEventConfig object, from which a new TimerEvent will be created, or you can pass in a TimerEvent instance.

If passing an instance please make sure that this instance hasn't been used before. If it has ever entered a 'completed' state then it will no longer be suitable to run again.

Also, if the TimerEvent instance is being used by another Clock (in another Scene) it will still be updated by that Clock as well, so be careful when using this feature.

Parameters:

nametypeoptionaldescription
configPhaser.Time.TimerEvent | Phaser.Types.Time.TimerEventConfigNoThe configuration for the Timer Event, or an existing Timer Event object.

Returns: Phaser.Time.TimerEvent - The Timer Event which was created, or passed in.

Source: src/time/Clock.js#L180
Since: 3.0.0


clearPendingEvents

<instance> clearPendingEvents()

Description:

Clears and recreates the array of pending Timer Events.

Returns: Phaser.Time.Clock - - This Clock instance.

Source: src/time/Clock.js#L249
Since: 3.0.0


delayedCall

<instance> delayedCall(delay, callback, [args], [callbackScope])

Description:

Creates a Timer Event and adds it to the Clock at the start of the frame.

This is a shortcut for #addEvent which can be shorter and is compatible with the syntax of the GreenSock Animation Platform (GSAP).

Parameters:

nametypeoptionaldescription
delaynumberNoThe delay of the function call, in milliseconds.
callbackfunctionNoThe function to call after the delay expires.
argsArray.<*>YesThe arguments to call the function with.
callbackScope*YesThe scope (this object) to call the function with.

Returns: Phaser.Time.TimerEvent - The Timer Event which was created.

Source: src/time/Clock.js#L229
Since: 3.0.0


preUpdate

<instance> preUpdate()

Description:

Updates the arrays of active and pending Timer Events. Called at the start of the frame.

Source: src/time/Clock.js#L311
Since: 3.0.0


removeAllEvents

<instance> removeAllEvents()

Description:

Schedules all active Timer Events for removal at the start of the frame.

Returns: Phaser.Time.Clock - - This Clock instance.

Source: src/time/Clock.js#L296
Since: 3.0.0


removeEvent

<instance> removeEvent(events)

Description:

Removes the given Timer Event, or an array of Timer Events, from this Clock.

The events are removed from all internal lists (active, pending and removal), freeing the event up to be re-used.

Parameters:

nametypeoptionaldescription
eventsPhaser.Time.TimerEvent | Array.<Phaser.Time.TimerEvent>NoThe Timer Event, or an array of Timer Events, to remove from this Clock.

Returns: Phaser.Time.Clock - - This Clock instance.

Source: src/time/Clock.js#L264
Since: 3.50.0


update

<instance> update(time, delta)

Description:

Updates the Clock's internal time and all of its Timer Events.

Parameters:

nametypeoptionaldescription
timenumberNoThe current time. Either a High Resolution Timer value if it comes from Request Animation Frame, or Date.now if using SetTimeout.
deltanumberNoThe delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.

Source: src/time/Clock.js#L359
Since: 3.0.0