/// /// /** * Phaser - Particle * * This is a simple particle class that extends a Sprite to have a slightly more * specialised behaviour. It is used exclusively by the Emitter class and can be extended as required. */ module Phaser { export class Particle extends Sprite { /** * Instantiate a new particle. Like Sprite, all meaningful creation * happens during loadGraphic() or makeGraphic() or whatever. */ constructor(game: Game) { super(game); this.body.type = Types.BODY_DYNAMIC; this.lifespan = 0; } /** * How long this particle lives before it disappears. * NOTE: this is a maximum, not a minimum; the object * could get recycled before its lifespan is up. */ public lifespan: number; /** * The particle's main update logic. Basically it checks to see if it should be dead yet. */ public update() { // Lifespan behavior if (this.lifespan <= 0) { return; } this.lifespan -= this.game.time.elapsed; if (this.lifespan <= 0) { this.kill(); } } /** * Triggered whenever this object is launched by a Emitter. * You can override this to add custom behavior like a sound or AI or something. */ public onEmit() { } } }