diff --git a/Phaser/Time.ts b/Phaser/Time.ts
index 57bf80a14..e23571fef 100644
--- a/Phaser/Time.ts
+++ b/Phaser/Time.ts
@@ -10,6 +10,12 @@ module Phaser {
export class Time {
+ /**
+ * Time constructor
+ * Create a new Time
.
+ *
+ * @param game {Phaser.Game} Current game instance.
+ */
constructor(game: Game) {
this._started = Date.now();
@@ -18,32 +24,47 @@ module Phaser {
}
+ /**
+ * Local private reference to game.
+ */
private _game: Game;
+ /**
+ * Time when this object created.
+ * @param {number}
+ */
private _started: number;
-
+ /**
+ * Time scale factor.
+ * Set it to 0.5 for slow motion, to 2.0 makes game twice faster.
+ * @type {number}
+ */
public timeScale: number = 1.0;
+ /**
+ * Elapsed since last frame.
+ * @type {number}
+ */
public elapsed: number = 0;
/**
- *
- * @property time
- * @type Number
- */
+ * Game time counter.
+ * @property time
+ * @type {number}
+ */
public time: number = 0;
/**
- *
- * @property now
- * @type Number
- */
+ * Time of current frame.
+ * @property now
+ * @type {number}
+ */
public now: number = 0;
/**
- *
- * @property delta
- * @type Number
- */
+ * Elapsed time since last frame.
+ * @property delta
+ * @type {number}
+ */
public delta: number = 0;
/**
@@ -57,19 +78,47 @@ module Phaser {
}
+ /**
+ * Frames per second.
+ * @type {number}
+ */
public fps: number = 0;
+ /**
+ * Minimal fps.
+ * @type {number}
+ */
public fpsMin: number = 1000;
+ /**
+ * Maximal fps.
+ * @type {number}
+ */
public fpsMax: number = 0;
+ /**
+ * Mininal duration between 2 frames.
+ * @type {number}
+ */
public msMin: number = 1000;
+ /**
+ * Maximal duration between 2 frames.
+ * @type {number}
+ */
public msMax: number = 0;
+ /**
+ * How many frames in last second.
+ * @type {number}
+ */
public frames: number = 0;
+ /**
+ * Time of last second.
+ * @type {number}
+ */
private _timeLastSecond: number = 0;
/**
- *
- * @method update
- */
+ * Update clock and calc fps.
+ * @method update
+ */
public update() {
// Can we use performance.now() ?
@@ -102,11 +151,11 @@ module Phaser {
}
/**
- *
- * @method elapsedSince
- * @param {Number} since
- * @return {Number}
- */
+ * How long has passed since given time.
+ * @method elapsedSince
+ * @param {number} since The time you want to measure.
+ * @return {number} Duration between given time and now.
+ */
public elapsedSince(since: number): number {
return this.now - since;
@@ -114,11 +163,11 @@ module Phaser {
}
/**
- *
- * @method elapsedSecondsSince
- * @param {Number} since
- * @return {Number}
- */
+ * How long has passed since give time (in seconds).
+ * @method elapsedSecondsSince
+ * @param {number} since The time you want to measure (in seconds).
+ * @return {number} Duration between given time and now (in seconds).
+ */
public elapsedSecondsSince(since: number): number {
return (this.now - since) * 0.001;
@@ -126,9 +175,9 @@ module Phaser {
}
/**
- *
- * @method reset
- */
+ * Set the start time to now.
+ * @method reset
+ */
public reset() {
this._started = this.now;
diff --git a/Phaser/system/Tween.ts b/Phaser/system/Tween.ts
index 1569bbaa8..22378a3b8 100644
--- a/Phaser/system/Tween.ts
+++ b/Phaser/system/Tween.ts
@@ -21,6 +21,13 @@ module Phaser {
export class Tween {
+ /**
+ * Tween constructor
+ * Create a new Tween
.
+ *
+ * @param object {object} Target object will be affected by this tween.
+ * @param game {Phaser.Game} Current game instance.
+ */
constructor(object, game:Phaser.Game) {
this._object = object;
@@ -37,24 +44,75 @@ module Phaser {
}
+ /**
+ * Local private reference to game.
+ */
private _game: Phaser.Game;
+ /**
+ * Manager of this tween.
+ * @type {Phaser.TweenManager}
+ */
private _manager: Phaser.TweenManager;
+ /**
+ * Reference to the target object.
+ * @type {object}
+ */
private _object = null;
private _pausedTime: number = 0;
+ /**
+ * Start values container.
+ * @type {object}
+ */
private _valuesStart = {};
+ /**
+ * End values container.
+ * @type {object}
+ */
private _valuesEnd = {};
+ /**
+ * How long this tween will perform.
+ * @type {number}
+ */
private _duration = 1000;
private _delayTime = 0;
private _startTime = null;
+ /**
+ * Easing function which actually updating this tween.
+ * @type {function}
+ */
private _easingFunction;
private _interpolationFunction;
+ /**
+ * Contains chained tweens.
+ * @type {Tweens[]}
+ */
private _chainedTweens = [];
+ /**
+ * Signal to be dispatched when this tween start.
+ * @type {Phaser.Signal}
+ */
public onStart: Phaser.Signal;
+ /**
+ * Signal to be dispatched when this tween updating.
+ * @type {Phaser.Signal}
+ */
public onUpdate: Phaser.Signal;
+ /**
+ * Signal to be dispatched when this tween completed.
+ * @type {Phaser.Signal}
+ */
public onComplete: Phaser.Signal;
+ /**
+ * Config the tween result.
+ * @param properties {object} Propertis you want to tween.
+ * @param duration {number} Optional, duration of this tween.
+ * @param ease {any} Easing function.
+ * @param autoStart {boolean} Whether this tween will start automatically or not.
+ * @return {Tween} Itself.
+ */
public to(properties, duration?: number = 1000, ease?: any = null, autoStart?: bool = false) {
this._duration = duration;
@@ -78,6 +136,9 @@ module Phaser {
}
+ /**
+ * Start to tween.
+ */
public start() {
if (this._game === null || this._object === null)
@@ -120,6 +181,9 @@ module Phaser {
}
+ /**
+ * Stop tweening.
+ */
public stop() {
if (this._manager !== null)
@@ -164,6 +228,11 @@ module Phaser {
return this._interpolationFunction;
}
+ /**
+ * Add another chained tween, which will start automatically when the one before it completes.
+ * @param tween {Phaser.Tween} Tween object you want to chain with this.
+ * @return {Phaser.Tween} Itselfe.
+ */
public chain(tween:Phaser.Tween) {
this._chainedTweens.push(tween);
@@ -172,8 +241,16 @@ module Phaser {
}
+ /**
+ * Debug value?
+ */
public debugValue;
+ /**
+ * Update tweening.
+ * @param time {number} Current time from game clock.
+ * @return {boolean} Return false if this completed and no need to update, otherwise return true.
+ */
public update(time) {
if (this._game.paused == true)
diff --git a/Phaser/system/animation/Animation.ts b/Phaser/system/animation/Animation.ts
index 364b4a718..72fa85dd8 100644
--- a/Phaser/system/animation/Animation.ts
+++ b/Phaser/system/animation/Animation.ts
@@ -14,8 +14,12 @@ module Phaser {
* Animation constructor
* Create a new Animation
.
*
- * @param width Width of the world bound.
- * @param height Height of the world bound.
+ * @param parent {Sprite} Owner sprite of this animation.
+ * @param frameData {FrameData} The FrameData object contains animation data.
+ * @param name {string} Unique name of this animation.
+ * @param frames {number[]/string[]} An array of numbers or strings indicating what frames to play in what order.
+ * @param delay {number} Time between frames in ms.
+ * @param looped {boolean} Whether or not the animation is looped or just plays once.
*/
constructor(game: Game, parent: Sprite, frameData: FrameData, name: string, frames, delay: number, looped: bool) {
@@ -36,21 +40,72 @@ module Phaser {
}
+ /**
+ * Local private reference to game.
+ */
private _game: Game;
+ /**
+ * Local private reference to its owner sprite.
+ * @type {Sprite}
+ */
private _parent: Sprite;
+ /**
+ * Animation frame container.
+ * @type {number[]}
+ */
private _frames: number[];
+ /**
+ * Frame data of this animation.(parsed from sprite sheet)
+ * @type {FrameData}
+ */
private _frameData: FrameData;
+ /**
+ * Index of current frame.
+ * @type {number}
+ */
private _frameIndex: number;
+ /**
+ * Time when switched to last frame (in ms).
+ * @type number
+ */
private _timeLastFrame: number;
+ /**
+ * Time when this will switch to next frame (in ms).
+ * @type number
+ */
private _timeNextFrame: number;
+ /**
+ * Name of this animation.
+ * @type {string}
+ */
public name: string;
+ /**
+ * Currently played frame instance.
+ * @type {Frame}
+ */
public currentFrame: Frame;
+ /**
+ * Whether or not this animation finished playing.
+ * @type {boolean}
+ */
public isFinished: bool;
+ /**
+ * Whethor or not this animation is currently playing.
+ * @type {boolean}
+ */
public isPlaying: bool;
+ /**
+ * Whether or not the animation is looped.
+ * @type {boolean}
+ */
public looped: bool;
+ /**
+ * Time between frames in ms.
+ * @type {number}
+ */
public delay: number;
public get frameTotal(): number {
@@ -74,6 +129,11 @@ module Phaser {
}
+ /**
+ * Play this animation.
+ * @param frameRate {number} FrameRate you want to specify instead of using default.
+ * @param loop {boolean} Whether or not the animation is looped or just plays once.
+ */
public play(frameRate?: number = null, loop?: bool) {
if (frameRate !== null)
@@ -97,6 +157,9 @@ module Phaser {
}
+ /**
+ * Play this animation from the first frame.
+ */
public restart() {
this.isPlaying = true;
@@ -110,6 +173,9 @@ module Phaser {
}
+ /**
+ * Stop playing animation and set it finished.
+ */
public stop() {
this.isPlaying = false;
@@ -117,6 +183,9 @@ module Phaser {
}
+ /**
+ * Update animation frames.
+ */
public update(): bool {
if (this.isPlaying == true && this._game.time.now >= this._timeNextFrame)
@@ -150,6 +219,9 @@ module Phaser {
}
+ /**
+ * Clean up animation memory.
+ */
public destroy() {
this._game = null;
@@ -161,6 +233,9 @@ module Phaser {
}
+ /**
+ * Animation complete callback method.
+ */
private onComplete() {
this.isPlaying = false;
diff --git a/Phaser/system/animation/AnimationLoader.ts b/Phaser/system/animation/AnimationLoader.ts
index ec14d4aa3..f1bd19c9b 100644
--- a/Phaser/system/animation/AnimationLoader.ts
+++ b/Phaser/system/animation/AnimationLoader.ts
@@ -12,11 +12,11 @@ module Phaser {
/**
* Parse a sprite sheet from asset data.
- * @param key Asset key for the sprite sheet data.
- * @param frameWidth Width of animation frame.
- * @param frameHeight Height of animation frame.
- * @param frameMax Number of animation frames.
- * @return {FrameData=} Generated FrameData object.
+ * @param key {string} Asset key for the sprite sheet data.
+ * @param frameWidth {number} Width of animation frame.
+ * @param frameHeight {number} Height of animation frame.
+ * @param frameMax {number} Number of animation frames.
+ * @return {FrameData} Generated FrameData object.
*/
public static parseSpriteSheet(game: Game, key: string, frameWidth: number, frameHeight: number, frameMax: number): FrameData {
@@ -73,8 +73,8 @@ module Phaser {
/**
* Parse frame datas from json.
- * @param json Json data you want to parse.
- * @return {FrameData=} Generated FrameData object.
+ * @param json {object} Json data you want to parse.
+ * @return {FrameData} Generated FrameData object.
*/
public static parseJSONData(game: Game, json): FrameData {
diff --git a/Phaser/system/animation/Frame.ts b/Phaser/system/animation/Frame.ts
index 61b817874..9d4b4d2a7 100644
--- a/Phaser/system/animation/Frame.ts
+++ b/Phaser/system/animation/Frame.ts
@@ -14,11 +14,11 @@ module Phaser {
* Frame constructor
* Create a new Frame
with specific position, size and name.
*
- * @param x X position within the image to cut from.
- * @param y Y position within the image to cut from.
- * @param width Width of the frame.
- * @param height Height of the frame.
- * @param name Name of this frame.
+ * @param x {number} X position within the image to cut from.
+ * @param y {number} Y position within the image to cut from.
+ * @param width {number} Width of the frame.
+ * @param height {number} Height of the frame.
+ * @param name {string} Name of this frame.
*/
constructor(x: number, y: number, width: number, height: number, name: string) {
@@ -122,13 +122,13 @@ module Phaser {
/**
* Set trim of the frame.
- * @param trimmed Whether this frame trimmed or not.
- * @param actualWidth Actual width of this frame.
- * @param actualHeight Actual height of this frame.
- * @param destX Destiny x position.
- * @param destY Destiny y position.
- * @param destWidth Destiny draw width.
- * @param destHeight Destiny draw height.
+ * @param trimmed {boolean} Whether this frame trimmed or not.
+ * @param actualWidth {number} Actual width of this frame.
+ * @param actualHeight {number} Actual height of this frame.
+ * @param destX {number} Destiny x position.
+ * @param destY {number} Destiny y position.
+ * @param destWidth {number} Destiny draw width.
+ * @param destHeight {number} Destiny draw height.
*/
public setTrim(trimmed: bool, actualWidth, actualHeight, destX, destY, destWidth, destHeight, ) {