EdgeZone
An Edge Zone is an emit zone for a Particle Emitter that places emitted particles sequentially along the edges of a shape. The shape is defined by a source object that provides a getPoints(quantity, stepRate) method, such as a Phaser Curve, Path, or any compatible geometry object.
As each particle is emitted, it is positioned at the next point along the shape's edge, cycling through all points in order. If yoyo is enabled, the traversal reverses direction when it reaches either end, creating a back-and-forth effect. If seamless is enabled, duplicate endpoints are removed to avoid stacking particles at the join when the shape loops back on itself.
Use this zone when you want particles to trace or outline a shape — for example, sparks running along a wire, particles orbiting a path, or effects that follow the boundary of a geometric figure.
Constructor
new EdgeZone(source, quantity, [stepRate], [yoyo], [seamless], [total])
Parameters
| name | type | optional | default | description |
|---|---|---|---|---|
| source | Phaser.Types.GameObjects.Particles.EdgeZoneSource | No | An object instance with a getPoints(quantity, stepRate) method returning an array of points. | |
| quantity | number | No | The number of particles to place on the source edge. Set to 0 to use stepRate instead. | |
| stepRate | number | Yes | The distance between each particle. When set, quantity is implied and should be set to 0. | |
| yoyo | boolean | Yes | false | Whether particles are placed from start to end and then end to start. |
| seamless | boolean | Yes | true | Whether one endpoint will be removed if it's identical to the other. |
| total | number | Yes | -1 | The total number of particles this zone will emit before passing over to the next emission zone in the Emitter. -1 means it will never pass over and you must use setEmitZone to change it. |
Scope: static
Source: src/gameobjects/particles/zones/EdgeZone.js#L9
Since: 3.0.0
Public Members
counter
counter: number
Description:
The counter used for iterating the EdgeZone's points.
Source: src/gameobjects/particles/zones/EdgeZone.js#L94
Since: 3.0.0
points
points: Array.<Phaser.Math.Vector2>
Description:
The points placed on the source edge.
Source: src/gameobjects/particles/zones/EdgeZone.js#L57
Since: 3.0.0
quantity
quantity: number
Description:
The number of particles to place on the source edge. Set to 0 to use stepRate instead.
Source: src/gameobjects/particles/zones/EdgeZone.js#L67
Since: 3.0.0
seamless
seamless: boolean
Description:
Whether one endpoint will be removed if it's identical to the other.
Source: src/gameobjects/particles/zones/EdgeZone.js#L104
Since: 3.0.0
source
source: Phaser.Types.GameObjects.Particles.EdgeZoneSource, Phaser.Types.GameObjects.Particles.RandomZoneSource
Description:
An object instance with a getPoints(quantity, stepRate) method returning an array of points.
Source: src/gameobjects/particles/zones/EdgeZone.js#L48
Since: 3.0.0
stepRate
stepRate: number
Description:
The distance between each particle. When set, quantity is implied and should be set to 0.
Source: src/gameobjects/particles/zones/EdgeZone.js#L76
Since: 3.0.0
total
total: number
Description:
The total number of particles this zone will emit before the Emitter transfers control over to the next zone in its emission zone list.
By default this is -1, meaning it will never pass over from this zone to another one. You can call the ParticleEmitter.setEmitZone method to change it, or set this value to something else via the config, or directly at runtime.
A value of 1 would mean the zones rotate in order, but it can be set to any integer value.
Source: src/gameobjects/particles/zones/EdgeZone.js#L137
Since: 3.60.0
yoyo
yoyo: boolean
Description:
Whether particles are placed from start to end and then end to start.
Source: src/gameobjects/particles/zones/EdgeZone.js#L85
Since: 3.0.0
Public Methods
changeSource
<instance> changeSource(source)
Description:
Change the source of the EdgeZone, replacing the existing shape with a new one. The new source must provide a getPoints(quantity, stepRate) method. After the source is replaced, updateSource is called automatically to regenerate the edge points and reset internal state accordingly.
Parameters:
| name | type | optional | description |
|---|---|---|---|
| source | Phaser.Types.GameObjects.Particles.EdgeZoneSource | No | An object instance with a getPoints(quantity, stepRate) method returning an array of points. |
Returns: Phaser.GameObjects.Particles.Zones.EdgeZone - This Edge Zone.
Source: src/gameobjects/particles/zones/EdgeZone.js#L198
Since: 3.0.0
getPoint
<instance> getPoint(particle)
Description:
Get the next point in the Zone and set its coordinates on the given Particle.
Points are stepped through sequentially. When the end of the point list is reached, the counter wraps back to the start, or reverses direction if yoyo is enabled. Called automatically by the Particle Emitter each time a new particle is emitted.
Parameters:
| name | type | optional | description |
|---|---|---|---|
| particle | Phaser.GameObjects.Particles.Particle | No | The Particle. |
Source: src/gameobjects/particles/zones/EdgeZone.js#L218
Since: 3.0.0
updateSource
<instance> updateSource()
Description:
Update the Phaser.GameObjects.Particles.Zones.EdgeZone#points from the EdgeZone's Phaser.GameObjects.Particles.Zones.EdgeZone#source.
Also updates internal properties.
Returns: Phaser.GameObjects.Particles.Zones.EdgeZone - This Edge Zone.
Source: src/gameobjects/particles/zones/EdgeZone.js#L158
Since: 3.0.0