mirror of
https://github.com/photonstorm/phaser
synced 2025-01-11 12:48:50 +00:00
111 lines
3.4 KiB
JavaScript
111 lines
3.4 KiB
JavaScript
/**
|
|
* @author Richard Davey <rich@photonstorm.com>
|
|
* @copyright 2013-2023 Photon Storm Ltd.
|
|
* @license {@link https://opensource.org/licenses/MIT|MIT License}
|
|
*/
|
|
|
|
var Class = require('../../utils/Class');
|
|
|
|
/**
|
|
* @classdesc
|
|
* This class provides the structured required for all Particle Processors.
|
|
*
|
|
* You should extend it and add the functionality required for your processor,
|
|
* including tidying up any resources this may create in the `destroy` method.
|
|
*
|
|
* See the GravityWell for an example of a processor.
|
|
*
|
|
* @class ParticleProcessor
|
|
* @memberof Phaser.GameObjects.Particles
|
|
* @constructor
|
|
* @since 3.60.0
|
|
*
|
|
* @param {number} [x=0] - The x coordinate of the Particle Processor, in world space.
|
|
* @param {number} [y=0] - The y coordinate of the Particle Processor, in world space.
|
|
* @param {boolean} [active=true] - The active state of this Particle Processor.
|
|
*/
|
|
var ParticleProcessor = new Class({
|
|
|
|
initialize:
|
|
|
|
function ParticleProcessor (x, y, active)
|
|
{
|
|
if (x === undefined) { x = 0; }
|
|
if (y === undefined) { y = 0; }
|
|
if (active === undefined) { active = true; }
|
|
|
|
/**
|
|
* A reference to the Particle Emitter that owns this Processor.
|
|
* This is set automatically when the Processor is added to an Emitter
|
|
* and nulled when removed or destroyed.
|
|
*
|
|
* @name Phaser.GameObjects.Particles.ParticleProcessor#manager
|
|
* @type {Phaser.GameObjects.Particles.ParticleEmitter}
|
|
* @since 3.60.0
|
|
*/
|
|
this.emitter;
|
|
|
|
/**
|
|
* The x coordinate of the Particle Processor, in world space.
|
|
*
|
|
* @name Phaser.GameObjects.Particles.ParticleProcessor#x
|
|
* @type {number}
|
|
* @since 3.60.0
|
|
*/
|
|
this.x = x;
|
|
|
|
/**
|
|
* The y coordinate of the Particle Processor, in world space.
|
|
*
|
|
* @name Phaser.GameObjects.Particles.ParticleProcessor#y
|
|
* @type {number}
|
|
* @since 3.60.0
|
|
*/
|
|
this.y = y;
|
|
|
|
/**
|
|
* The active state of the Particle Processor.
|
|
*
|
|
* An inactive Particle Processor will be skipped for processing by
|
|
* its parent Emitter.
|
|
*
|
|
* @name Phaser.GameObjects.Particles.ParticleProcessor#active
|
|
* @type {boolean}
|
|
* @since 3.60.0
|
|
*/
|
|
this.active = active;
|
|
},
|
|
|
|
/**
|
|
* The Particle Processor update method should be overriden by your own
|
|
* method and handle the processing of the particles, typically modifying
|
|
* their velocityX/Y values based on the criteria of this processor.
|
|
*
|
|
* @method Phaser.GameObjects.Particles.ParticleProcessor#update
|
|
* @since 3.60.0
|
|
*
|
|
* @param {Phaser.GameObjects.Particles.Particle} particle - The Particle to update.
|
|
* @param {number} delta - The delta time in ms.
|
|
* @param {number} step - The delta value divided by 1000.
|
|
* @param {number} t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).
|
|
*/
|
|
update: function ()
|
|
{
|
|
},
|
|
|
|
/**
|
|
* Destroys this Particle Processor by removing all external references.
|
|
*
|
|
* This is called automatically when the owning Particle Emitter is destroyed.
|
|
*
|
|
* @method Phaser.GameObjects.Particles.ParticleProcessor#destroy
|
|
* @since 3.60.0
|
|
*/
|
|
destroy: function ()
|
|
{
|
|
this.emitter = null;
|
|
}
|
|
|
|
});
|
|
|
|
module.exports = ParticleProcessor;
|