Particles along bounds
Introduction¶
Emit particles along bounds of game object.
- Author: Rex
- Behavior of game object
Live demos¶
Usage¶
Install plugin¶
Load minify file¶
- Load plugin (minify file) in preload stage
scene.load.plugin('rexparticlesalongboundsplugin', 'https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexparticlesalongboundsplugin.min.js', true);
- Start emit particles along bounds of game object
var particles = scene.plugins.get('rexparticlesalongboundsplugin').startEffect(gameObject, config);
Import plugin¶
- Install rex plugins from npm
npm i phaser3-rex-plugins
- Install plugin in configuration of game
import DragPlugin from 'phaser3-rex-plugins/plugins/particlesalongbounds-plugin.js'; var config = { // ... plugins: { global: [{ key: 'rexParticlesAlongBounds', plugin: ParticlesAlongBoundsPlugin, start: true }, // ... ] } // ... }; var game = new Phaser.Game(config);
- Start emit particles along bounds of game object
var particles = scene.plugins.get('rexParticlesAlongBounds').startEffect(gameObject, config);
Import class¶
- Install rex plugins from npm
npm i phaser3-rex-plugins
- Import class
import ParticlesAlongBounds from 'phaser3-rex-plugins/plugins/particlesalongbounds.js';
- Start emit particles along bounds of game object
var particles = ParticlesAlongBounds(gameObject, config);
Create instance¶
var particles = scene.plugins.get('rexParticlesAlongBounds').startEffect(gameObject, {
textureKey: key,
// textureFrames: undefined,
// padding: 0,
// blendMode: 'ADD',
// lifespan: 1000,
// stepRate: 10,
// spread: 10,
// scale: undefined,
// alpha: undefined,
// tint: undefined,
// repeat: 0,
// gravityX: 0,
// gravityY: 0,
// duration: undefined
});
padding
: Extra padded space around bounds of game object. Default is 0.- A number for left/right/top/bottom bounds,
- Or a plain object.
{ left: 0, right: 0, top: 0, bottom: 0 }
textureKey
: Texture key of particles.textureFrames
: : One or more texture frames, or a configuration object.- String or number value.
- Array of string or number value.
- Configuration object :
{ frames: [], cycle: false, quantity: 1 }
blendMode
: Blend mode of particles. Default value isADD
.lifespan
: Lifespan of particle.stepRate
: Step length between each particle's initial position along bounds of game object.spread
: Moving speed of particle.scale
: Scale changing of particle.alpha
: Alpha changing of particle.tint
: Tint changing of particle.repeat
: Fire particles around bounds repeatly.0
: Fire particles around bounds one time, default value.
gravityX
,gravityY
: Gravity vector of world axis. This vector will rotate back if game object is rotated.duration
: Total duration from firing of 1st particle to destroy last particle.undefined
: Use default behavior of particles- Less or equal to
lifespan
: Fires all particles at begining.
Format of spread
, scale
, alpha
, tint
parameters :
{min, max}
: Pick a random value between min and max{start, end}
: Pick values incremented continuously across a range. (ease
='Linear'
){start, end, ease}
{start, end, steps}
: Pick values incremented by steps across a range.{start, end, random}
random
:true
orfalse
{min, max, steps}
: Pick values between min to max, with steps.{onEmit: function(particle, key, t, value) {return value}}
: Get return value from a function invoking.
Is running¶
var isRunning = particles.isRunning;
Events¶
- On fire completed, i.e. last particle is dead
particles.on('complete', function(gameObject, particles){ }, scope);