phaser/Phaser/particles/ArcadeParticle.ts

64 lines
1.6 KiB
TypeScript
Raw Normal View History

2013-04-18 13:16:18 +00:00
/// <reference path="../Game.ts" />
2013-08-06 02:14:48 +00:00
/// <reference path="../gameobjects/Sprite.ts" />
2013-04-18 13:16:18 +00:00
/**
2013-08-06 02:14:48 +00:00
* Phaser - ArcadeParticle
2013-04-18 15:49:08 +00:00
*
* 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.
2013-04-18 13:16:18 +00:00
*/
module Phaser {
2013-08-06 02:14:48 +00:00
export class ArcadeParticle extends Sprite {
2013-04-18 13:16:18 +00:00
/**
* Instantiate a new particle. Like <code>Sprite</code>, all meaningful creation
* happens during <code>loadGraphic()</code> or <code>makeGraphic()</code> or whatever.
*/
constructor(game: Game) {
super(game);
this.body.type = Types.BODY_DYNAMIC;
2013-04-18 13:16:18 +00:00
this.lifespan = 0;
2013-04-18 13:16:18 +00:00
}
/**
* 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;
/**
2013-06-26 04:44:56 +00:00
* The particle's main update logic. Basically it checks to see if it should be dead yet.
2013-04-18 13:16:18 +00:00
*/
public update() {
// Lifespan behavior
2013-04-18 13:16:18 +00:00
if (this.lifespan <= 0)
{
return;
}
this.lifespan -= this.game.time.elapsed;
2013-04-18 13:16:18 +00:00
if (this.lifespan <= 0)
{
this.kill();
}
}
/**
* Triggered whenever this object is launched by a <code>Emitter</code>.
* You can override this to add custom behavior like a sound or AI or something.
*/
public onEmit() {
}
}
}