diff --git a/.idea/dictionaries/rich.xml b/.idea/dictionaries/rich.xml
new file mode 100644
index 00000000..4c8bcd5c
--- /dev/null
+++ b/.idea/dictionaries/rich.xml
@@ -0,0 +1,8 @@
+
+
+
+ aabb
+ preload
+
+
+
\ No newline at end of file
diff --git a/Phaser/Game.ts b/Phaser/Game.ts
index 3b2ca165..7b1d54be 100644
--- a/Phaser/Game.ts
+++ b/Phaser/Game.ts
@@ -178,91 +178,91 @@ module Phaser {
/**
* Reference to the GameObject Factory.
- * @type {GameObjectFactory}
+ * @type {Phaser.GameObjectFactory}
*/
public add: Phaser.GameObjectFactory;
/**
* Reference to the assets cache.
- * @type {Cache}
+ * @type {Phaser.Cache}
*/
public cache: Phaser.Cache;
/**
* Reference to the input manager
- * @type {Input}
+ * @type {Phaser.InputManager}
*/
public input: Phaser.InputManager;
/**
* Reference to the assets loader.
- * @type {Loader}
+ * @type {Phaser.Loader}
*/
public load: Phaser.Loader;
/**
* Reference to the math helper.
- * @type {GameMath}
+ * @type {Phaser.GameMath}
*/
public math: Phaser.GameMath;
/**
* Reference to the network class.
- * @type {Net}
+ * @type {Phaser.Net}
*/
public net: Phaser.Net;
/**
* Reference to the sound manager.
- * @type {SoundManager}
+ * @type {Phaser.SoundManager}
*/
public sound: Phaser.SoundManager;
/**
* Reference to the stage.
- * @type {Stage}
+ * @type {Phaser.Stage}
*/
public stage: Phaser.Stage;
/**
* Reference to game clock.
- * @type {Time}
+ * @type {Phaser.TimeManager}
*/
public time: Phaser.TimeManager;
/**
* Reference to the tween manager.
- * @type {TweenManager}
+ * @type {Phaser.TweenManager}
*/
public tweens: Phaser.TweenManager;
/**
* Reference to the world.
- * @type {World}
+ * @type {Phaser.World}
*/
public world: Phaser.World;
/**
* Reference to the physics manager.
- * @type {Physics.PhysicsManager}
+ * @type {Phaser.Physics.PhysicsManager}
*/
public physics: Phaser.Physics.PhysicsManager;
/**
* Instance of repeatable random data generator helper.
- * @type {RandomDataGenerator}
+ * @type {Phaser.RandomDataGenerator}
*/
public rnd: Phaser.RandomDataGenerator;
/**
* Contains device information and capabilities.
- * @type {Device}
+ * @type {Phaser.Device}
*/
public device: Phaser.Device;
/**
* Reference to the render manager
- * @type {RenderManager}
+ * @type {Phaser.IRenderer}
*/
public renderer: Phaser.IRenderer;
diff --git a/Tests/phaser-debug.js b/Tests/phaser-debug.js
index b4d3a73f..20b99c56 100644
--- a/Tests/phaser-debug.js
+++ b/Tests/phaser-debug.js
@@ -1,14542 +1,14542 @@
-var Phaser;
-(function (Phaser) {
- Phaser.VERSION = 'Phaser version 1.0.0';
- Phaser.GAMES = [];
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Types = (function () {
- function Types() { }
- Types.RENDERER_AUTO_DETECT = 0;
- Types.RENDERER_HEADLESS = 1;
- Types.RENDERER_CANVAS = 2;
- Types.RENDERER_WEBGL = 3;
- Types.CAMERA_TYPE_ORTHOGRAPHIC = 0;
- Types.CAMERA_TYPE_ISOMETRIC = 1;
- Types.CAMERA_FOLLOW_LOCKON = 0;
- Types.CAMERA_FOLLOW_PLATFORMER = 1;
- Types.CAMERA_FOLLOW_TOPDOWN = 2;
- Types.CAMERA_FOLLOW_TOPDOWN_TIGHT = 3;
- Types.GROUP = 0;
- Types.SPRITE = 1;
- Types.GEOMSPRITE = 2;
- Types.PARTICLE = 3;
- Types.EMITTER = 4;
- Types.TILEMAP = 5;
- Types.SCROLLZONE = 6;
- Types.BUTTON = 7;
- Types.DYNAMICTEXTURE = 8;
- Types.GEOM_POINT = 0;
- Types.GEOM_CIRCLE = 1;
- Types.GEOM_RECTANGLE = 2;
- Types.GEOM_LINE = 3;
- Types.GEOM_POLYGON = 4;
- Types.BODY_DISABLED = 0;
- Types.BODY_STATIC = 1;
- Types.BODY_KINETIC = 2;
- Types.BODY_DYNAMIC = 3;
- Types.OUT_OF_BOUNDS_KILL = 0;
- Types.OUT_OF_BOUNDS_DESTROY = 1;
- Types.OUT_OF_BOUNDS_PERSIST = 2;
- Types.SORT_ASCENDING = -1;
- Types.SORT_DESCENDING = 1;
- Types.LEFT = 0x0001;
- Types.RIGHT = 0x0010;
- Types.UP = 0x0100;
- Types.DOWN = 0x1000;
- Types.NONE = 0;
- Types.CEILING = 0x0100;
- Types.FLOOR = 0x1000;
- Types.WALL = 0x0001 | 0x0010;
- Types.ANY = 0x0001 | 0x0010 | 0x0100 | 0x1000;
- return Types;
- })();
- Phaser.Types = Types;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Point = (function () {
- function Point(x, y) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- this.x = x;
- this.y = y;
- }
- Point.prototype.copyFrom = function (source) {
- return this.setTo(source.x, source.y);
- };
- Point.prototype.invert = function () {
- return this.setTo(this.y, this.x);
- };
- Point.prototype.setTo = function (x, y) {
- this.x = x;
- this.y = y;
- return this;
- };
- Point.prototype.toString = function () {
- return '[{Point (x=' + this.x + ' y=' + this.y + ')}]';
- };
- return Point;
- })();
- Phaser.Point = Point;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Rectangle = (function () {
- function Rectangle(x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = 0; }
- if (typeof height === "undefined") { height = 0; }
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- }
- Object.defineProperty(Rectangle.prototype, "halfWidth", {
- get: function () {
- return Math.round(this.width / 2);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "halfHeight", {
- get: function () {
- return Math.round(this.height / 2);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "bottom", {
- get: function () {
- return this.y + this.height;
- },
- set: function (value) {
- if(value <= this.y) {
- this.height = 0;
- } else {
- this.height = (this.y - value);
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "bottomRight", {
- set: function (value) {
- this.right = value.x;
- this.bottom = value.y;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "left", {
- get: function () {
- return this.x;
- },
- set: function (value) {
- if(value >= this.right) {
- this.width = 0;
- } else {
- this.width = this.right - value;
- }
- this.x = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "right", {
- get: function () {
- return this.x + this.width;
- },
- set: function (value) {
- if(value <= this.x) {
- this.width = 0;
- } else {
- this.width = this.x + value;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "volume", {
- get: function () {
- return this.width * this.height;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "perimeter", {
- get: function () {
- return (this.width * 2) + (this.height * 2);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "top", {
- get: function () {
- return this.y;
- },
- set: function (value) {
- if(value >= this.bottom) {
- this.height = 0;
- this.y = value;
- } else {
- this.height = (this.bottom - value);
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "topLeft", {
- set: function (value) {
- this.x = value.x;
- this.y = value.y;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Rectangle.prototype, "empty", {
- get: function () {
- return (!this.width || !this.height);
- },
- set: function (value) {
- this.setTo(0, 0, 0, 0);
- },
- enumerable: true,
- configurable: true
- });
- Rectangle.prototype.offset = function (dx, dy) {
- this.x += dx;
- this.y += dy;
- return this;
- };
- Rectangle.prototype.offsetPoint = function (point) {
- return this.offset(point.x, point.y);
- };
- Rectangle.prototype.setTo = function (x, y, width, height) {
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- return this;
- };
- Rectangle.prototype.floor = function () {
- this.x = Math.floor(this.x);
- this.y = Math.floor(this.y);
- };
- Rectangle.prototype.copyFrom = function (source) {
- return this.setTo(source.x, source.y, source.width, source.height);
- };
- Rectangle.prototype.toString = function () {
- return "[{Rectangle (x=" + this.x + " y=" + this.y + " width=" + this.width + " height=" + this.height + " empty=" + this.empty + ")}]";
- };
- return Rectangle;
- })();
- Phaser.Rectangle = Rectangle;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Circle = (function () {
- function Circle(x, y, diameter) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof diameter === "undefined") { diameter = 0; }
- this._diameter = 0;
- this._radius = 0;
- this.x = 0;
- this.y = 0;
- this.setTo(x, y, diameter);
- }
- Object.defineProperty(Circle.prototype, "diameter", {
- get: function () {
- return this._diameter;
- },
- set: function (value) {
- if(value > 0) {
- this._diameter = value;
- this._radius = value * 0.5;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Circle.prototype, "radius", {
- get: function () {
- return this._radius;
- },
- set: function (value) {
- if(value > 0) {
- this._radius = value;
- this._diameter = value * 2;
- }
- },
- enumerable: true,
- configurable: true
- });
- Circle.prototype.circumference = function () {
- return 2 * (Math.PI * this._radius);
- };
- Object.defineProperty(Circle.prototype, "bottom", {
- get: function () {
- return this.y + this._radius;
- },
- set: function (value) {
- if(value < this.y) {
- this._radius = 0;
- this._diameter = 0;
- } else {
- this.radius = value - this.y;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Circle.prototype, "left", {
- get: function () {
- return this.x - this._radius;
- },
- set: function (value) {
- if(value > this.x) {
- this._radius = 0;
- this._diameter = 0;
- } else {
- this.radius = this.x - value;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Circle.prototype, "right", {
- get: function () {
- return this.x + this._radius;
- },
- set: function (value) {
- if(value < this.x) {
- this._radius = 0;
- this._diameter = 0;
- } else {
- this.radius = value - this.x;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Circle.prototype, "top", {
- get: function () {
- return this.y - this._radius;
- },
- set: function (value) {
- if(value > this.y) {
- this._radius = 0;
- this._diameter = 0;
- } else {
- this.radius = this.y - value;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Circle.prototype, "area", {
- get: function () {
- if(this._radius > 0) {
- return Math.PI * this._radius * this._radius;
- } else {
- return 0;
- }
- },
- enumerable: true,
- configurable: true
- });
- Circle.prototype.setTo = function (x, y, diameter) {
- this.x = x;
- this.y = y;
- this._diameter = diameter;
- this._radius = diameter * 0.5;
- return this;
- };
- Circle.prototype.copyFrom = function (source) {
- return this.setTo(source.x, source.y, source.diameter);
- };
- Object.defineProperty(Circle.prototype, "empty", {
- get: function () {
- return (this._diameter == 0);
- },
- set: function (value) {
- this.setTo(0, 0, 0);
- },
- enumerable: true,
- configurable: true
- });
- Circle.prototype.offset = function (dx, dy) {
- this.x += dx;
- this.y += dy;
- return this;
- };
- Circle.prototype.offsetPoint = function (point) {
- return this.offset(point.x, point.y);
- };
- Circle.prototype.toString = function () {
- return "[{Circle (x=" + this.x + " y=" + this.y + " diameter=" + this.diameter + " radius=" + this.radius + ")}]";
- };
- return Circle;
- })();
- Phaser.Circle = Circle;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Line = (function () {
- function Line(x1, y1, x2, y2) {
- if (typeof x1 === "undefined") { x1 = 0; }
- if (typeof y1 === "undefined") { y1 = 0; }
- if (typeof x2 === "undefined") { x2 = 0; }
- if (typeof y2 === "undefined") { y2 = 0; }
- this.x1 = 0;
- this.y1 = 0;
- this.x2 = 0;
- this.y2 = 0;
- this.setTo(x1, y1, x2, y2);
- }
- Line.prototype.clone = function (output) {
- if (typeof output === "undefined") { output = new Line(); }
- return output.setTo(this.x1, this.y1, this.x2, this.y2);
- };
- Line.prototype.copyFrom = function (source) {
- return this.setTo(source.x1, source.y1, source.x2, source.y2);
- };
- Line.prototype.copyTo = function (target) {
- return target.copyFrom(this);
- };
- Line.prototype.setTo = function (x1, y1, x2, y2) {
- if (typeof x1 === "undefined") { x1 = 0; }
- if (typeof y1 === "undefined") { y1 = 0; }
- if (typeof x2 === "undefined") { x2 = 0; }
- if (typeof y2 === "undefined") { y2 = 0; }
- this.x1 = x1;
- this.y1 = y1;
- this.x2 = x2;
- this.y2 = y2;
- return this;
- };
- Object.defineProperty(Line.prototype, "width", {
- get: function () {
- return Math.max(this.x1, this.x2) - Math.min(this.x1, this.x2);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Line.prototype, "height", {
- get: function () {
- return Math.max(this.y1, this.y2) - Math.min(this.y1, this.y2);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Line.prototype, "length", {
- get: function () {
- return Math.sqrt((this.x2 - this.x1) * (this.x2 - this.x1) + (this.y2 - this.y1) * (this.y2 - this.y1));
- },
- enumerable: true,
- configurable: true
- });
- Line.prototype.getY = function (x) {
- return this.slope * x + this.yIntercept;
- };
- Object.defineProperty(Line.prototype, "angle", {
- get: function () {
- return Math.atan2(this.x2 - this.x1, this.y2 - this.y1);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Line.prototype, "slope", {
- get: function () {
- return (this.y2 - this.y1) / (this.x2 - this.x1);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Line.prototype, "perpSlope", {
- get: function () {
- return -((this.x2 - this.x1) / (this.y2 - this.y1));
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Line.prototype, "yIntercept", {
- get: function () {
- return (this.y1 - this.slope * this.x1);
- },
- enumerable: true,
- configurable: true
- });
- Line.prototype.isPointOnLine = function (x, y) {
- if((x - this.x1) * (this.y2 - this.y1) === (this.x2 - this.x1) * (y - this.y1)) {
- return true;
- } else {
- return false;
- }
- };
- Line.prototype.isPointOnLineSegment = function (x, y) {
- var xMin = Math.min(this.x1, this.x2);
- var xMax = Math.max(this.x1, this.x2);
- var yMin = Math.min(this.y1, this.y2);
- var yMax = Math.max(this.y1, this.y2);
- if(this.isPointOnLine(x, y) && (x >= xMin && x <= xMax) && (y >= yMin && y <= yMax)) {
- return true;
- } else {
- return false;
- }
- };
- Line.prototype.intersectLineLine = function (line) {
- };
- Line.prototype.toString = function () {
- return "[{Line (x1=" + this.x1 + " y1=" + this.y1 + " x2=" + this.x2 + " y2=" + this.y2 + ")}]";
- };
- return Line;
- })();
- Phaser.Line = Line;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var GameMath = (function () {
- function GameMath(game) {
- this.cosTable = [];
- this.sinTable = [];
- this.game = game;
- GameMath.sinA = [];
- GameMath.cosA = [];
- for(var i = 0; i < 360; i++) {
- GameMath.sinA.push(Math.sin(this.degreesToRadians(i)));
- GameMath.cosA.push(Math.cos(this.degreesToRadians(i)));
- }
- }
- GameMath.PI = 3.141592653589793;
- GameMath.PI_2 = 1.5707963267948965;
- GameMath.PI_4 = 0.7853981633974483;
- GameMath.PI_8 = 0.39269908169872413;
- GameMath.PI_16 = 0.19634954084936206;
- GameMath.TWO_PI = 6.283185307179586;
- GameMath.THREE_PI_2 = 4.7123889803846895;
- GameMath.E = 2.71828182845905;
- GameMath.LN10 = 2.302585092994046;
- GameMath.LN2 = 0.6931471805599453;
- GameMath.LOG10E = 0.4342944819032518;
- GameMath.LOG2E = 1.442695040888963387;
- GameMath.SQRT1_2 = 0.7071067811865476;
- GameMath.SQRT2 = 1.4142135623730951;
- GameMath.DEG_TO_RAD = 0.017453292519943294444444444444444;
- GameMath.RAD_TO_DEG = 57.295779513082325225835265587527;
- GameMath.B_16 = 65536;
- GameMath.B_31 = 2147483648;
- GameMath.B_32 = 4294967296;
- GameMath.B_48 = 281474976710656;
- GameMath.B_53 = 9007199254740992;
- GameMath.B_64 = 18446744073709551616;
- GameMath.ONE_THIRD = 0.333333333333333333333333333333333;
- GameMath.TWO_THIRDS = 0.666666666666666666666666666666666;
- GameMath.ONE_SIXTH = 0.166666666666666666666666666666666;
- GameMath.COS_PI_3 = 0.86602540378443864676372317075294;
- GameMath.SIN_2PI_3 = 0.03654595;
- GameMath.CIRCLE_ALPHA = 0.5522847498307933984022516322796;
- GameMath.ON = true;
- GameMath.OFF = false;
- GameMath.SHORT_EPSILON = 0.1;
- GameMath.PERC_EPSILON = 0.001;
- GameMath.EPSILON = 0.0001;
- GameMath.LONG_EPSILON = 0.00000001;
- GameMath.prototype.fuzzyEqual = function (a, b, epsilon) {
- if (typeof epsilon === "undefined") { epsilon = 0.0001; }
- return Math.abs(a - b) < epsilon;
- };
- GameMath.prototype.fuzzyLessThan = function (a, b, epsilon) {
- if (typeof epsilon === "undefined") { epsilon = 0.0001; }
- return a < b + epsilon;
- };
- GameMath.prototype.fuzzyGreaterThan = function (a, b, epsilon) {
- if (typeof epsilon === "undefined") { epsilon = 0.0001; }
- return a > b - epsilon;
- };
- GameMath.prototype.fuzzyCeil = function (val, epsilon) {
- if (typeof epsilon === "undefined") { epsilon = 0.0001; }
- return Math.ceil(val - epsilon);
- };
- GameMath.prototype.fuzzyFloor = function (val, epsilon) {
- if (typeof epsilon === "undefined") { epsilon = 0.0001; }
- return Math.floor(val + epsilon);
- };
- GameMath.prototype.average = function () {
- var args = [];
- for (var _i = 0; _i < (arguments.length - 0); _i++) {
- args[_i] = arguments[_i + 0];
- }
- var avg = 0;
- for(var i = 0; i < args.length; i++) {
- avg += args[i];
- }
- return avg / args.length;
- };
- GameMath.prototype.slam = function (value, target, epsilon) {
- if (typeof epsilon === "undefined") { epsilon = 0.0001; }
- return (Math.abs(value - target) < epsilon) ? target : value;
- };
- GameMath.prototype.percentageMinMax = function (val, max, min) {
- if (typeof min === "undefined") { min = 0; }
- val -= min;
- max -= min;
- if(!max) {
- return 0;
- } else {
- return val / max;
- }
- };
- GameMath.prototype.sign = function (n) {
- if(n) {
- return n / Math.abs(n);
- } else {
- return 0;
- }
- };
- GameMath.prototype.truncate = function (n) {
- return (n > 0) ? Math.floor(n) : Math.ceil(n);
- };
- GameMath.prototype.shear = function (n) {
- return n % 1;
- };
- GameMath.prototype.wrap = function (val, max, min) {
- if (typeof min === "undefined") { min = 0; }
- val -= min;
- max -= min;
- if(max == 0) {
- return min;
- }
- val %= max;
- val += min;
- while(val < min) {
- val += max;
- }
- return val;
- };
- GameMath.prototype.arithWrap = function (value, max, min) {
- if (typeof min === "undefined") { min = 0; }
- max -= min;
- if(max == 0) {
- return min;
- }
- return value - max * Math.floor((value - min) / max);
- };
- GameMath.prototype.clamp = function (input, max, min) {
- if (typeof min === "undefined") { min = 0; }
- return Math.max(min, Math.min(max, input));
- };
- GameMath.prototype.snapTo = function (input, gap, start) {
- if (typeof start === "undefined") { start = 0; }
- if(gap == 0) {
- return input;
- }
- input -= start;
- input = gap * Math.round(input / gap);
- return start + input;
- };
- GameMath.prototype.snapToFloor = function (input, gap, start) {
- if (typeof start === "undefined") { start = 0; }
- if(gap == 0) {
- return input;
- }
- input -= start;
- input = gap * Math.floor(input / gap);
- return start + input;
- };
- GameMath.prototype.snapToCeil = function (input, gap, start) {
- if (typeof start === "undefined") { start = 0; }
- if(gap == 0) {
- return input;
- }
- input -= start;
- input = gap * Math.ceil(input / gap);
- return start + input;
- };
- GameMath.prototype.snapToInArray = function (input, arr, sort) {
- if (typeof sort === "undefined") { sort = true; }
- if(sort) {
- arr.sort();
- }
- if(input < arr[0]) {
- return arr[0];
- }
- var i = 1;
- while(arr[i] < input) {
- i++;
- }
- var low = arr[i - 1];
- var high = (i < arr.length) ? arr[i] : Number.POSITIVE_INFINITY;
- return ((high - input) <= (input - low)) ? high : low;
- };
- GameMath.prototype.roundTo = function (value, place, base) {
- if (typeof place === "undefined") { place = 0; }
- if (typeof base === "undefined") { base = 10; }
- var p = Math.pow(base, -place);
- return Math.round(value * p) / p;
- };
- GameMath.prototype.floorTo = function (value, place, base) {
- if (typeof place === "undefined") { place = 0; }
- if (typeof base === "undefined") { base = 10; }
- var p = Math.pow(base, -place);
- return Math.floor(value * p) / p;
- };
- GameMath.prototype.ceilTo = function (value, place, base) {
- if (typeof place === "undefined") { place = 0; }
- if (typeof base === "undefined") { base = 10; }
- var p = Math.pow(base, -place);
- return Math.ceil(value * p) / p;
- };
- GameMath.prototype.interpolateFloat = function (a, b, weight) {
- return (b - a) * weight + a;
- };
- GameMath.prototype.radiansToDegrees = function (angle) {
- return angle * GameMath.RAD_TO_DEG;
- };
- GameMath.prototype.degreesToRadians = function (angle) {
- return angle * GameMath.DEG_TO_RAD;
- };
- GameMath.prototype.angleBetween = function (x1, y1, x2, y2) {
- return Math.atan2(y2 - y1, x2 - x1);
- };
- GameMath.prototype.normalizeAngle = function (angle, radians) {
- if (typeof radians === "undefined") { radians = true; }
- var rd = (radians) ? GameMath.PI : 180;
- return this.wrap(angle, rd, -rd);
- };
- GameMath.prototype.nearestAngleBetween = function (a1, a2, radians) {
- if (typeof radians === "undefined") { radians = true; }
- var rd = (radians) ? GameMath.PI : 180;
- a1 = this.normalizeAngle(a1, radians);
- a2 = this.normalizeAngle(a2, radians);
- if(a1 < -rd / 2 && a2 > rd / 2) {
- a1 += rd * 2;
- }
- if(a2 < -rd / 2 && a1 > rd / 2) {
- a2 += rd * 2;
- }
- return a2 - a1;
- };
- GameMath.prototype.normalizeAngleToAnother = function (dep, ind, radians) {
- if (typeof radians === "undefined") { radians = true; }
- return ind + this.nearestAngleBetween(ind, dep, radians);
- };
- GameMath.prototype.normalizeAngleAfterAnother = function (dep, ind, radians) {
- if (typeof radians === "undefined") { radians = true; }
- dep = this.normalizeAngle(dep - ind, radians);
- return ind + dep;
- };
- GameMath.prototype.normalizeAngleBeforeAnother = function (dep, ind, radians) {
- if (typeof radians === "undefined") { radians = true; }
- dep = this.normalizeAngle(ind - dep, radians);
- return ind - dep;
- };
- GameMath.prototype.interpolateAngles = function (a1, a2, weight, radians, ease) {
- if (typeof radians === "undefined") { radians = true; }
- if (typeof ease === "undefined") { ease = null; }
- a1 = this.normalizeAngle(a1, radians);
- a2 = this.normalizeAngleToAnother(a2, a1, radians);
- return (typeof ease === 'function') ? ease(weight, a1, a2 - a1, 1) : this.interpolateFloat(a1, a2, weight);
- };
- GameMath.prototype.logBaseOf = function (value, base) {
- return Math.log(value) / Math.log(base);
- };
- GameMath.prototype.GCD = function (m, n) {
- var r;
- m = Math.abs(m);
- n = Math.abs(n);
- if(m < n) {
- r = m;
- m = n;
- n = r;
- }
- while(true) {
- r = m % n;
- if(!r) {
- return n;
- }
- m = n;
- n = r;
- }
- return 1;
- };
- GameMath.prototype.LCM = function (m, n) {
- return (m * n) / this.GCD(m, n);
- };
- GameMath.prototype.factorial = function (value) {
- if(value == 0) {
- return 1;
- }
- var res = value;
- while(--value) {
- res *= value;
- }
- return res;
- };
- GameMath.prototype.gammaFunction = function (value) {
- return this.factorial(value - 1);
- };
- GameMath.prototype.fallingFactorial = function (base, exp) {
- return this.factorial(base) / this.factorial(base - exp);
- };
- GameMath.prototype.risingFactorial = function (base, exp) {
- return this.factorial(base + exp - 1) / this.factorial(base - 1);
- };
- GameMath.prototype.binCoef = function (n, k) {
- return this.fallingFactorial(n, k) / this.factorial(k);
- };
- GameMath.prototype.risingBinCoef = function (n, k) {
- return this.risingFactorial(n, k) / this.factorial(k);
- };
- GameMath.prototype.chanceRoll = function (chance) {
- if (typeof chance === "undefined") { chance = 50; }
- if(chance <= 0) {
- return false;
- } else if(chance >= 100) {
- return true;
- } else {
- if(Math.random() * 100 >= chance) {
- return false;
- } else {
- return true;
- }
- }
- };
- GameMath.prototype.maxAdd = function (value, amount, max) {
- value += amount;
- if(value > max) {
- value = max;
- }
- return value;
- };
- GameMath.prototype.minSub = function (value, amount, min) {
- value -= amount;
- if(value < min) {
- value = min;
- }
- return value;
- };
- GameMath.prototype.wrapValue = function (value, amount, max) {
- var diff;
- value = Math.abs(value);
- amount = Math.abs(amount);
- max = Math.abs(max);
- diff = (value + amount) % max;
- return diff;
- };
- GameMath.prototype.randomSign = function () {
- return (Math.random() > 0.5) ? 1 : -1;
- };
- GameMath.prototype.isOdd = function (n) {
- if(n & 1) {
- return true;
- } else {
- return false;
- }
- };
- GameMath.prototype.isEven = function (n) {
- if(n & 1) {
- return false;
- } else {
- return true;
- }
- };
- GameMath.prototype.wrapAngle = function (angle) {
- var result = angle;
- if(angle >= -180 && angle <= 180) {
- return angle;
- }
- result = (angle + 180) % 360;
- if(result < 0) {
- result += 360;
- }
- return result - 180;
- };
- GameMath.prototype.angleLimit = function (angle, min, max) {
- var result = angle;
- if(angle > max) {
- result = max;
- } else if(angle < min) {
- result = min;
- }
- return result;
- };
- GameMath.prototype.linearInterpolation = function (v, k) {
- var m = v.length - 1;
- var f = m * k;
- var i = Math.floor(f);
- if(k < 0) {
- return this.linear(v[0], v[1], f);
- }
- if(k > 1) {
- return this.linear(v[m], v[m - 1], m - f);
- }
- return this.linear(v[i], v[i + 1 > m ? m : i + 1], f - i);
- };
- GameMath.prototype.bezierInterpolation = function (v, k) {
- var b = 0;
- var n = v.length - 1;
- for(var i = 0; i <= n; i++) {
- b += Math.pow(1 - k, n - i) * Math.pow(k, i) * v[i] * this.bernstein(n, i);
- }
- return b;
- };
- GameMath.prototype.catmullRomInterpolation = function (v, k) {
- var m = v.length - 1;
- var f = m * k;
- var i = Math.floor(f);
- if(v[0] === v[m]) {
- if(k < 0) {
- i = Math.floor(f = m * (1 + k));
- }
- return this.catmullRom(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);
- } else {
- if(k < 0) {
- return v[0] - (this.catmullRom(v[0], v[0], v[1], v[1], -f) - v[0]);
- }
- if(k > 1) {
- return v[m] - (this.catmullRom(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);
- }
- return this.catmullRom(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);
- }
- };
- GameMath.prototype.linear = function (p0, p1, t) {
- return (p1 - p0) * t + p0;
- };
- GameMath.prototype.bernstein = function (n, i) {
- return this.factorial(n) / this.factorial(i) / this.factorial(n - i);
- };
- GameMath.prototype.catmullRom = function (p0, p1, p2, p3, t) {
- var v0 = (p2 - p0) * 0.5, v1 = (p3 - p1) * 0.5, t2 = t * t, t3 = t * t2;
- return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;
- };
- GameMath.prototype.difference = function (a, b) {
- return Math.abs(a - b);
- };
- GameMath.prototype.getRandom = function (objects, startIndex, length) {
- if (typeof startIndex === "undefined") { startIndex = 0; }
- if (typeof length === "undefined") { length = 0; }
- if(objects != null) {
- var l = length;
- if((l == 0) || (l > objects.length - startIndex)) {
- l = objects.length - startIndex;
- }
- if(l > 0) {
- return objects[startIndex + Math.floor(Math.random() * l)];
- }
- }
- return null;
- };
- GameMath.prototype.floor = function (value) {
- var n = value | 0;
- return (value > 0) ? (n) : ((n != value) ? (n - 1) : (n));
- };
- GameMath.prototype.ceil = function (value) {
- var n = value | 0;
- return (value > 0) ? ((n != value) ? (n + 1) : (n)) : (n);
- };
- GameMath.prototype.sinCosGenerator = function (length, sinAmplitude, cosAmplitude, frequency) {
- if (typeof sinAmplitude === "undefined") { sinAmplitude = 1.0; }
- if (typeof cosAmplitude === "undefined") { cosAmplitude = 1.0; }
- if (typeof frequency === "undefined") { frequency = 1.0; }
- var sin = sinAmplitude;
- var cos = cosAmplitude;
- var frq = frequency * Math.PI / length;
- this.cosTable = [];
- this.sinTable = [];
- for(var c = 0; c < length; c++) {
- cos -= sin * frq;
- sin += cos * frq;
- this.cosTable[c] = cos;
- this.sinTable[c] = sin;
- }
- return this.sinTable;
- };
- GameMath.prototype.shiftSinTable = function () {
- if(this.sinTable) {
- var s = this.sinTable.shift();
- this.sinTable.push(s);
- return s;
- }
- };
- GameMath.prototype.shiftCosTable = function () {
- if(this.cosTable) {
- var s = this.cosTable.shift();
- this.cosTable.push(s);
- return s;
- }
- };
- GameMath.prototype.shuffleArray = function (array) {
- for(var i = array.length - 1; i > 0; i--) {
- var j = Math.floor(Math.random() * (i + 1));
- var temp = array[i];
- array[i] = array[j];
- array[j] = temp;
- }
- return array;
- };
- GameMath.prototype.distanceBetween = function (x1, y1, x2, y2) {
- var dx = x1 - x2;
- var dy = y1 - y2;
- return Math.sqrt(dx * dx + dy * dy);
- };
- GameMath.prototype.vectorLength = function (dx, dy) {
- return Math.sqrt(dx * dx + dy * dy);
- };
- return GameMath;
- })();
- Phaser.GameMath = GameMath;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Vec2 = (function () {
- function Vec2(x, y) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- this.x = x;
- this.y = y;
- return this;
- }
- Vec2.prototype.copyFrom = function (source) {
- return this.setTo(source.x, source.y);
- };
- Vec2.prototype.setTo = function (x, y) {
- this.x = x;
- this.y = y;
- return this;
- };
- Vec2.prototype.add = function (a) {
- this.x += a.x;
- this.y += a.y;
- return this;
- };
- Vec2.prototype.subtract = function (v) {
- this.x -= v.x;
- this.y -= v.y;
- return this;
- };
- Vec2.prototype.multiply = function (v) {
- this.x *= v.x;
- this.y *= v.y;
- return this;
- };
- Vec2.prototype.divide = function (v) {
- this.x /= v.x;
- this.y /= v.y;
- return this;
- };
- Vec2.prototype.length = function () {
- return Math.sqrt((this.x * this.x) + (this.y * this.y));
- };
- Vec2.prototype.lengthSq = function () {
- return (this.x * this.x) + (this.y * this.y);
- };
- Vec2.prototype.normalize = function () {
- var inv = (this.x != 0 || this.y != 0) ? 1 / Math.sqrt(this.x * this.x + this.y * this.y) : 0;
- this.x *= inv;
- this.y *= inv;
- return this;
- };
- Vec2.prototype.dot = function (a) {
- return ((this.x * a.x) + (this.y * a.y));
- };
- Vec2.prototype.cross = function (a) {
- return ((this.x * a.y) - (this.y * a.x));
- };
- Vec2.prototype.projectionLength = function (a) {
- var den = a.dot(a);
- if(den == 0) {
- return 0;
- } else {
- return Math.abs(this.dot(a) / den);
- }
- };
- Vec2.prototype.angle = function (a) {
- return Math.atan2(a.x * this.y - a.y * this.x, a.x * this.x + a.y * this.y);
- };
- Vec2.prototype.scale = function (x, y) {
- this.x *= x;
- this.y *= y || x;
- return this;
- };
- Vec2.prototype.multiplyByScalar = function (scalar) {
- this.x *= scalar;
- this.y *= scalar;
- return this;
- };
- Vec2.prototype.multiplyAddByScalar = function (a, scalar) {
- this.x += a.x * scalar;
- this.y += a.y * scalar;
- return this;
- };
- Vec2.prototype.divideByScalar = function (scalar) {
- this.x /= scalar;
- this.y /= scalar;
- return this;
- };
- Vec2.prototype.reverse = function () {
- this.x = -this.x;
- this.y = -this.y;
- return this;
- };
- Vec2.prototype.equals = function (value) {
- return (this.x == value && this.y == value);
- };
- Vec2.prototype.toString = function () {
- return "[{Vec2 (x=" + this.x + " y=" + this.y + ")}]";
- };
- return Vec2;
- })();
- Phaser.Vec2 = Vec2;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Vec2Utils = (function () {
- function Vec2Utils() { }
- Vec2Utils.add = function add(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.x + b.x, a.y + b.y);
- };
- Vec2Utils.subtract = function subtract(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.x - b.x, a.y - b.y);
- };
- Vec2Utils.multiply = function multiply(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.x * b.x, a.y * b.y);
- };
- Vec2Utils.divide = function divide(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.x / b.x, a.y / b.y);
- };
- Vec2Utils.scale = function scale(a, s, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.x * s, a.y * s);
- };
- Vec2Utils.multiplyAdd = function multiplyAdd(a, b, s, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.x + b.x * s, a.y + b.y * s);
- };
- Vec2Utils.negative = function negative(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(-a.x, -a.y);
- };
- Vec2Utils.perp = function perp(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(-a.y, a.x);
- };
- Vec2Utils.rperp = function rperp(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.y, -a.x);
- };
- Vec2Utils.equals = function equals(a, b) {
- return a.x == b.x && a.y == b.y;
- };
- Vec2Utils.epsilonEquals = function epsilonEquals(a, b, epsilon) {
- return Math.abs(a.x - b.x) <= epsilon && Math.abs(a.y - b.y) <= epsilon;
- };
- Vec2Utils.distance = function distance(a, b) {
- return Math.sqrt(Vec2Utils.distanceSq(a, b));
- };
- Vec2Utils.distanceSq = function distanceSq(a, b) {
- return ((a.x - b.x) * (a.x - b.x)) + ((a.y - b.y) * (a.y - b.y));
- };
- Vec2Utils.project = function project(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- var amt = a.dot(b) / b.lengthSq();
- if(amt != 0) {
- out.setTo(amt * b.x, amt * b.y);
- }
- return out;
- };
- Vec2Utils.projectUnit = function projectUnit(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- var amt = a.dot(b);
- if(amt != 0) {
- out.setTo(amt * b.x, amt * b.y);
- }
- return out;
- };
- Vec2Utils.normalRightHand = function normalRightHand(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.y * -1, a.x);
- };
- Vec2Utils.normalize = function normalize(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- var m = a.length();
- if(m != 0) {
- out.setTo(a.x / m, a.y / m);
- }
- return out;
- };
- Vec2Utils.dot = function dot(a, b) {
- return ((a.x * b.x) + (a.y * b.y));
- };
- Vec2Utils.cross = function cross(a, b) {
- return ((a.x * b.y) - (a.y * b.x));
- };
- Vec2Utils.angle = function angle(a, b) {
- return Math.atan2(a.x * b.y - a.y * b.x, a.x * b.x + a.y * b.y);
- };
- Vec2Utils.angleSq = function angleSq(a, b) {
- return a.subtract(b).angle(b.subtract(a));
- };
- Vec2Utils.rotateAroundOrigin = function rotateAroundOrigin(a, b, theta, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- var x = a.x - b.x;
- var y = a.y - b.y;
- return out.setTo(x * Math.cos(theta) - y * Math.sin(theta) + b.x, x * Math.sin(theta) + y * Math.cos(theta) + b.y);
- };
- Vec2Utils.rotate = function rotate(a, theta, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- var c = Math.cos(theta);
- var s = Math.sin(theta);
- return out.setTo(a.x * c - a.y * s, a.x * s + a.y * c);
- };
- Vec2Utils.clone = function clone(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Vec2(); }
- return out.setTo(a.x, a.y);
- };
- return Vec2Utils;
- })();
- Phaser.Vec2Utils = Vec2Utils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Mat3 = (function () {
- function Mat3() {
- this.data = [
- 1,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- 0,
- 1
- ];
- }
- Object.defineProperty(Mat3.prototype, "a00", {
- get: function () {
- return this.data[0];
- },
- set: function (value) {
- this.data[0] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a01", {
- get: function () {
- return this.data[1];
- },
- set: function (value) {
- this.data[1] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a02", {
- get: function () {
- return this.data[2];
- },
- set: function (value) {
- this.data[2] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a10", {
- get: function () {
- return this.data[3];
- },
- set: function (value) {
- this.data[3] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a11", {
- get: function () {
- return this.data[4];
- },
- set: function (value) {
- this.data[4] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a12", {
- get: function () {
- return this.data[5];
- },
- set: function (value) {
- this.data[5] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a20", {
- get: function () {
- return this.data[6];
- },
- set: function (value) {
- this.data[6] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a21", {
- get: function () {
- return this.data[7];
- },
- set: function (value) {
- this.data[7] = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Mat3.prototype, "a22", {
- get: function () {
- return this.data[8];
- },
- set: function (value) {
- this.data[8] = value;
- },
- enumerable: true,
- configurable: true
- });
- Mat3.prototype.copyFromMat3 = function (source) {
- this.data[0] = source.data[0];
- this.data[1] = source.data[1];
- this.data[2] = source.data[2];
- this.data[3] = source.data[3];
- this.data[4] = source.data[4];
- this.data[5] = source.data[5];
- this.data[6] = source.data[6];
- this.data[7] = source.data[7];
- this.data[8] = source.data[8];
- return this;
- };
- Mat3.prototype.copyFromMat4 = function (source) {
- this.data[0] = source[0];
- this.data[1] = source[1];
- this.data[2] = source[2];
- this.data[3] = source[4];
- this.data[4] = source[5];
- this.data[5] = source[6];
- this.data[6] = source[8];
- this.data[7] = source[9];
- this.data[8] = source[10];
- return this;
- };
- Mat3.prototype.clone = function (out) {
- if (typeof out === "undefined") { out = new Phaser.Mat3(); }
- out[0] = this.data[0];
- out[1] = this.data[1];
- out[2] = this.data[2];
- out[3] = this.data[3];
- out[4] = this.data[4];
- out[5] = this.data[5];
- out[6] = this.data[6];
- out[7] = this.data[7];
- out[8] = this.data[8];
- return out;
- };
- Mat3.prototype.identity = function () {
- return this.setTo(1, 0, 0, 0, 1, 0, 0, 0, 1);
- };
- Mat3.prototype.translate = function (v) {
- this.a20 = v.x * this.a00 + v.y * this.a10 + this.a20;
- this.a21 = v.x * this.a01 + v.y * this.a11 + this.a21;
- this.a22 = v.x * this.a02 + v.y * this.a12 + this.a22;
- return this;
- };
- Mat3.prototype.setTemps = function () {
- this._a00 = this.data[0];
- this._a01 = this.data[1];
- this._a02 = this.data[2];
- this._a10 = this.data[3];
- this._a11 = this.data[4];
- this._a12 = this.data[5];
- this._a20 = this.data[6];
- this._a21 = this.data[7];
- this._a22 = this.data[8];
- };
- Mat3.prototype.rotate = function (rad) {
- this.setTemps();
- var s = Phaser.GameMath.sinA[rad];
- var c = Phaser.GameMath.cosA[rad];
- this.data[0] = c * this._a00 + s * this._a10;
- this.data[1] = c * this._a01 + s * this._a10;
- this.data[2] = c * this._a02 + s * this._a12;
- this.data[3] = c * this._a10 - s * this._a00;
- this.data[4] = c * this._a11 - s * this._a01;
- this.data[5] = c * this._a12 - s * this._a02;
- return this;
- };
- Mat3.prototype.scale = function (v) {
- this.data[0] = v.x * this.data[0];
- this.data[1] = v.x * this.data[1];
- this.data[2] = v.x * this.data[2];
- this.data[3] = v.y * this.data[3];
- this.data[4] = v.y * this.data[4];
- this.data[5] = v.y * this.data[5];
- return this;
- };
- Mat3.prototype.setTo = function (a00, a01, a02, a10, a11, a12, a20, a21, a22) {
- this.data[0] = a00;
- this.data[1] = a01;
- this.data[2] = a02;
- this.data[3] = a10;
- this.data[4] = a11;
- this.data[5] = a12;
- this.data[6] = a20;
- this.data[7] = a21;
- this.data[8] = a22;
- return this;
- };
- Mat3.prototype.toString = function () {
- return '';
- };
- return Mat3;
- })();
- Phaser.Mat3 = Mat3;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Mat3Utils = (function () {
- function Mat3Utils() { }
- Mat3Utils.transpose = function transpose(source, dest) {
- if (typeof dest === "undefined") { dest = null; }
- if(dest === null) {
- var a01 = source.data[1];
- var a02 = source.data[2];
- var a12 = source.data[5];
- source.data[1] = source.data[3];
- source.data[2] = source.data[6];
- source.data[3] = a01;
- source.data[5] = source.data[7];
- source.data[6] = a02;
- source.data[7] = a12;
- } else {
- source.data[0] = dest.data[0];
- source.data[1] = dest.data[3];
- source.data[2] = dest.data[6];
- source.data[3] = dest.data[1];
- source.data[4] = dest.data[4];
- source.data[5] = dest.data[7];
- source.data[6] = dest.data[2];
- source.data[7] = dest.data[5];
- source.data[8] = dest.data[8];
- }
- return source;
- };
- Mat3Utils.invert = function invert(source) {
- var a00 = source.data[0];
- var a01 = source.data[1];
- var a02 = source.data[2];
- var a10 = source.data[3];
- var a11 = source.data[4];
- var a12 = source.data[5];
- var a20 = source.data[6];
- var a21 = source.data[7];
- var a22 = source.data[8];
- var b01 = a22 * a11 - a12 * a21;
- var b11 = -a22 * a10 + a12 * a20;
- var b21 = a21 * a10 - a11 * a20;
- var det = a00 * b01 + a01 * b11 + a02 * b21;
- if(!det) {
- return null;
- }
- det = 1.0 / det;
- source.data[0] = b01 * det;
- source.data[1] = (-a22 * a01 + a02 * a21) * det;
- source.data[2] = (a12 * a01 - a02 * a11) * det;
- source.data[3] = b11 * det;
- source.data[4] = (a22 * a00 - a02 * a20) * det;
- source.data[5] = (-a12 * a00 + a02 * a10) * det;
- source.data[6] = b21 * det;
- source.data[7] = (-a21 * a00 + a01 * a20) * det;
- source.data[8] = (a11 * a00 - a01 * a10) * det;
- return source;
- };
- Mat3Utils.adjoint = function adjoint(source) {
- var a00 = source.data[0];
- var a01 = source.data[1];
- var a02 = source.data[2];
- var a10 = source.data[3];
- var a11 = source.data[4];
- var a12 = source.data[5];
- var a20 = source.data[6];
- var a21 = source.data[7];
- var a22 = source.data[8];
- source.data[0] = (a11 * a22 - a12 * a21);
- source.data[1] = (a02 * a21 - a01 * a22);
- source.data[2] = (a01 * a12 - a02 * a11);
- source.data[3] = (a12 * a20 - a10 * a22);
- source.data[4] = (a00 * a22 - a02 * a20);
- source.data[5] = (a02 * a10 - a00 * a12);
- source.data[6] = (a10 * a21 - a11 * a20);
- source.data[7] = (a01 * a20 - a00 * a21);
- source.data[8] = (a00 * a11 - a01 * a10);
- return source;
- };
- Mat3Utils.determinant = function determinant(source) {
- var a00 = source.data[0];
- var a01 = source.data[1];
- var a02 = source.data[2];
- var a10 = source.data[3];
- var a11 = source.data[4];
- var a12 = source.data[5];
- var a20 = source.data[6];
- var a21 = source.data[7];
- var a22 = source.data[8];
- return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
- };
- Mat3Utils.multiply = function multiply(source, b) {
- var a00 = source.data[0];
- var a01 = source.data[1];
- var a02 = source.data[2];
- var a10 = source.data[3];
- var a11 = source.data[4];
- var a12 = source.data[5];
- var a20 = source.data[6];
- var a21 = source.data[7];
- var a22 = source.data[8];
- var b00 = b.data[0];
- var b01 = b.data[1];
- var b02 = b.data[2];
- var b10 = b.data[3];
- var b11 = b.data[4];
- var b12 = b.data[5];
- var b20 = b.data[6];
- var b21 = b.data[7];
- var b22 = b.data[8];
- source.data[0] = b00 * a00 + b01 * a10 + b02 * a20;
- source.data[1] = b00 * a01 + b01 * a11 + b02 * a21;
- source.data[2] = b00 * a02 + b01 * a12 + b02 * a22;
- source.data[3] = b10 * a00 + b11 * a10 + b12 * a20;
- source.data[4] = b10 * a01 + b11 * a11 + b12 * a21;
- source.data[5] = b10 * a02 + b11 * a12 + b12 * a22;
- source.data[6] = b20 * a00 + b21 * a10 + b22 * a20;
- source.data[7] = b20 * a01 + b21 * a11 + b22 * a21;
- source.data[8] = b20 * a02 + b21 * a12 + b22 * a22;
- return source;
- };
- Mat3Utils.fromQuaternion = function fromQuaternion() {
- };
- Mat3Utils.normalFromMat4 = function normalFromMat4() {
- };
- return Mat3Utils;
- })();
- Phaser.Mat3Utils = Mat3Utils;
-})(Phaser || (Phaser = {}));
-var __extends = this.__extends || function (d, b) {
- function __() { this.constructor = d; }
- __.prototype = b.prototype;
- d.prototype = new __();
-};
-var Phaser;
-(function (Phaser) {
- var QuadTree = (function (_super) {
- __extends(QuadTree, _super);
- function QuadTree(manager, x, y, width, height, parent) {
- if (typeof parent === "undefined") { parent = null; }
- _super.call(this, x, y, width, height);
- QuadTree.physics = manager;
- this._headA = this._tailA = new Phaser.LinkedList();
- this._headB = this._tailB = new Phaser.LinkedList();
- if(parent != null) {
- if(parent._headA.object != null) {
- this._iterator = parent._headA;
- while(this._iterator != null) {
- if(this._tailA.object != null) {
- this._ot = this._tailA;
- this._tailA = new Phaser.LinkedList();
- this._ot.next = this._tailA;
- }
- this._tailA.object = this._iterator.object;
- this._iterator = this._iterator.next;
- }
- }
- if(parent._headB.object != null) {
- this._iterator = parent._headB;
- while(this._iterator != null) {
- if(this._tailB.object != null) {
- this._ot = this._tailB;
- this._tailB = new Phaser.LinkedList();
- this._ot.next = this._tailB;
- }
- this._tailB.object = this._iterator.object;
- this._iterator = this._iterator.next;
- }
- }
- } else {
- QuadTree._min = (this.width + this.height) / (2 * QuadTree.divisions);
- }
- this._canSubdivide = (this.width > QuadTree._min) || (this.height > QuadTree._min);
- this._northWestTree = null;
- this._northEastTree = null;
- this._southEastTree = null;
- this._southWestTree = null;
- this._leftEdge = this.x;
- this._rightEdge = this.x + this.width;
- this._halfWidth = this.width / 2;
- this._midpointX = this._leftEdge + this._halfWidth;
- this._topEdge = this.y;
- this._bottomEdge = this.y + this.height;
- this._halfHeight = this.height / 2;
- this._midpointY = this._topEdge + this._halfHeight;
- }
- QuadTree.A_LIST = 0;
- QuadTree.B_LIST = 1;
- QuadTree.prototype.destroy = function () {
- this._tailA.destroy();
- this._tailB.destroy();
- this._headA.destroy();
- this._headB.destroy();
- this._tailA = null;
- this._tailB = null;
- this._headA = null;
- this._headB = null;
- if(this._northWestTree != null) {
- this._northWestTree.destroy();
- }
- if(this._northEastTree != null) {
- this._northEastTree.destroy();
- }
- if(this._southEastTree != null) {
- this._southEastTree.destroy();
- }
- if(this._southWestTree != null) {
- this._southWestTree.destroy();
- }
- this._northWestTree = null;
- this._northEastTree = null;
- this._southEastTree = null;
- this._southWestTree = null;
- QuadTree._object = null;
- QuadTree._processingCallback = null;
- QuadTree._notifyCallback = null;
- };
- QuadTree.prototype.load = function (objectOrGroup1, objectOrGroup2, notifyCallback, processCallback, context) {
- if (typeof objectOrGroup2 === "undefined") { objectOrGroup2 = null; }
- if (typeof notifyCallback === "undefined") { notifyCallback = null; }
- if (typeof processCallback === "undefined") { processCallback = null; }
- if (typeof context === "undefined") { context = null; }
- this.add(objectOrGroup1, QuadTree.A_LIST);
- if(objectOrGroup2 != null) {
- this.add(objectOrGroup2, QuadTree.B_LIST);
- QuadTree._useBothLists = true;
- } else {
- QuadTree._useBothLists = false;
- }
- QuadTree._notifyCallback = notifyCallback;
- QuadTree._processingCallback = processCallback;
- QuadTree._callbackContext = context;
- };
- QuadTree.prototype.add = function (objectOrGroup, list) {
- QuadTree._list = list;
- if(objectOrGroup.type == Phaser.Types.GROUP) {
- this._i = 0;
- this._members = objectOrGroup['members'];
- this._l = objectOrGroup['length'];
- while(this._i < this._l) {
- this._basic = this._members[this._i++];
- if(this._basic != null && this._basic.exists) {
- if(this._basic.type == Phaser.Types.GROUP) {
- this.add(this._basic, list);
- } else {
- QuadTree._object = this._basic;
- if(QuadTree._object.exists && QuadTree._object.body.allowCollisions) {
- this.addObject();
- }
- }
- }
- }
- } else {
- QuadTree._object = objectOrGroup;
- if(QuadTree._object.exists && QuadTree._object.body.allowCollisions) {
- this.addObject();
- }
- }
- };
- QuadTree.prototype.addObject = function () {
- if(!this._canSubdivide || ((this._leftEdge >= QuadTree._object.body.bounds.x) && (this._rightEdge <= QuadTree._object.body.bounds.right) && (this._topEdge >= QuadTree._object.body.bounds.y) && (this._bottomEdge <= QuadTree._object.body.bounds.bottom))) {
- this.addToList();
- return;
- }
- if((QuadTree._object.body.bounds.x > this._leftEdge) && (QuadTree._object.body.bounds.right < this._midpointX)) {
- if((QuadTree._object.body.bounds.y > this._topEdge) && (QuadTree._object.body.bounds.bottom < this._midpointY)) {
- if(this._northWestTree == null) {
- this._northWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._topEdge, this._halfWidth, this._halfHeight, this);
- }
- this._northWestTree.addObject();
- return;
- }
- if((QuadTree._object.body.bounds.y > this._midpointY) && (QuadTree._object.body.bounds.bottom < this._bottomEdge)) {
- if(this._southWestTree == null) {
- this._southWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._midpointY, this._halfWidth, this._halfHeight, this);
- }
- this._southWestTree.addObject();
- return;
- }
- }
- if((QuadTree._object.body.bounds.x > this._midpointX) && (QuadTree._object.body.bounds.right < this._rightEdge)) {
- if((QuadTree._object.body.bounds.y > this._topEdge) && (QuadTree._object.body.bounds.bottom < this._midpointY)) {
- if(this._northEastTree == null) {
- this._northEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._topEdge, this._halfWidth, this._halfHeight, this);
- }
- this._northEastTree.addObject();
- return;
- }
- if((QuadTree._object.body.bounds.y > this._midpointY) && (QuadTree._object.body.bounds.bottom < this._bottomEdge)) {
- if(this._southEastTree == null) {
- this._southEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._midpointY, this._halfWidth, this._halfHeight, this);
- }
- this._southEastTree.addObject();
- return;
- }
- }
- if((QuadTree._object.body.bounds.right > this._leftEdge) && (QuadTree._object.body.bounds.x < this._midpointX) && (QuadTree._object.body.bounds.bottom > this._topEdge) && (QuadTree._object.body.bounds.y < this._midpointY)) {
- if(this._northWestTree == null) {
- this._northWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._topEdge, this._halfWidth, this._halfHeight, this);
- }
- this._northWestTree.addObject();
- }
- if((QuadTree._object.body.bounds.right > this._midpointX) && (QuadTree._object.body.bounds.x < this._rightEdge) && (QuadTree._object.body.bounds.bottom > this._topEdge) && (QuadTree._object.body.bounds.y < this._midpointY)) {
- if(this._northEastTree == null) {
- this._northEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._topEdge, this._halfWidth, this._halfHeight, this);
- }
- this._northEastTree.addObject();
- }
- if((QuadTree._object.body.bounds.right > this._midpointX) && (QuadTree._object.body.bounds.x < this._rightEdge) && (QuadTree._object.body.bounds.bottom > this._midpointY) && (QuadTree._object.body.bounds.y < this._bottomEdge)) {
- if(this._southEastTree == null) {
- this._southEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._midpointY, this._halfWidth, this._halfHeight, this);
- }
- this._southEastTree.addObject();
- }
- if((QuadTree._object.body.bounds.right > this._leftEdge) && (QuadTree._object.body.bounds.x < this._midpointX) && (QuadTree._object.body.bounds.bottom > this._midpointY) && (QuadTree._object.body.bounds.y < this._bottomEdge)) {
- if(this._southWestTree == null) {
- this._southWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._midpointY, this._halfWidth, this._halfHeight, this);
- }
- this._southWestTree.addObject();
- }
- };
- QuadTree.prototype.addToList = function () {
- if(QuadTree._list == QuadTree.A_LIST) {
- if(this._tailA.object != null) {
- this._ot = this._tailA;
- this._tailA = new Phaser.LinkedList();
- this._ot.next = this._tailA;
- }
- this._tailA.object = QuadTree._object;
- } else {
- if(this._tailB.object != null) {
- this._ot = this._tailB;
- this._tailB = new Phaser.LinkedList();
- this._ot.next = this._tailB;
- }
- this._tailB.object = QuadTree._object;
- }
- if(!this._canSubdivide) {
- return;
- }
- if(this._northWestTree != null) {
- this._northWestTree.addToList();
- }
- if(this._northEastTree != null) {
- this._northEastTree.addToList();
- }
- if(this._southEastTree != null) {
- this._southEastTree.addToList();
- }
- if(this._southWestTree != null) {
- this._southWestTree.addToList();
- }
- };
- QuadTree.prototype.execute = function () {
- this._overlapProcessed = false;
- if(this._headA.object != null) {
- this._iterator = this._headA;
- while(this._iterator != null) {
- QuadTree._object = this._iterator.object;
- if(QuadTree._useBothLists) {
- QuadTree._iterator = this._headB;
- } else {
- QuadTree._iterator = this._iterator.next;
- }
- if(QuadTree._object.exists && (QuadTree._object.body.allowCollisions > 0) && (QuadTree._iterator != null) && (QuadTree._iterator.object != null) && QuadTree._iterator.object.exists && this.overlapNode()) {
- this._overlapProcessed = true;
- }
- this._iterator = this._iterator.next;
- }
- }
- if((this._northWestTree != null) && this._northWestTree.execute()) {
- this._overlapProcessed = true;
- }
- if((this._northEastTree != null) && this._northEastTree.execute()) {
- this._overlapProcessed = true;
- }
- if((this._southEastTree != null) && this._southEastTree.execute()) {
- this._overlapProcessed = true;
- }
- if((this._southWestTree != null) && this._southWestTree.execute()) {
- this._overlapProcessed = true;
- }
- return this._overlapProcessed;
- };
- QuadTree.prototype.overlapNode = function () {
- this._overlapProcessed = false;
- while(QuadTree._iterator != null) {
- if(!QuadTree._object.exists || (QuadTree._object.body.allowCollisions <= 0)) {
- break;
- }
- this._checkObject = QuadTree._iterator.object;
- if((QuadTree._object === this._checkObject) || !this._checkObject.exists || (this._checkObject.body.allowCollisions <= 0)) {
- QuadTree._iterator = QuadTree._iterator.next;
- continue;
- }
- QuadTree._iterator = QuadTree._iterator.next;
- }
- return this._overlapProcessed;
- };
- return QuadTree;
- })(Phaser.Rectangle);
- Phaser.QuadTree = QuadTree;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var LinkedList = (function () {
- function LinkedList() {
- this.object = null;
- this.next = null;
- }
- LinkedList.prototype.destroy = function () {
- this.object = null;
- if(this.next != null) {
- this.next.destroy();
- }
- this.next = null;
- };
- return LinkedList;
- })();
- Phaser.LinkedList = LinkedList;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var RandomDataGenerator = (function () {
- function RandomDataGenerator(seeds) {
- if (typeof seeds === "undefined") { seeds = []; }
- this.c = 1;
- this.sow(seeds);
- }
- RandomDataGenerator.prototype.uint32 = function () {
- return this.rnd.apply(this) * 0x100000000;
- };
- RandomDataGenerator.prototype.fract32 = function () {
- return this.rnd.apply(this) + (this.rnd.apply(this) * 0x200000 | 0) * 1.1102230246251565e-16;
- };
- RandomDataGenerator.prototype.rnd = function () {
- var t = 2091639 * this.s0 + this.c * 2.3283064365386963e-10;
- this.c = t | 0;
- this.s0 = this.s1;
- this.s1 = this.s2;
- this.s2 = t - this.c;
- return this.s2;
- };
- RandomDataGenerator.prototype.hash = function (data) {
- var h, i, n;
- n = 0xefc8249d;
- data = data.toString();
- for(i = 0; i < data.length; i++) {
- n += data.charCodeAt(i);
- h = 0.02519603282416938 * n;
- n = h >>> 0;
- h -= n;
- h *= n;
- n = h >>> 0;
- h -= n;
- n += h * 0x100000000;
- }
- return (n >>> 0) * 2.3283064365386963e-10;
- };
- RandomDataGenerator.prototype.sow = function (seeds) {
- if (typeof seeds === "undefined") { seeds = []; }
- this.s0 = this.hash(' ');
- this.s1 = this.hash(this.s0);
- this.s2 = this.hash(this.s1);
- var seed;
- for(var i = 0; seed = seeds[i++]; ) {
- this.s0 -= this.hash(seed);
- this.s0 += ~~(this.s0 < 0);
- this.s1 -= this.hash(seed);
- this.s1 += ~~(this.s1 < 0);
- this.s2 -= this.hash(seed);
- this.s2 += ~~(this.s2 < 0);
- }
- };
- Object.defineProperty(RandomDataGenerator.prototype, "integer", {
- get: function () {
- return this.uint32();
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(RandomDataGenerator.prototype, "frac", {
- get: function () {
- return this.fract32();
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(RandomDataGenerator.prototype, "real", {
- get: function () {
- return this.uint32() + this.fract32();
- },
- enumerable: true,
- configurable: true
- });
- RandomDataGenerator.prototype.integerInRange = function (min, max) {
- return Math.floor(this.realInRange(min, max));
- };
- RandomDataGenerator.prototype.realInRange = function (min, max) {
- min = min || 0;
- max = max || 0;
- return this.frac * (max - min) + min;
- };
- Object.defineProperty(RandomDataGenerator.prototype, "normal", {
- get: function () {
- return 1 - 2 * this.frac;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(RandomDataGenerator.prototype, "uuid", {
- get: function () {
- var a, b;
- for(b = a = ''; a++ < 36; b += ~a % 5 | a * 3 & 4 ? (a ^ 15 ? 8 ^ this.frac * (a ^ 20 ? 16 : 4) : 4).toString(16) : '-') {
- ;
- }
- return b;
- },
- enumerable: true,
- configurable: true
- });
- RandomDataGenerator.prototype.pick = function (array) {
- return array[this.integerInRange(0, array.length)];
- };
- RandomDataGenerator.prototype.weightedPick = function (array) {
- return array[~~(Math.pow(this.frac, 2) * array.length)];
- };
- RandomDataGenerator.prototype.timestamp = function (min, max) {
- if (typeof min === "undefined") { min = 946684800000; }
- if (typeof max === "undefined") { max = 1577862000000; }
- return this.realInRange(min, max);
- };
- Object.defineProperty(RandomDataGenerator.prototype, "angle", {
- get: function () {
- return this.integerInRange(-180, 180);
- },
- enumerable: true,
- configurable: true
- });
- return RandomDataGenerator;
- })();
- Phaser.RandomDataGenerator = RandomDataGenerator;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Plugin = (function () {
- function Plugin(game, parent) {
- this.game = game;
- this.parent = parent;
- this.active = false;
- this.visible = false;
- this.hasPreUpdate = false;
- this.hasUpdate = false;
- this.hasPostUpdate = false;
- this.hasPreRender = false;
- this.hasRender = false;
- this.hasPostRender = false;
- }
- Plugin.prototype.preUpdate = function () {
- };
- Plugin.prototype.update = function () {
- };
- Plugin.prototype.postUpdate = function () {
- };
- Plugin.prototype.preRender = function () {
- };
- Plugin.prototype.render = function () {
- };
- Plugin.prototype.postRender = function () {
- };
- Plugin.prototype.destroy = function () {
- this.game = null;
- this.parent = null;
- this.active = false;
- this.visible = false;
- };
- return Plugin;
- })();
- Phaser.Plugin = Plugin;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var PluginManager = (function () {
- function PluginManager(game, parent) {
- this.game = game;
- this._parent = parent;
- this.plugins = [];
- }
- PluginManager.prototype.add = function (plugin) {
- var result = false;
- if(typeof plugin === 'function') {
- plugin = new plugin(this.game, this._parent);
- } else {
- plugin.game = this.game;
- plugin.parent = this._parent;
- }
- if(typeof plugin['preUpdate'] === 'function') {
- plugin.hasPreUpdate = true;
- result = true;
- }
- if(typeof plugin['update'] === 'function') {
- plugin.hasUpdate = true;
- result = true;
- }
- if(typeof plugin['postUpdate'] === 'function') {
- plugin.hasPostUpdate = true;
- result = true;
- }
- if(typeof plugin['preRender'] === 'function') {
- plugin.hasPreRender = true;
- result = true;
- }
- if(typeof plugin['render'] === 'function') {
- plugin.hasRender = true;
- result = true;
- }
- if(typeof plugin['postRender'] === 'function') {
- plugin.hasPostRender = true;
- result = true;
- }
- if(result == true) {
- if(plugin.hasPreUpdate || plugin.hasUpdate || plugin.hasPostUpdate) {
- plugin.active = true;
- }
- if(plugin.hasPreRender || plugin.hasRender || plugin.hasPostRender) {
- plugin.visible = true;
- }
- this._pluginsLength = this.plugins.push(plugin);
- return plugin;
- } else {
- return null;
- }
- };
- PluginManager.prototype.remove = function (plugin) {
- this._pluginsLength--;
- };
- PluginManager.prototype.preUpdate = function () {
- for(this._p = 0; this._p < this._pluginsLength; this._p++) {
- if(this.plugins[this._p].active && this.plugins[this._p].hasPreUpdate) {
- this.plugins[this._p].preUpdate();
- }
- }
- };
- PluginManager.prototype.update = function () {
- for(this._p = 0; this._p < this._pluginsLength; this._p++) {
- if(this.plugins[this._p].active && this.plugins[this._p].hasUpdate) {
- this.plugins[this._p].update();
- }
- }
- };
- PluginManager.prototype.postUpdate = function () {
- for(this._p = 0; this._p < this._pluginsLength; this._p++) {
- if(this.plugins[this._p].active && this.plugins[this._p].hasPostUpdate) {
- this.plugins[this._p].postUpdate();
- }
- }
- };
- PluginManager.prototype.preRender = function () {
- for(this._p = 0; this._p < this._pluginsLength; this._p++) {
- if(this.plugins[this._p].visible && this.plugins[this._p].hasPreRender) {
- this.plugins[this._p].preRender();
- }
- }
- };
- PluginManager.prototype.render = function () {
- for(this._p = 0; this._p < this._pluginsLength; this._p++) {
- if(this.plugins[this._p].visible && this.plugins[this._p].hasRender) {
- this.plugins[this._p].render();
- }
- }
- };
- PluginManager.prototype.postRender = function () {
- for(this._p = 0; this._p < this._pluginsLength; this._p++) {
- if(this.plugins[this._p].visible && this.plugins[this._p].hasPostRender) {
- this.plugins[this._p].postRender();
- }
- }
- };
- PluginManager.prototype.destroy = function () {
- this.plugins.length = 0;
- this._pluginsLength = 0;
- this.game = null;
- this._parent = null;
- };
- return PluginManager;
- })();
- Phaser.PluginManager = PluginManager;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Signal = (function () {
- function Signal() {
- this._bindings = [];
- this._prevParams = null;
- this.memorize = false;
- this._shouldPropagate = true;
- this.active = true;
- }
- Signal.VERSION = '1.0.0';
- Signal.prototype.validateListener = function (listener, fnName) {
- if(typeof listener !== 'function') {
- throw new Error('listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName));
- }
- };
- Signal.prototype._registerListener = function (listener, isOnce, listenerContext, priority) {
- var prevIndex = this._indexOfListener(listener, listenerContext);
- var binding;
- if(prevIndex !== -1) {
- binding = this._bindings[prevIndex];
- if(binding.isOnce() !== isOnce) {
- throw new Error('You cannot add' + (isOnce ? '' : 'Once') + '() then add' + (!isOnce ? '' : 'Once') + '() the same listener without removing the relationship first.');
- }
- } else {
- binding = new Phaser.SignalBinding(this, listener, isOnce, listenerContext, priority);
- this._addBinding(binding);
- }
- if(this.memorize && this._prevParams) {
- binding.execute(this._prevParams);
- }
- return binding;
- };
- Signal.prototype._addBinding = function (binding) {
- var n = this._bindings.length;
- do {
- --n;
- }while(this._bindings[n] && binding.priority <= this._bindings[n].priority);
- this._bindings.splice(n + 1, 0, binding);
- };
- Signal.prototype._indexOfListener = function (listener, context) {
- var n = this._bindings.length;
- var cur;
- while(n--) {
- cur = this._bindings[n];
- if(cur.getListener() === listener && cur.context === context) {
- return n;
- }
- }
- return -1;
- };
- Signal.prototype.has = function (listener, context) {
- if (typeof context === "undefined") { context = null; }
- return this._indexOfListener(listener, context) !== -1;
- };
- Signal.prototype.add = function (listener, listenerContext, priority) {
- if (typeof listenerContext === "undefined") { listenerContext = null; }
- if (typeof priority === "undefined") { priority = 0; }
- this.validateListener(listener, 'add');
- return this._registerListener(listener, false, listenerContext, priority);
- };
- Signal.prototype.addOnce = function (listener, listenerContext, priority) {
- if (typeof listenerContext === "undefined") { listenerContext = null; }
- if (typeof priority === "undefined") { priority = 0; }
- this.validateListener(listener, 'addOnce');
- return this._registerListener(listener, true, listenerContext, priority);
- };
- Signal.prototype.remove = function (listener, context) {
- if (typeof context === "undefined") { context = null; }
- this.validateListener(listener, 'remove');
- var i = this._indexOfListener(listener, context);
- if(i !== -1) {
- this._bindings[i]._destroy();
- this._bindings.splice(i, 1);
- }
- return listener;
- };
- Signal.prototype.removeAll = function () {
- if(this._bindings) {
- var n = this._bindings.length;
- while(n--) {
- this._bindings[n]._destroy();
- }
- this._bindings.length = 0;
- }
- };
- Signal.prototype.getNumListeners = function () {
- return this._bindings.length;
- };
- Signal.prototype.halt = function () {
- this._shouldPropagate = false;
- };
- Signal.prototype.dispatch = function () {
- var paramsArr = [];
- for (var _i = 0; _i < (arguments.length - 0); _i++) {
- paramsArr[_i] = arguments[_i + 0];
- }
- if(!this.active) {
- return;
- }
- var n = this._bindings.length;
- var bindings;
- if(this.memorize) {
- this._prevParams = paramsArr;
- }
- if(!n) {
- return;
- }
- bindings = this._bindings.slice(0);
- this._shouldPropagate = true;
- do {
- n--;
- }while(bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false);
- };
- Signal.prototype.forget = function () {
- this._prevParams = null;
- };
- Signal.prototype.dispose = function () {
- this.removeAll();
- delete this._bindings;
- delete this._prevParams;
- };
- Signal.prototype.toString = function () {
- return '[Signal active:' + this.active + ' numListeners:' + this.getNumListeners() + ']';
- };
- return Signal;
- })();
- Phaser.Signal = Signal;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var SignalBinding = (function () {
- function SignalBinding(signal, listener, isOnce, listenerContext, priority) {
- if (typeof priority === "undefined") { priority = 0; }
- this.active = true;
- this.params = null;
- this._listener = listener;
- this._isOnce = isOnce;
- this.context = listenerContext;
- this._signal = signal;
- this.priority = priority || 0;
- }
- SignalBinding.prototype.execute = function (paramsArr) {
- var handlerReturn;
- var params;
- if(this.active && !!this._listener) {
- params = this.params ? this.params.concat(paramsArr) : paramsArr;
- handlerReturn = this._listener.apply(this.context, params);
- if(this._isOnce) {
- this.detach();
- }
- }
- return handlerReturn;
- };
- SignalBinding.prototype.detach = function () {
- return this.isBound() ? this._signal.remove(this._listener, this.context) : null;
- };
- SignalBinding.prototype.isBound = function () {
- return (!!this._signal && !!this._listener);
- };
- SignalBinding.prototype.isOnce = function () {
- return this._isOnce;
- };
- SignalBinding.prototype.getListener = function () {
- return this._listener;
- };
- SignalBinding.prototype.getSignal = function () {
- return this._signal;
- };
- SignalBinding.prototype._destroy = function () {
- delete this._signal;
- delete this._listener;
- delete this.context;
- };
- SignalBinding.prototype.toString = function () {
- return '[SignalBinding isOnce:' + this._isOnce + ', isBound:' + this.isBound() + ', active:' + this.active + ']';
- };
- return SignalBinding;
- })();
- Phaser.SignalBinding = SignalBinding;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Group = (function () {
- function Group(game, maxSize) {
- if (typeof maxSize === "undefined") { maxSize = 0; }
- this._sortIndex = '';
- this._zCounter = 0;
- this.ID = -1;
- this.z = -1;
- this.group = null;
- this.modified = false;
- this.game = game;
- this.type = Phaser.Types.GROUP;
- this.active = true;
- this.exists = true;
- this.visible = true;
- this.members = [];
- this.length = 0;
- this._maxSize = maxSize;
- this._marker = 0;
- this._sortIndex = null;
- this.ID = this.game.world.getNextGroupID();
- this.transform = new Phaser.Components.TransformManager(this);
- this.texture = new Phaser.Display.Texture(this);
- this.texture.opaque = false;
- }
- Group.prototype.getNextZIndex = function () {
- return this._zCounter++;
- };
- Group.prototype.destroy = function () {
- if(this.members != null) {
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null) {
- this._member.destroy();
- }
- }
- this.members.length = 0;
- }
- this._sortIndex = null;
- };
- Group.prototype.update = function () {
- if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
- this.modified = true;
- }
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null && this._member.exists && this._member.active) {
- if(this._member.type != Phaser.Types.GROUP) {
- this._member.preUpdate();
- }
- this._member.update();
- }
- }
- };
- Group.prototype.postUpdate = function () {
- if(this.modified == true && this.transform.scale.equals(1) && this.transform.skew.equals(0) && this.transform.rotation == 0 && this.transform.rotationOffset == 0 && this.texture.flippedX == false && this.texture.flippedY == false) {
- this.modified = false;
- }
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null && this._member.exists && this._member.active) {
- this._member.postUpdate();
- }
- }
- };
- Group.prototype.render = function (camera) {
- if(camera.isHidden(this) == true) {
- return;
- }
- this.game.renderer.groupRenderer.preRender(camera, this);
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null && this._member.exists && this._member.visible && camera.isHidden(this._member) == false) {
- if(this._member.type == Phaser.Types.GROUP) {
- this._member.render(camera);
- } else {
- this.game.renderer.renderGameObject(camera, this._member);
- }
- }
- }
- this.game.renderer.groupRenderer.postRender(camera, this);
- };
- Group.prototype.directRender = function (camera) {
- this.game.renderer.groupRenderer.preRender(camera, this);
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null && this._member.exists) {
- if(this._member.type == Phaser.Types.GROUP) {
- this._member.directRender(camera);
- } else {
- this.game.renderer.renderGameObject(this._member);
- }
- }
- }
- this.game.renderer.groupRenderer.postRender(camera, this);
- };
- Object.defineProperty(Group.prototype, "maxSize", {
- get: function () {
- return this._maxSize;
- },
- set: function (size) {
- this._maxSize = size;
- if(this._marker >= this._maxSize) {
- this._marker = 0;
- }
- if(this._maxSize == 0 || this.members == null || (this._maxSize >= this.members.length)) {
- return;
- }
- this._i = this._maxSize;
- this._length = this.members.length;
- while(this._i < this._length) {
- this._member = this.members[this._i++];
- if(this._member != null) {
- this._member.destroy();
- }
- }
- this.length = this.members.length = this._maxSize;
- },
- enumerable: true,
- configurable: true
- });
- Group.prototype.add = function (object) {
- if(object.group && (object.group.ID == this.ID || (object.type == Phaser.Types.GROUP && object.ID == this.ID))) {
- return object;
- }
- this._i = 0;
- this._length = this.members.length;
- while(this._i < this._length) {
- if(this.members[this._i] == null) {
- this.members[this._i] = object;
- this.setObjectIDs(object);
- if(this._i >= this.length) {
- this.length = this._i + 1;
- }
- return object;
- }
- this._i++;
- }
- if(this._maxSize > 0) {
- if(this.members.length >= this._maxSize) {
- return object;
- } else if(this.members.length * 2 <= this._maxSize) {
- this.members.length *= 2;
- } else {
- this.members.length = this._maxSize;
- }
- } else {
- this.members.length *= 2;
- }
- this.members[this._i] = object;
- this.length = this._i + 1;
- this.setObjectIDs(object);
- return object;
- };
- Group.prototype.addNewSprite = function (x, y, key, frame) {
- if (typeof key === "undefined") { key = ''; }
- if (typeof frame === "undefined") { frame = null; }
- return this.add(new Phaser.Sprite(this.game, x, y, key, frame));
- };
- Group.prototype.setObjectIDs = function (object, zIndex) {
- if (typeof zIndex === "undefined") { zIndex = -1; }
- if(object.group !== null) {
- object.group.remove(object);
- }
- object.group = this;
- if(zIndex == -1) {
- zIndex = this.getNextZIndex();
- }
- object.z = zIndex;
- if(object['events']) {
- object['events'].onAddedToGroup.dispatch(object, this, object.z);
- }
- };
- Group.prototype.recycle = function (objectClass) {
- if (typeof objectClass === "undefined") { objectClass = null; }
- if(this._maxSize > 0) {
- if(this.length < this._maxSize) {
- if(objectClass == null) {
- return null;
- }
- return this.add(new objectClass(this.game));
- } else {
- this._member = this.members[this._marker++];
- if(this._marker >= this._maxSize) {
- this._marker = 0;
- }
- return this._member;
- }
- } else {
- this._member = this.getFirstAvailable(objectClass);
- if(this._member != null) {
- return this._member;
- }
- if(objectClass == null) {
- return null;
- }
- return this.add(new objectClass(this.game));
- }
- };
- Group.prototype.remove = function (object, splice) {
- if (typeof splice === "undefined") { splice = false; }
- this._i = this.members.indexOf(object);
- if(this._i < 0 || (this._i >= this.members.length)) {
- return null;
- }
- if(splice) {
- this.members.splice(this._i, 1);
- this.length--;
- } else {
- this.members[this._i] = null;
- }
- if(object['events']) {
- object['events'].onRemovedFromGroup.dispatch(object, this);
- }
- object.group = null;
- object.z = -1;
- return object;
- };
- Group.prototype.replace = function (oldObject, newObject) {
- this._i = this.members.indexOf(oldObject);
- if(this._i < 0 || (this._i >= this.members.length)) {
- return null;
- }
- this.setObjectIDs(newObject, this.members[this._i].z);
- this.remove(this.members[this._i]);
- this.members[this._i] = newObject;
- return newObject;
- };
- Group.prototype.swap = function (child1, child2, sort) {
- if (typeof sort === "undefined") { sort = true; }
- if(child1.group.ID != this.ID || child2.group.ID != this.ID || child1 === child2) {
- return false;
- }
- var tempZ = child1.z;
- child1.z = child2.z;
- child2.z = tempZ;
- if(sort) {
- this.sort();
- }
- return true;
- };
- Group.prototype.bringToTop = function (child) {
- var oldZ = child.z;
- if(!child || child.group == null || child.group.ID != this.ID) {
- return false;
- }
- var topZ = -1;
- for(var i = 0; i < this.length; i++) {
- if(this.members[i] && this.members[i].z > topZ) {
- topZ = this.members[i].z;
- }
- }
- if(child.z == topZ) {
- return false;
- }
- child.z = topZ + 1;
- this.sort();
- for(var i = 0; i < this.length; i++) {
- if(this.members[i]) {
- this.members[i].z = i;
- }
- }
- return true;
- };
- Group.prototype.sort = function (index, order) {
- if (typeof index === "undefined") { index = 'z'; }
- if (typeof order === "undefined") { order = Phaser.Types.SORT_ASCENDING; }
- var _this = this;
- this._sortIndex = index;
- this._sortOrder = order;
- this.members.sort(function (a, b) {
- return _this.sortHandler(a, b);
- });
- };
- Group.prototype.sortHandler = function (obj1, obj2) {
- if(!obj1 || !obj2) {
- return 0;
- }
- if(obj1[this._sortIndex] < obj2[this._sortIndex]) {
- return this._sortOrder;
- } else if(obj1[this._sortIndex] > obj2[this._sortIndex]) {
- return -this._sortOrder;
- }
- return 0;
- };
- Group.prototype.setAll = function (variableName, value, recurse) {
- if (typeof recurse === "undefined") { recurse = true; }
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null) {
- if(recurse && this._member.type == Phaser.Types.GROUP) {
- this._member.setAll(variableName, value, recurse);
- } else {
- this._member[variableName] = value;
- }
- }
- }
- };
- Group.prototype.callAll = function (functionName, recurse) {
- if (typeof recurse === "undefined") { recurse = true; }
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null) {
- if(recurse && this._member.type == Phaser.Types.GROUP) {
- this._member.callAll(functionName, recurse);
- } else {
- this._member[functionName]();
- }
- }
- }
- };
- Group.prototype.forEach = function (callback, recursive) {
- if (typeof recursive === "undefined") { recursive = false; }
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null) {
- if(recursive && this._member.type == Phaser.Types.GROUP) {
- this._member.forEach(callback, true);
- } else {
- callback.call(this, this._member);
- }
- }
- }
- };
- Group.prototype.forEachAlive = function (context, callback, recursive) {
- if (typeof recursive === "undefined") { recursive = false; }
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null && this._member.alive) {
- if(recursive && this._member.type == Phaser.Types.GROUP) {
- this._member.forEachAlive(context, callback, true);
- } else {
- callback.call(context, this._member);
- }
- }
- }
- };
- Group.prototype.getFirstAvailable = function (objectClass) {
- if (typeof objectClass === "undefined") { objectClass = null; }
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if((this._member != null) && !this._member.exists && ((objectClass == null) || (typeof this._member === objectClass))) {
- return this._member;
- }
- }
- return null;
- };
- Group.prototype.getFirstNull = function () {
- this._i = 0;
- while(this._i < this.length) {
- if(this.members[this._i] == null) {
- return this._i;
- } else {
- this._i++;
- }
- }
- return -1;
- };
- Group.prototype.getFirstExtant = function () {
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null && this._member.exists) {
- return this._member;
- }
- }
- return null;
- };
- Group.prototype.getFirstAlive = function () {
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if((this._member != null) && this._member.exists && this._member.alive) {
- return this._member;
- }
- }
- return null;
- };
- Group.prototype.getFirstDead = function () {
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if((this._member != null) && !this._member.alive) {
- return this._member;
- }
- }
- return null;
- };
- Group.prototype.countLiving = function () {
- this._count = -1;
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null) {
- if(this._count < 0) {
- this._count = 0;
- }
- if(this._member.exists && this._member.alive) {
- this._count++;
- }
- }
- }
- return this._count;
- };
- Group.prototype.countDead = function () {
- this._count = -1;
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if(this._member != null) {
- if(this._count < 0) {
- this._count = 0;
- }
- if(!this._member.alive) {
- this._count++;
- }
- }
- }
- return this._count;
- };
- Group.prototype.getRandom = function (startIndex, length) {
- if (typeof startIndex === "undefined") { startIndex = 0; }
- if (typeof length === "undefined") { length = 0; }
- if(length == 0) {
- length = this.length;
- }
- return this.game.math.getRandom(this.members, startIndex, length);
- };
- Group.prototype.clear = function () {
- this.length = this.members.length = 0;
- };
- Group.prototype.kill = function () {
- this._i = 0;
- while(this._i < this.length) {
- this._member = this.members[this._i++];
- if((this._member != null) && this._member.exists) {
- this._member.kill();
- }
- }
- };
- return Group;
- })();
- Phaser.Group = Group;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Camera = (function () {
- function Camera(game, id, x, y, width, height) {
- this._target = null;
- this.worldBounds = null;
- this.modified = false;
- this.deadzone = null;
- this.visible = true;
- this.z = -1;
- this.game = game;
- this.ID = id;
- this.z = id;
- width = this.game.math.clamp(width, this.game.stage.width, 1);
- height = this.game.math.clamp(height, this.game.stage.height, 1);
- this.worldView = new Phaser.Rectangle(0, 0, width, height);
- this.screenView = new Phaser.Rectangle(x, y, width, height);
- this.plugins = new Phaser.PluginManager(this.game, this);
- this.transform = new Phaser.Components.TransformManager(this);
- this.texture = new Phaser.Display.Texture(this);
- this._canvas = document.createElement('canvas');
- this._canvas.width = width;
- this._canvas.height = height;
- this._renderLocal = true;
- this.texture.canvas = this._canvas;
- this.texture.context = this.texture.canvas.getContext('2d');
- this.texture.backgroundColor = this.game.stage.backgroundColor;
- this.scale = this.transform.scale;
- this.alpha = this.texture.alpha;
- this.origin = this.transform.origin;
- this.crop = this.texture.crop;
- }
- Object.defineProperty(Camera.prototype, "alpha", {
- get: function () {
- return this.texture.alpha;
- },
- set: function (value) {
- this.texture.alpha = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Camera.prototype, "directToStage", {
- set: function (value) {
- if(value) {
- this._renderLocal = false;
- this.texture.canvas = this.game.stage.canvas;
- Phaser.CanvasUtils.setBackgroundColor(this.texture.canvas, this.game.stage.backgroundColor);
- } else {
- this._renderLocal = true;
- this.texture.canvas = this._canvas;
- Phaser.CanvasUtils.setBackgroundColor(this.texture.canvas, this.texture.backgroundColor);
- }
- this.texture.context = this.texture.canvas.getContext('2d');
- },
- enumerable: true,
- configurable: true
- });
- Camera.prototype.hide = function (object) {
- object.texture.hideFromCamera(this);
- };
- Camera.prototype.isHidden = function (object) {
- return object.texture.isHidden(this);
- };
- Camera.prototype.show = function (object) {
- object.texture.showToCamera(this);
- };
- Camera.prototype.follow = function (target, style) {
- if (typeof style === "undefined") { style = Phaser.Types.CAMERA_FOLLOW_LOCKON; }
- this._target = target;
- var helper;
- switch(style) {
- case Phaser.Types.CAMERA_FOLLOW_PLATFORMER:
- var w = this.width / 8;
- var h = this.height / 3;
- this.deadzone = new Phaser.Rectangle((this.width - w) / 2, (this.height - h) / 2 - h * 0.25, w, h);
- break;
- case Phaser.Types.CAMERA_FOLLOW_TOPDOWN:
- helper = Math.max(this.width, this.height) / 4;
- this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper);
- break;
- case Phaser.Types.CAMERA_FOLLOW_TOPDOWN_TIGHT:
- helper = Math.max(this.width, this.height) / 8;
- this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper);
- break;
- case Phaser.Types.CAMERA_FOLLOW_LOCKON:
- default:
- this.deadzone = null;
- break;
- }
- };
- Camera.prototype.focusOnXY = function (x, y) {
- x += (x > 0) ? 0.0000001 : -0.0000001;
- y += (y > 0) ? 0.0000001 : -0.0000001;
- this.worldView.x = Math.round(x - this.worldView.halfWidth);
- this.worldView.y = Math.round(y - this.worldView.halfHeight);
- };
- Camera.prototype.focusOn = function (point) {
- point.x += (point.x > 0) ? 0.0000001 : -0.0000001;
- point.y += (point.y > 0) ? 0.0000001 : -0.0000001;
- this.worldView.x = Math.round(point.x - this.worldView.halfWidth);
- this.worldView.y = Math.round(point.y - this.worldView.halfHeight);
- };
- Camera.prototype.setBounds = function (x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = 0; }
- if (typeof height === "undefined") { height = 0; }
- if(this.worldBounds == null) {
- this.worldBounds = new Phaser.Rectangle();
- }
- this.worldBounds.setTo(x, y, width, height);
- this.worldView.x = x;
- this.worldView.y = y;
- this.update();
- };
- Camera.prototype.update = function () {
- if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
- this.modified = true;
- }
- this.plugins.preUpdate();
- if(this._target !== null) {
- if(this.deadzone == null) {
- this.focusOnXY(this._target.x, this._target.y);
- } else {
- var edge;
- var targetX = this._target.x + ((this._target.x > 0) ? 0.0000001 : -0.0000001);
- var targetY = this._target.y + ((this._target.y > 0) ? 0.0000001 : -0.0000001);
- edge = targetX - this.deadzone.x;
- if(this.worldView.x > edge) {
- this.worldView.x = edge;
- }
- edge = targetX + this._target.width - this.deadzone.x - this.deadzone.width;
- if(this.worldView.x < edge) {
- this.worldView.x = edge;
- }
- edge = targetY - this.deadzone.y;
- if(this.worldView.y > edge) {
- this.worldView.y = edge;
- }
- edge = targetY + this._target.height - this.deadzone.y - this.deadzone.height;
- if(this.worldView.y < edge) {
- this.worldView.y = edge;
- }
- }
- }
- if(this.worldBounds !== null) {
- if(this.worldView.x < this.worldBounds.left) {
- this.worldView.x = this.worldBounds.left;
- }
- if(this.worldView.x > this.worldBounds.right - this.width) {
- this.worldView.x = (this.worldBounds.right - this.width) + 1;
- }
- if(this.worldView.y < this.worldBounds.top) {
- this.worldView.y = this.worldBounds.top;
- }
- if(this.worldView.y > this.worldBounds.bottom - this.height) {
- this.worldView.y = (this.worldBounds.bottom - this.height) + 1;
- }
- }
- this.worldView.floor();
- this.plugins.update();
- };
- Camera.prototype.postUpdate = function () {
- if(this.modified == true && this.transform.scale.equals(1) && this.transform.skew.equals(0) && this.transform.rotation == 0 && this.transform.rotationOffset == 0 && this.texture.flippedX == false && this.texture.flippedY == false) {
- this.modified = false;
- }
- if(this.worldBounds !== null) {
- if(this.worldView.x < this.worldBounds.left) {
- this.worldView.x = this.worldBounds.left;
- }
- if(this.worldView.x > this.worldBounds.right - this.width) {
- this.worldView.x = this.worldBounds.right - this.width;
- }
- if(this.worldView.y < this.worldBounds.top) {
- this.worldView.y = this.worldBounds.top;
- }
- if(this.worldView.y > this.worldBounds.bottom - this.height) {
- this.worldView.y = this.worldBounds.bottom - this.height;
- }
- }
- this.worldView.floor();
- this.plugins.postUpdate();
- };
- Camera.prototype.destroy = function () {
- this.game.world.cameras.removeCamera(this.ID);
- this.plugins.destroy();
- };
- Object.defineProperty(Camera.prototype, "x", {
- get: function () {
- return this.worldView.x;
- },
- set: function (value) {
- this.worldView.x = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Camera.prototype, "y", {
- get: function () {
- return this.worldView.y;
- },
- set: function (value) {
- this.worldView.y = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Camera.prototype, "width", {
- get: function () {
- return this.screenView.width;
- },
- set: function (value) {
- this.screenView.width = value;
- this.worldView.width = value;
- if(value !== this.texture.canvas.width) {
- this.texture.canvas.width = value;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Camera.prototype, "height", {
- get: function () {
- return this.screenView.height;
- },
- set: function (value) {
- this.screenView.height = value;
- this.worldView.height = value;
- if(value !== this.texture.canvas.height) {
- this.texture.canvas.height = value;
- }
- },
- enumerable: true,
- configurable: true
- });
- Camera.prototype.setPosition = function (x, y) {
- this.screenView.x = x;
- this.screenView.y = y;
- };
- Camera.prototype.setSize = function (width, height) {
- this.screenView.width = width * this.transform.scale.x;
- this.screenView.height = height * this.transform.scale.y;
- this.worldView.width = width;
- this.worldView.height = height;
- if(width !== this.texture.canvas.width) {
- this.texture.canvas.width = width;
- }
- if(height !== this.texture.canvas.height) {
- this.texture.canvas.height = height;
- }
- };
- Object.defineProperty(Camera.prototype, "rotation", {
- get: function () {
- return this.transform.rotation;
- },
- set: function (value) {
- this.transform.rotation = this.game.math.wrap(value, 360, 0);
- },
- enumerable: true,
- configurable: true
- });
- return Camera;
- })();
- Phaser.Camera = Camera;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var CameraManager = (function () {
- function CameraManager(game, x, y, width, height) {
- this._sortIndex = '';
- this.game = game;
- this._cameras = [];
- this._cameraLength = 0;
- this.defaultCamera = this.addCamera(x, y, width, height);
- this.defaultCamera.directToStage = true;
- this.current = this.defaultCamera;
- }
- CameraManager.prototype.getAll = function () {
- return this._cameras;
- };
- CameraManager.prototype.update = function () {
- for(var i = 0; i < this._cameras.length; i++) {
- this._cameras[i].update();
- }
- };
- CameraManager.prototype.postUpdate = function () {
- for(var i = 0; i < this._cameras.length; i++) {
- this._cameras[i].postUpdate();
- }
- };
- CameraManager.prototype.addCamera = function (x, y, width, height) {
- var newCam = new Phaser.Camera(this.game, this._cameraLength, x, y, width, height);
- this._cameraLength = this._cameras.push(newCam);
- return newCam;
- };
- CameraManager.prototype.removeCamera = function (id) {
- for(var c = 0; c < this._cameras.length; c++) {
- if(this._cameras[c].ID == id) {
- if(this.current.ID === this._cameras[c].ID) {
- this.current = null;
- }
- this._cameras.splice(c, 1);
- return true;
- }
- }
- return false;
- };
- CameraManager.prototype.swap = function (camera1, camera2, sort) {
- if (typeof sort === "undefined") { sort = true; }
- if(camera1.ID == camera2.ID) {
- return false;
- }
- var tempZ = camera1.z;
- camera1.z = camera2.z;
- camera2.z = tempZ;
- if(sort) {
- this.sort();
- }
- return true;
- };
- CameraManager.prototype.getCameraUnderPoint = function (x, y) {
- for(var c = this._cameraLength - 1; c >= 0; c--) {
- if(this._cameras[c].visible && Phaser.RectangleUtils.contains(this._cameras[c].screenView, x, y)) {
- return this._cameras[c];
- }
- }
- return null;
- };
- CameraManager.prototype.sort = function (index, order) {
- if (typeof index === "undefined") { index = 'z'; }
- if (typeof order === "undefined") { order = Phaser.Types.SORT_ASCENDING; }
- var _this = this;
- this._sortIndex = index;
- this._sortOrder = order;
- this._cameras.sort(function (a, b) {
- return _this.sortHandler(a, b);
- });
- };
- CameraManager.prototype.sortHandler = function (obj1, obj2) {
- if(obj1[this._sortIndex] < obj2[this._sortIndex]) {
- return this._sortOrder;
- } else if(obj1[this._sortIndex] > obj2[this._sortIndex]) {
- return -this._sortOrder;
- }
- return 0;
- };
- CameraManager.prototype.destroy = function () {
- this._cameras.length = 0;
- this.current = this.addCamera(0, 0, this.game.stage.width, this.game.stage.height);
- };
- return CameraManager;
- })();
- Phaser.CameraManager = CameraManager;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Display) {
- var CSS3Filters = (function () {
- function CSS3Filters(parent) {
- this._blur = 0;
- this._grayscale = 0;
- this._sepia = 0;
- this._brightness = 0;
- this._contrast = 0;
- this._hueRotate = 0;
- this._invert = 0;
- this._opacity = 0;
- this._saturate = 0;
- this.parent = parent;
- }
- CSS3Filters.prototype.setFilter = function (local, prefix, value, unit) {
- this[local] = value;
- if(this.parent) {
- this.parent.style['-webkit-filter'] = prefix + '(' + value + unit + ')';
- }
- };
- Object.defineProperty(CSS3Filters.prototype, "blur", {
- get: function () {
- return this._blur;
- },
- set: function (radius) {
- this.setFilter('_blur', 'blur', radius, 'px');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "grayscale", {
- get: function () {
- return this._grayscale;
- },
- set: function (amount) {
- this.setFilter('_grayscale', 'grayscale', amount, '%');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "sepia", {
- get: function () {
- return this._sepia;
- },
- set: function (amount) {
- this.setFilter('_sepia', 'sepia', amount, '%');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "brightness", {
- get: function () {
- return this._brightness;
- },
- set: function (amount) {
- this.setFilter('_brightness', 'brightness', amount, '%');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "contrast", {
- get: function () {
- return this._contrast;
- },
- set: function (amount) {
- this.setFilter('_contrast', 'contrast', amount, '%');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "hueRotate", {
- get: function () {
- return this._hueRotate;
- },
- set: function (angle) {
- this.setFilter('_hueRotate', 'hue-rotate', angle, 'deg');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "invert", {
- get: function () {
- return this._invert;
- },
- set: function (value) {
- this.setFilter('_invert', 'invert', value, '%');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "opacity", {
- get: function () {
- return this._opacity;
- },
- set: function (value) {
- this.setFilter('_opacity', 'opacity', value, '%');
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(CSS3Filters.prototype, "saturate", {
- get: function () {
- return this._saturate;
- },
- set: function (value) {
- this.setFilter('_saturate', 'saturate', value, '%');
- },
- enumerable: true,
- configurable: true
- });
- return CSS3Filters;
- })();
- Display.CSS3Filters = CSS3Filters;
- })(Phaser.Display || (Phaser.Display = {}));
- var Display = Phaser.Display;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Display) {
- var DynamicTexture = (function () {
- function DynamicTexture(game, width, height) {
- this._sx = 0;
- this._sy = 0;
- this._sw = 0;
- this._sh = 0;
- this._dx = 0;
- this._dy = 0;
- this._dw = 0;
- this._dh = 0;
- this.globalCompositeOperation = null;
- this.game = game;
- this.type = Phaser.Types.DYNAMICTEXTURE;
- this.canvas = document.createElement('canvas');
- this.canvas.width = width;
- this.canvas.height = height;
- this.context = this.canvas.getContext('2d');
- this.css3 = new Phaser.Display.CSS3Filters(this.canvas);
- this.bounds = new Phaser.Rectangle(0, 0, width, height);
- }
- DynamicTexture.prototype.getPixel = function (x, y) {
- var imageData = this.context.getImageData(x, y, 1, 1);
- return Phaser.ColorUtils.getColor(imageData.data[0], imageData.data[1], imageData.data[2]);
- };
- DynamicTexture.prototype.getPixel32 = function (x, y) {
- var imageData = this.context.getImageData(x, y, 1, 1);
- return Phaser.ColorUtils.getColor32(imageData.data[3], imageData.data[0], imageData.data[1], imageData.data[2]);
- };
- DynamicTexture.prototype.getPixels = function (rect) {
- return this.context.getImageData(rect.x, rect.y, rect.width, rect.height);
- };
- DynamicTexture.prototype.setPixel = function (x, y, color) {
- this.context.fillStyle = color;
- this.context.fillRect(x, y, 1, 1);
- };
- DynamicTexture.prototype.setPixel32 = function (x, y, color) {
- this.context.fillStyle = color;
- this.context.fillRect(x, y, 1, 1);
- };
- DynamicTexture.prototype.setPixels = function (rect, input) {
- this.context.putImageData(input, rect.x, rect.y);
- };
- DynamicTexture.prototype.fillRect = function (rect, color) {
- this.context.fillStyle = color;
- this.context.fillRect(rect.x, rect.y, rect.width, rect.height);
- };
- DynamicTexture.prototype.pasteImage = function (key, frame, destX, destY, destWidth, destHeight) {
- if (typeof frame === "undefined") { frame = -1; }
- if (typeof destX === "undefined") { destX = 0; }
- if (typeof destY === "undefined") { destY = 0; }
- if (typeof destWidth === "undefined") { destWidth = null; }
- if (typeof destHeight === "undefined") { destHeight = null; }
- var texture = null;
- var frameData;
- this._sx = 0;
- this._sy = 0;
- this._dx = destX;
- this._dy = destY;
- if(frame > -1) {
- } else {
- texture = this.game.cache.getImage(key);
- this._sw = texture.width;
- this._sh = texture.height;
- this._dw = texture.width;
- this._dh = texture.height;
- }
- if(destWidth !== null) {
- this._dw = destWidth;
- }
- if(destHeight !== null) {
- this._dh = destHeight;
- }
- if(texture != null) {
- this.context.drawImage(texture, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
- }
- };
- DynamicTexture.prototype.copyPixels = function (sourceTexture, sourceRect, destPoint) {
- if(Phaser.RectangleUtils.equals(sourceRect, this.bounds) == true) {
- this.context.drawImage(sourceTexture.canvas, destPoint.x, destPoint.y);
- } else {
- this.context.putImageData(sourceTexture.getPixels(sourceRect), destPoint.x, destPoint.y);
- }
- };
- DynamicTexture.prototype.add = function (sprite) {
- sprite.texture.canvas = this.canvas;
- sprite.texture.context = this.context;
- };
- DynamicTexture.prototype.assignCanvasToGameObjects = function (objects) {
- for(var i = 0; i < objects.length; i++) {
- if(objects[i].texture) {
- objects[i].texture.canvas = this.canvas;
- objects[i].texture.context = this.context;
- }
- }
- };
- DynamicTexture.prototype.clear = function () {
- this.context.clearRect(0, 0, this.bounds.width, this.bounds.height);
- };
- DynamicTexture.prototype.render = function (x, y) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if(this.globalCompositeOperation) {
- this.game.stage.context.save();
- this.game.stage.context.globalCompositeOperation = this.globalCompositeOperation;
- }
- this.game.stage.context.drawImage(this.canvas, x, y);
- if(this.globalCompositeOperation) {
- this.game.stage.context.restore();
- }
- };
- Object.defineProperty(DynamicTexture.prototype, "width", {
- get: function () {
- return this.bounds.width;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(DynamicTexture.prototype, "height", {
- get: function () {
- return this.bounds.height;
- },
- enumerable: true,
- configurable: true
- });
- return DynamicTexture;
- })();
- Display.DynamicTexture = DynamicTexture;
- })(Phaser.Display || (Phaser.Display = {}));
- var Display = Phaser.Display;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Display) {
- var Texture = (function () {
- function Texture(parent) {
- this.imageTexture = null;
- this.dynamicTexture = null;
- this.loaded = false;
- this.opaque = false;
- this.backgroundColor = 'rgb(255,255,255)';
- this.globalCompositeOperation = null;
- this.renderRotation = true;
- this.flippedX = false;
- this.flippedY = false;
- this.isDynamic = false;
- this.game = parent.game;
- this.parent = parent;
- this.canvas = parent.game.stage.canvas;
- this.context = parent.game.stage.context;
- this.alpha = 1;
- this.flippedX = false;
- this.flippedY = false;
- this._width = 16;
- this._height = 16;
- this.cameraBlacklist = [];
- this._blacklist = 0;
- }
- Texture.prototype.hideFromCamera = function (camera) {
- if(this.isHidden(camera) == false) {
- this.cameraBlacklist.push(camera.ID);
- this._blacklist++;
- }
- };
- Texture.prototype.isHidden = function (camera) {
- if(this._blacklist && this.cameraBlacklist.indexOf(camera.ID) !== -1) {
- return true;
- }
- return false;
- };
- Texture.prototype.showToCamera = function (camera) {
- if(this.isHidden(camera)) {
- this.cameraBlacklist.slice(this.cameraBlacklist.indexOf(camera.ID), 1);
- this._blacklist--;
- }
- };
- Texture.prototype.setTo = function (image, dynamic) {
- if (typeof image === "undefined") { image = null; }
- if (typeof dynamic === "undefined") { dynamic = null; }
- if(dynamic) {
- this.isDynamic = true;
- this.dynamicTexture = dynamic;
- this.texture = this.dynamicTexture.canvas;
- } else {
- this.isDynamic = false;
- this.imageTexture = image;
- this.texture = this.imageTexture;
- this._width = image.width;
- this._height = image.height;
- }
- this.loaded = true;
- return this.parent;
- };
- Texture.prototype.loadImage = function (key, clearAnimations, updateBody) {
- if (typeof clearAnimations === "undefined") { clearAnimations = true; }
- if (typeof updateBody === "undefined") { updateBody = true; }
- if(clearAnimations && this.parent['animations'] && this.parent['animations'].frameData !== null) {
- this.parent.animations.destroy();
- }
- if(this.game.cache.getImage(key) !== null) {
- this.setTo(this.game.cache.getImage(key), null);
- this.cacheKey = key;
- if(this.game.cache.isSpriteSheet(key) && this.parent['animations']) {
- this.parent.animations.loadFrameData(this.parent.game.cache.getFrameData(key));
- } else {
- if(updateBody && this.parent['body']) {
- this.parent.body.bounds.width = this.width;
- this.parent.body.bounds.height = this.height;
- }
- }
- }
- };
- Texture.prototype.loadDynamicTexture = function (texture) {
- if(this.parent.animations.frameData !== null) {
- this.parent.animations.destroy();
- }
- this.setTo(null, texture);
- this.parent.texture.width = this.width;
- this.parent.texture.height = this.height;
- };
- Object.defineProperty(Texture.prototype, "width", {
- get: function () {
- if(this.isDynamic) {
- return this.dynamicTexture.width;
- } else {
- return this._width;
- }
- },
- set: function (value) {
- this._width = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Texture.prototype, "height", {
- get: function () {
- if(this.isDynamic) {
- return this.dynamicTexture.height;
- } else {
- return this._height;
- }
- },
- set: function (value) {
- this._height = value;
- },
- enumerable: true,
- configurable: true
- });
- return Texture;
- })();
- Display.Texture = Texture;
- })(Phaser.Display || (Phaser.Display = {}));
- var Display = Phaser.Display;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Back = (function () {
- function Back() { }
- Back.In = function In(k) {
- var s = 1.70158;
- return k * k * ((s + 1) * k - s);
- };
- Back.Out = function Out(k) {
- var s = 1.70158;
- return --k * k * ((s + 1) * k + s) + 1;
- };
- Back.InOut = function InOut(k) {
- var s = 1.70158 * 1.525;
- if((k *= 2) < 1) {
- return 0.5 * (k * k * ((s + 1) * k - s));
- }
- return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);
- };
- return Back;
- })();
- Easing.Back = Back;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Bounce = (function () {
- function Bounce() { }
- Bounce.In = function In(k) {
- return 1 - Phaser.Easing.Bounce.Out(1 - k);
- };
- Bounce.Out = function Out(k) {
- if(k < (1 / 2.75)) {
- return 7.5625 * k * k;
- } else if(k < (2 / 2.75)) {
- return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;
- } else if(k < (2.5 / 2.75)) {
- return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;
- } else {
- return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;
- }
- };
- Bounce.InOut = function InOut(k) {
- if(k < 0.5) {
- return Phaser.Easing.Bounce.In(k * 2) * 0.5;
- }
- return Phaser.Easing.Bounce.Out(k * 2 - 1) * 0.5 + 0.5;
- };
- return Bounce;
- })();
- Easing.Bounce = Bounce;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Circular = (function () {
- function Circular() { }
- Circular.In = function In(k) {
- return 1 - Math.sqrt(1 - k * k);
- };
- Circular.Out = function Out(k) {
- return Math.sqrt(1 - (--k * k));
- };
- Circular.InOut = function InOut(k) {
- if((k *= 2) < 1) {
- return -0.5 * (Math.sqrt(1 - k * k) - 1);
- }
- return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);
- };
- return Circular;
- })();
- Easing.Circular = Circular;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Cubic = (function () {
- function Cubic() { }
- Cubic.In = function In(k) {
- return k * k * k;
- };
- Cubic.Out = function Out(k) {
- return --k * k * k + 1;
- };
- Cubic.InOut = function InOut(k) {
- if((k *= 2) < 1) {
- return 0.5 * k * k * k;
- }
- return 0.5 * ((k -= 2) * k * k + 2);
- };
- return Cubic;
- })();
- Easing.Cubic = Cubic;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Elastic = (function () {
- function Elastic() { }
- Elastic.In = function In(k) {
- var s, a = 0.1, p = 0.4;
- if(k === 0) {
- return 0;
- }
- if(k === 1) {
- return 1;
- }
- if(!a || a < 1) {
- a = 1;
- s = p / 4;
- } else {
- s = p * Math.asin(1 / a) / (2 * Math.PI);
- }
- return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
- };
- Elastic.Out = function Out(k) {
- var s, a = 0.1, p = 0.4;
- if(k === 0) {
- return 0;
- }
- if(k === 1) {
- return 1;
- }
- if(!a || a < 1) {
- a = 1;
- s = p / 4;
- } else {
- s = p * Math.asin(1 / a) / (2 * Math.PI);
- }
- return (a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1);
- };
- Elastic.InOut = function InOut(k) {
- var s, a = 0.1, p = 0.4;
- if(k === 0) {
- return 0;
- }
- if(k === 1) {
- return 1;
- }
- if(!a || a < 1) {
- a = 1;
- s = p / 4;
- } else {
- s = p * Math.asin(1 / a) / (2 * Math.PI);
- }
- if((k *= 2) < 1) {
- return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
- }
- return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
- };
- return Elastic;
- })();
- Easing.Elastic = Elastic;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Exponential = (function () {
- function Exponential() { }
- Exponential.In = function In(k) {
- return k === 0 ? 0 : Math.pow(1024, k - 1);
- };
- Exponential.Out = function Out(k) {
- return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);
- };
- Exponential.InOut = function InOut(k) {
- if(k === 0) {
- return 0;
- }
- if(k === 1) {
- return 1;
- }
- if((k *= 2) < 1) {
- return 0.5 * Math.pow(1024, k - 1);
- }
- return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);
- };
- return Exponential;
- })();
- Easing.Exponential = Exponential;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Linear = (function () {
- function Linear() { }
- Linear.None = function None(k) {
- return k;
- };
- return Linear;
- })();
- Easing.Linear = Linear;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Quadratic = (function () {
- function Quadratic() { }
- Quadratic.In = function In(k) {
- return k * k;
- };
- Quadratic.Out = function Out(k) {
- return k * (2 - k);
- };
- Quadratic.InOut = function InOut(k) {
- if((k *= 2) < 1) {
- return 0.5 * k * k;
- }
- return -0.5 * (--k * (k - 2) - 1);
- };
- return Quadratic;
- })();
- Easing.Quadratic = Quadratic;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Quartic = (function () {
- function Quartic() { }
- Quartic.In = function In(k) {
- return k * k * k * k;
- };
- Quartic.Out = function Out(k) {
- return 1 - (--k * k * k * k);
- };
- Quartic.InOut = function InOut(k) {
- if((k *= 2) < 1) {
- return 0.5 * k * k * k * k;
- }
- return -0.5 * ((k -= 2) * k * k * k - 2);
- };
- return Quartic;
- })();
- Easing.Quartic = Quartic;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Quintic = (function () {
- function Quintic() { }
- Quintic.In = function In(k) {
- return k * k * k * k * k;
- };
- Quintic.Out = function Out(k) {
- return --k * k * k * k * k + 1;
- };
- Quintic.InOut = function InOut(k) {
- if((k *= 2) < 1) {
- return 0.5 * k * k * k * k * k;
- }
- return 0.5 * ((k -= 2) * k * k * k * k + 2);
- };
- return Quintic;
- })();
- Easing.Quintic = Quintic;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Easing) {
- var Sinusoidal = (function () {
- function Sinusoidal() { }
- Sinusoidal.In = function In(k) {
- return 1 - Math.cos(k * Math.PI / 2);
- };
- Sinusoidal.Out = function Out(k) {
- return Math.sin(k * Math.PI / 2);
- };
- Sinusoidal.InOut = function InOut(k) {
- return 0.5 * (1 - Math.cos(Math.PI * k));
- };
- return Sinusoidal;
- })();
- Easing.Sinusoidal = Sinusoidal;
- })(Phaser.Easing || (Phaser.Easing = {}));
- var Easing = Phaser.Easing;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Tween = (function () {
- function Tween(object, game) {
- this._object = null;
- this._pausedTime = 0;
- this._valuesStart = {
- };
- this._valuesEnd = {
- };
- this._duration = 1000;
- this._delayTime = 0;
- this._startTime = null;
- this._loop = false;
- this._yoyo = false;
- this._yoyoCount = 0;
- this._chainedTweens = [];
- this.isRunning = false;
- this._object = object;
- this.game = game;
- this._manager = this.game.tweens;
- this._interpolationFunction = this.game.math.linearInterpolation;
- this._easingFunction = Phaser.Easing.Linear.None;
- this._chainedTweens = [];
- this.onStart = new Phaser.Signal();
- this.onUpdate = new Phaser.Signal();
- this.onComplete = new Phaser.Signal();
- }
- Tween.prototype.to = function (properties, duration, ease, autoStart, delay, loop, yoyo) {
- if (typeof duration === "undefined") { duration = 1000; }
- if (typeof ease === "undefined") { ease = null; }
- if (typeof autoStart === "undefined") { autoStart = false; }
- if (typeof delay === "undefined") { delay = 0; }
- if (typeof loop === "undefined") { loop = false; }
- if (typeof yoyo === "undefined") { yoyo = false; }
- this._duration = duration;
- this._valuesEnd = properties;
- if(ease !== null) {
- this._easingFunction = ease;
- }
- if(delay > 0) {
- this._delayTime = delay;
- }
- this._loop = loop;
- this._yoyo = yoyo;
- this._yoyoCount = 0;
- if(autoStart === true) {
- return this.start();
- } else {
- return this;
- }
- };
- Tween.prototype.loop = function (value) {
- this._loop = value;
- return this;
- };
- Tween.prototype.yoyo = function (value) {
- this._yoyo = value;
- this._yoyoCount = 0;
- return this;
- };
- Tween.prototype.start = function (looped) {
- if (typeof looped === "undefined") { looped = false; }
- if(this.game === null || this._object === null) {
- return;
- }
- if(looped == false) {
- this._manager.add(this);
- this.onStart.dispatch(this._object);
- }
- this._startTime = this.game.time.now + this._delayTime;
- this.isRunning = true;
- for(var property in this._valuesEnd) {
- if(this._object[property] === null || !(property in this._object)) {
- throw Error('Phaser.Tween interpolation of null value of non-existing property');
- continue;
- }
- if(this._valuesEnd[property] instanceof Array) {
- if(this._valuesEnd[property].length === 0) {
- continue;
- }
- this._valuesEnd[property] = [
- this._object[property]
- ].concat(this._valuesEnd[property]);
- }
- if(looped == false) {
- this._valuesStart[property] = this._object[property];
- }
- }
- return this;
- };
- Tween.prototype.reverse = function () {
- var tempObj = {
- };
- for(var property in this._valuesStart) {
- tempObj[property] = this._valuesStart[property];
- this._valuesStart[property] = this._valuesEnd[property];
- this._valuesEnd[property] = tempObj[property];
- }
- this._yoyoCount++;
- return this.start(true);
- };
- Tween.prototype.reset = function () {
- for(var property in this._valuesStart) {
- this._object[property] = this._valuesStart[property];
- }
- return this.start(true);
- };
- Tween.prototype.clear = function () {
- this._chainedTweens = [];
- this.onStart.removeAll();
- this.onUpdate.removeAll();
- this.onComplete.removeAll();
- return this;
- };
- Tween.prototype.stop = function () {
- if(this._manager !== null) {
- this._manager.remove(this);
- }
- this.isRunning = false;
- this.onComplete.dispose();
- return this;
- };
- Object.defineProperty(Tween.prototype, "parent", {
- set: function (value) {
- this.game = value;
- this._manager = this.game.tweens;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Tween.prototype, "delay", {
- get: function () {
- return this._delayTime;
- },
- set: function (amount) {
- this._delayTime = amount;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Tween.prototype, "easing", {
- get: function () {
- return this._easingFunction;
- },
- set: function (easing) {
- this._easingFunction = easing;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Tween.prototype, "interpolation", {
- get: function () {
- return this._interpolationFunction;
- },
- set: function (interpolation) {
- this._interpolationFunction = interpolation;
- },
- enumerable: true,
- configurable: true
- });
- Tween.prototype.chain = function (tween) {
- this._chainedTweens.push(tween);
- return this;
- };
- Tween.prototype.pause = function () {
- this._paused = true;
- };
- Tween.prototype.resume = function () {
- this._paused = false;
- this._startTime += this.game.time.pauseDuration;
- };
- Tween.prototype.update = function (time) {
- if(this._paused || time < this._startTime) {
- return true;
- }
- this._tempElapsed = (time - this._startTime) / this._duration;
- this._tempElapsed = this._tempElapsed > 1 ? 1 : this._tempElapsed;
- this._tempValue = this._easingFunction(this._tempElapsed);
- for(var property in this._valuesStart) {
- if(this._valuesEnd[property] instanceof Array) {
- this._object[property] = this._interpolationFunction(this._valuesEnd[property], this._tempValue);
- } else {
- this._object[property] = this._valuesStart[property] + (this._valuesEnd[property] - this._valuesStart[property]) * this._tempValue;
- }
- }
- this.onUpdate.dispatch(this._object, this._tempValue);
- if(this._tempElapsed == 1) {
- if(this._yoyo) {
- if(this._yoyoCount == 0) {
- this.reverse();
- return true;
- } else {
- if(this._loop == false) {
- this.onComplete.dispatch(this._object);
- for(var i = 0; i < this._chainedTweens.length; i++) {
- this._chainedTweens[i].start();
- }
- return false;
- } else {
- this._yoyoCount = 0;
- this.reverse();
- return true;
- }
- }
- }
- if(this._loop) {
- this._yoyoCount = 0;
- this.reset();
- return true;
- } else {
- this.onComplete.dispatch(this._object);
- for(var i = 0; i < this._chainedTweens.length; i++) {
- this._chainedTweens[i].start();
- }
- if(this._chainedTweens.length == 0) {
- this.isRunning = false;
- }
- return false;
- }
- }
- return true;
- };
- return Tween;
- })();
- Phaser.Tween = Tween;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var TweenManager = (function () {
- function TweenManager(game) {
- this.game = game;
- this._tweens = [];
- this.game.onPause.add(this.pauseAll, this);
- this.game.onResume.add(this.resumeAll, this);
- }
- TweenManager.prototype.getAll = function () {
- return this._tweens;
- };
- TweenManager.prototype.removeAll = function () {
- this._tweens.length = 0;
- };
- TweenManager.prototype.create = function (object, localReference) {
- if (typeof localReference === "undefined") { localReference = false; }
- if(localReference) {
- object['tween'] = new Phaser.Tween(object, this.game);
- return object['tween'];
- } else {
- return new Phaser.Tween(object, this.game);
- }
- };
- TweenManager.prototype.add = function (tween) {
- tween.parent = this.game;
- this._tweens.push(tween);
- return tween;
- };
- TweenManager.prototype.remove = function (tween) {
- var i = this._tweens.indexOf(tween);
- if(i !== -1) {
- this._tweens.splice(i, 1);
- }
- };
- TweenManager.prototype.update = function () {
- if(this._tweens.length === 0) {
- return false;
- }
- var i = 0;
- var numTweens = this._tweens.length;
- while(i < numTweens) {
- if(this._tweens[i].update(this.game.time.now)) {
- i++;
- } else {
- this._tweens.splice(i, 1);
- numTweens--;
- }
- }
- return true;
- };
- TweenManager.prototype.pauseAll = function () {
- if(this._tweens.length === 0) {
- return false;
- }
- var i = 0;
- var numTweens = this._tweens.length;
- while(i < numTweens) {
- this._tweens[i].pause();
- i++;
- }
- };
- TweenManager.prototype.resumeAll = function () {
- if(this._tweens.length === 0) {
- return false;
- }
- var i = 0;
- var numTweens = this._tweens.length;
- while(i < numTweens) {
- this._tweens[i].resume();
- i++;
- }
- };
- return TweenManager;
- })();
- Phaser.TweenManager = TweenManager;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var TimeManager = (function () {
- function TimeManager(game) {
- this.physicsElapsed = 0;
- this.time = 0;
- this.pausedTime = 0;
- this.now = 0;
- this.delta = 0;
- this.fps = 0;
- this.fpsMin = 1000;
- this.fpsMax = 0;
- this.msMin = 1000;
- this.msMax = 0;
- this.frames = 0;
- this._timeLastSecond = 0;
- this.pauseDuration = 0;
- this._pauseStarted = 0;
- this.game = game;
- this._started = 0;
- this._timeLastSecond = this._started;
- this.time = this._started;
- this.game.onPause.add(this.gamePaused, this);
- this.game.onResume.add(this.gameResumed, this);
- }
- Object.defineProperty(TimeManager.prototype, "totalElapsedSeconds", {
- get: function () {
- return (this.now - this._started) * 0.001;
- },
- enumerable: true,
- configurable: true
- });
- TimeManager.prototype.update = function (raf) {
- this.now = raf;
- this.delta = this.now - this.time;
- this.msMin = Math.min(this.msMin, this.delta);
- this.msMax = Math.max(this.msMax, this.delta);
- this.frames++;
- if(this.now > this._timeLastSecond + 1000) {
- this.fps = Math.round((this.frames * 1000) / (this.now - this._timeLastSecond));
- this.fpsMin = Math.min(this.fpsMin, this.fps);
- this.fpsMax = Math.max(this.fpsMax, this.fps);
- this._timeLastSecond = this.now;
- this.frames = 0;
- }
- this.time = this.now;
- this.physicsElapsed = 1.0 * (this.delta / 1000);
- if(this.game.paused) {
- this.pausedTime = this.now - this._pauseStarted;
- }
- };
- TimeManager.prototype.gamePaused = function () {
- this._pauseStarted = this.now;
- };
- TimeManager.prototype.gameResumed = function () {
- this.delta = 0;
- this.physicsElapsed = 0;
- this.time = Date.now();
- this.pauseDuration = this.pausedTime;
- };
- TimeManager.prototype.elapsedSince = function (since) {
- return this.now - since;
- };
- TimeManager.prototype.elapsedSecondsSince = function (since) {
- return (this.now - since) * 0.001;
- };
- TimeManager.prototype.reset = function () {
- this._started = this.now;
- };
- return TimeManager;
- })();
- Phaser.TimeManager = TimeManager;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Net = (function () {
- function Net(game) {
- this.game = game;
- }
- Net.prototype.checkDomainName = function (domain) {
- return window.location.hostname.indexOf(domain) !== -1;
- };
- Net.prototype.updateQueryString = function (key, value, redirect, url) {
- if (typeof redirect === "undefined") { redirect = false; }
- if (typeof url === "undefined") { url = ''; }
- if(url == '') {
- url = window.location.href;
- }
- var output = '';
- var re = new RegExp("([?|&])" + key + "=.*?(&|#|$)(.*)", "gi");
- if(re.test(url)) {
- if(typeof value !== 'undefined' && value !== null) {
- output = url.replace(re, '$1' + key + "=" + value + '$2$3');
- } else {
- output = url.replace(re, '$1$3').replace(/(&|\?)$/, '');
- }
- } else {
- if(typeof value !== 'undefined' && value !== null) {
- var separator = url.indexOf('?') !== -1 ? '&' : '?';
- var hash = url.split('#');
- url = hash[0] + separator + key + '=' + value;
- if(hash[1]) {
- url += '#' + hash[1];
- }
- output = url;
- } else {
- output = url;
- }
- }
- if(redirect) {
- window.location.href = output;
- } else {
- return output;
- }
- };
- Net.prototype.getQueryString = function (parameter) {
- if (typeof parameter === "undefined") { parameter = ''; }
- var output = {
- };
- var keyValues = location.search.substring(1).split('&');
- for(var i in keyValues) {
- var key = keyValues[i].split('=');
- if(key.length > 1) {
- if(parameter && parameter == this.decodeURI(key[0])) {
- return this.decodeURI(key[1]);
- } else {
- output[this.decodeURI(key[0])] = this.decodeURI(key[1]);
- }
- }
- }
- return output;
- };
- Net.prototype.decodeURI = function (value) {
- return decodeURIComponent(value.replace(/\+/g, " "));
- };
- return Net;
- })();
- Phaser.Net = Net;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Keyboard = (function () {
- function Keyboard(game) {
- this._keys = {
- };
- this._capture = {
- };
- this.disabled = false;
- this.game = game;
- }
- Keyboard.prototype.start = function () {
- var _this = this;
- this._onKeyDown = function (event) {
- return _this.onKeyDown(event);
- };
- this._onKeyUp = function (event) {
- return _this.onKeyUp(event);
- };
- document.body.addEventListener('keydown', this._onKeyDown, false);
- document.body.addEventListener('keyup', this._onKeyUp, false);
- };
- Keyboard.prototype.stop = function () {
- document.body.removeEventListener('keydown', this._onKeyDown);
- document.body.removeEventListener('keyup', this._onKeyUp);
- };
- Keyboard.prototype.addKeyCapture = function (keycode) {
- if(typeof keycode === 'object') {
- for(var i = 0; i < keycode.length; i++) {
- this._capture[keycode[i]] = true;
- }
- } else {
- this._capture[keycode] = true;
- }
- };
- Keyboard.prototype.removeKeyCapture = function (keycode) {
- delete this._capture[keycode];
- };
- Keyboard.prototype.clearCaptures = function () {
- this._capture = {
- };
- };
- Keyboard.prototype.onKeyDown = function (event) {
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- if(this._capture[event.keyCode]) {
- event.preventDefault();
- }
- if(!this._keys[event.keyCode]) {
- this._keys[event.keyCode] = {
- isDown: true,
- timeDown: this.game.time.now,
- timeUp: 0
- };
- } else {
- this._keys[event.keyCode].isDown = true;
- this._keys[event.keyCode].timeDown = this.game.time.now;
- }
- };
- Keyboard.prototype.onKeyUp = function (event) {
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- if(this._capture[event.keyCode]) {
- event.preventDefault();
- }
- if(!this._keys[event.keyCode]) {
- this._keys[event.keyCode] = {
- isDown: false,
- timeDown: 0,
- timeUp: this.game.time.now
- };
- } else {
- this._keys[event.keyCode].isDown = false;
- this._keys[event.keyCode].timeUp = this.game.time.now;
- }
- };
- Keyboard.prototype.reset = function () {
- for(var key in this._keys) {
- this._keys[key].isDown = false;
- }
- };
- Keyboard.prototype.justPressed = function (keycode, duration) {
- if (typeof duration === "undefined") { duration = 250; }
- if(this._keys[keycode] && this._keys[keycode].isDown === true && (this.game.time.now - this._keys[keycode].timeDown < duration)) {
- return true;
- } else {
- return false;
- }
- };
- Keyboard.prototype.justReleased = function (keycode, duration) {
- if (typeof duration === "undefined") { duration = 250; }
- if(this._keys[keycode] && this._keys[keycode].isDown === false && (this.game.time.now - this._keys[keycode].timeUp < duration)) {
- return true;
- } else {
- return false;
- }
- };
- Keyboard.prototype.isDown = function (keycode) {
- if(this._keys[keycode]) {
- return this._keys[keycode].isDown;
- } else {
- return false;
- }
- };
- Keyboard.A = "A".charCodeAt(0);
- Keyboard.B = "B".charCodeAt(0);
- Keyboard.C = "C".charCodeAt(0);
- Keyboard.D = "D".charCodeAt(0);
- Keyboard.E = "E".charCodeAt(0);
- Keyboard.F = "F".charCodeAt(0);
- Keyboard.G = "G".charCodeAt(0);
- Keyboard.H = "H".charCodeAt(0);
- Keyboard.I = "I".charCodeAt(0);
- Keyboard.J = "J".charCodeAt(0);
- Keyboard.K = "K".charCodeAt(0);
- Keyboard.L = "L".charCodeAt(0);
- Keyboard.M = "M".charCodeAt(0);
- Keyboard.N = "N".charCodeAt(0);
- Keyboard.O = "O".charCodeAt(0);
- Keyboard.P = "P".charCodeAt(0);
- Keyboard.Q = "Q".charCodeAt(0);
- Keyboard.R = "R".charCodeAt(0);
- Keyboard.S = "S".charCodeAt(0);
- Keyboard.T = "T".charCodeAt(0);
- Keyboard.U = "U".charCodeAt(0);
- Keyboard.V = "V".charCodeAt(0);
- Keyboard.W = "W".charCodeAt(0);
- Keyboard.X = "X".charCodeAt(0);
- Keyboard.Y = "Y".charCodeAt(0);
- Keyboard.Z = "Z".charCodeAt(0);
- Keyboard.ZERO = "0".charCodeAt(0);
- Keyboard.ONE = "1".charCodeAt(0);
- Keyboard.TWO = "2".charCodeAt(0);
- Keyboard.THREE = "3".charCodeAt(0);
- Keyboard.FOUR = "4".charCodeAt(0);
- Keyboard.FIVE = "5".charCodeAt(0);
- Keyboard.SIX = "6".charCodeAt(0);
- Keyboard.SEVEN = "7".charCodeAt(0);
- Keyboard.EIGHT = "8".charCodeAt(0);
- Keyboard.NINE = "9".charCodeAt(0);
- Keyboard.NUMPAD_0 = 96;
- Keyboard.NUMPAD_1 = 97;
- Keyboard.NUMPAD_2 = 98;
- Keyboard.NUMPAD_3 = 99;
- Keyboard.NUMPAD_4 = 100;
- Keyboard.NUMPAD_5 = 101;
- Keyboard.NUMPAD_6 = 102;
- Keyboard.NUMPAD_7 = 103;
- Keyboard.NUMPAD_8 = 104;
- Keyboard.NUMPAD_9 = 105;
- Keyboard.NUMPAD_MULTIPLY = 106;
- Keyboard.NUMPAD_ADD = 107;
- Keyboard.NUMPAD_ENTER = 108;
- Keyboard.NUMPAD_SUBTRACT = 109;
- Keyboard.NUMPAD_DECIMAL = 110;
- Keyboard.NUMPAD_DIVIDE = 111;
- Keyboard.F1 = 112;
- Keyboard.F2 = 113;
- Keyboard.F3 = 114;
- Keyboard.F4 = 115;
- Keyboard.F5 = 116;
- Keyboard.F6 = 117;
- Keyboard.F7 = 118;
- Keyboard.F8 = 119;
- Keyboard.F9 = 120;
- Keyboard.F10 = 121;
- Keyboard.F11 = 122;
- Keyboard.F12 = 123;
- Keyboard.F13 = 124;
- Keyboard.F14 = 125;
- Keyboard.F15 = 126;
- Keyboard.COLON = 186;
- Keyboard.EQUALS = 187;
- Keyboard.UNDERSCORE = 189;
- Keyboard.QUESTION_MARK = 191;
- Keyboard.TILDE = 192;
- Keyboard.OPEN_BRACKET = 219;
- Keyboard.BACKWARD_SLASH = 220;
- Keyboard.CLOSED_BRACKET = 221;
- Keyboard.QUOTES = 222;
- Keyboard.BACKSPACE = 8;
- Keyboard.TAB = 9;
- Keyboard.CLEAR = 12;
- Keyboard.ENTER = 13;
- Keyboard.SHIFT = 16;
- Keyboard.CONTROL = 17;
- Keyboard.ALT = 18;
- Keyboard.CAPS_LOCK = 20;
- Keyboard.ESC = 27;
- Keyboard.SPACEBAR = 32;
- Keyboard.PAGE_UP = 33;
- Keyboard.PAGE_DOWN = 34;
- Keyboard.END = 35;
- Keyboard.HOME = 36;
- Keyboard.LEFT = 37;
- Keyboard.UP = 38;
- Keyboard.RIGHT = 39;
- Keyboard.DOWN = 40;
- Keyboard.INSERT = 45;
- Keyboard.DELETE = 46;
- Keyboard.HELP = 47;
- Keyboard.NUM_LOCK = 144;
- return Keyboard;
- })();
- Phaser.Keyboard = Keyboard;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Mouse = (function () {
- function Mouse(game) {
- this.disabled = false;
- this.mouseDownCallback = null;
- this.mouseMoveCallback = null;
- this.mouseUpCallback = null;
- this.game = game;
- this.callbackContext = this.game;
- }
- Mouse.LEFT_BUTTON = 0;
- Mouse.MIDDLE_BUTTON = 1;
- Mouse.RIGHT_BUTTON = 2;
- Mouse.prototype.start = function () {
- var _this = this;
- if(this.game.device.android && this.game.device.chrome == false) {
- return;
- }
- this._onMouseDown = function (event) {
- return _this.onMouseDown(event);
- };
- this._onMouseMove = function (event) {
- return _this.onMouseMove(event);
- };
- this._onMouseUp = function (event) {
- return _this.onMouseUp(event);
- };
- this.game.stage.canvas.addEventListener('mousedown', this._onMouseDown, true);
- this.game.stage.canvas.addEventListener('mousemove', this._onMouseMove, true);
- this.game.stage.canvas.addEventListener('mouseup', this._onMouseUp, true);
- };
- Mouse.prototype.onMouseDown = function (event) {
- if(this.mouseDownCallback) {
- this.mouseDownCallback.call(this.callbackContext, event);
- }
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event['identifier'] = 0;
- this.game.input.mousePointer.start(event);
- };
- Mouse.prototype.onMouseMove = function (event) {
- if(this.mouseMoveCallback) {
- this.mouseMoveCallback.call(this.callbackContext, event);
- }
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event['identifier'] = 0;
- this.game.input.mousePointer.move(event);
- };
- Mouse.prototype.onMouseUp = function (event) {
- if(this.mouseUpCallback) {
- this.mouseUpCallback.call(this.callbackContext, event);
- }
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event['identifier'] = 0;
- this.game.input.mousePointer.stop(event);
- };
- Mouse.prototype.stop = function () {
- this.game.stage.canvas.removeEventListener('mousedown', this._onMouseDown);
- this.game.stage.canvas.removeEventListener('mousemove', this._onMouseMove);
- this.game.stage.canvas.removeEventListener('mouseup', this._onMouseUp);
- };
- return Mouse;
- })();
- Phaser.Mouse = Mouse;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var MSPointer = (function () {
- function MSPointer(game) {
- this.disabled = false;
- this.game = game;
- }
- MSPointer.prototype.start = function () {
- var _this = this;
- if(this.game.device.mspointer == true) {
- this._onMSPointerDown = function (event) {
- return _this.onPointerDown(event);
- };
- this._onMSPointerMove = function (event) {
- return _this.onPointerMove(event);
- };
- this._onMSPointerUp = function (event) {
- return _this.onPointerUp(event);
- };
- this.game.stage.canvas.addEventListener('MSPointerDown', this._onMSPointerDown, false);
- this.game.stage.canvas.addEventListener('MSPointerMove', this._onMSPointerMove, false);
- this.game.stage.canvas.addEventListener('MSPointerUp', this._onMSPointerUp, false);
- }
- };
- MSPointer.prototype.onPointerDown = function (event) {
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event.preventDefault();
- event.identifier = event.pointerId;
- this.game.input.startPointer(event);
- };
- MSPointer.prototype.onPointerMove = function (event) {
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event.preventDefault();
- event.identifier = event.pointerId;
- this.game.input.updatePointer(event);
- };
- MSPointer.prototype.onPointerUp = function (event) {
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event.preventDefault();
- event.identifier = event.pointerId;
- this.game.input.stopPointer(event);
- };
- MSPointer.prototype.stop = function () {
- if(this.game.device.mspointer == true) {
- this.game.stage.canvas.removeEventListener('MSPointerDown', this._onMSPointerDown);
- this.game.stage.canvas.removeEventListener('MSPointerMove', this._onMSPointerMove);
- this.game.stage.canvas.removeEventListener('MSPointerUp', this._onMSPointerUp);
- }
- };
- return MSPointer;
- })();
- Phaser.MSPointer = MSPointer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Touch = (function () {
- function Touch(game) {
- this.disabled = false;
- this.touchStartCallback = null;
- this.touchMoveCallback = null;
- this.touchEndCallback = null;
- this.touchEnterCallback = null;
- this.touchLeaveCallback = null;
- this.touchCancelCallback = null;
- this.game = game;
- this.callbackContext = this.game;
- }
- Touch.prototype.start = function () {
- var _this = this;
- if(this.game.device.touch) {
- this._onTouchStart = function (event) {
- return _this.onTouchStart(event);
- };
- this._onTouchMove = function (event) {
- return _this.onTouchMove(event);
- };
- this._onTouchEnd = function (event) {
- return _this.onTouchEnd(event);
- };
- this._onTouchEnter = function (event) {
- return _this.onTouchEnter(event);
- };
- this._onTouchLeave = function (event) {
- return _this.onTouchLeave(event);
- };
- this._onTouchCancel = function (event) {
- return _this.onTouchCancel(event);
- };
- this._documentTouchMove = function (event) {
- return _this.consumeTouchMove(event);
- };
- this.game.stage.canvas.addEventListener('touchstart', this._onTouchStart, false);
- this.game.stage.canvas.addEventListener('touchmove', this._onTouchMove, false);
- this.game.stage.canvas.addEventListener('touchend', this._onTouchEnd, false);
- this.game.stage.canvas.addEventListener('touchenter', this._onTouchEnter, false);
- this.game.stage.canvas.addEventListener('touchleave', this._onTouchLeave, false);
- this.game.stage.canvas.addEventListener('touchcancel', this._onTouchCancel, false);
- document.addEventListener('touchmove', this._documentTouchMove, false);
- }
- };
- Touch.prototype.consumeTouchMove = function (event) {
- event.preventDefault();
- };
- Touch.prototype.onTouchStart = function (event) {
- if(this.touchStartCallback) {
- this.touchStartCallback.call(this.callbackContext, event);
- }
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event.preventDefault();
- for(var i = 0; i < event.changedTouches.length; i++) {
- this.game.input.startPointer(event.changedTouches[i]);
- }
- };
- Touch.prototype.onTouchCancel = function (event) {
- if(this.touchCancelCallback) {
- this.touchCancelCallback.call(this.callbackContext, event);
- }
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event.preventDefault();
- for(var i = 0; i < event.changedTouches.length; i++) {
- this.game.input.stopPointer(event.changedTouches[i]);
- }
- };
- Touch.prototype.onTouchEnter = function (event) {
- if(this.touchEnterCallback) {
- this.touchEnterCallback.call(this.callbackContext, event);
- }
- if(this.game.input.disabled || this.disabled) {
- return;
- }
- event.preventDefault();
- for(var i = 0; i < event.changedTouches.length; i++) {
- }
- };
- Touch.prototype.onTouchLeave = function (event) {
- if(this.touchLeaveCallback) {
- this.touchLeaveCallback.call(this.callbackContext, event);
- }
- event.preventDefault();
- for(var i = 0; i < event.changedTouches.length; i++) {
- }
- };
- Touch.prototype.onTouchMove = function (event) {
- if(this.touchMoveCallback) {
- this.touchMoveCallback.call(this.callbackContext, event);
- }
- event.preventDefault();
- for(var i = 0; i < event.changedTouches.length; i++) {
- this.game.input.updatePointer(event.changedTouches[i]);
- }
- };
- Touch.prototype.onTouchEnd = function (event) {
- if(this.touchEndCallback) {
- this.touchEndCallback.call(this.callbackContext, event);
- }
- event.preventDefault();
- for(var i = 0; i < event.changedTouches.length; i++) {
- this.game.input.stopPointer(event.changedTouches[i]);
- }
- };
- Touch.prototype.stop = function () {
- if(this.game.device.touch) {
- this.game.stage.canvas.removeEventListener('touchstart', this._onTouchStart);
- this.game.stage.canvas.removeEventListener('touchmove', this._onTouchMove);
- this.game.stage.canvas.removeEventListener('touchend', this._onTouchEnd);
- this.game.stage.canvas.removeEventListener('touchenter', this._onTouchEnter);
- this.game.stage.canvas.removeEventListener('touchleave', this._onTouchLeave);
- this.game.stage.canvas.removeEventListener('touchcancel', this._onTouchCancel);
- document.removeEventListener('touchmove', this._documentTouchMove);
- }
- };
- return Touch;
- })();
- Phaser.Touch = Touch;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Pointer = (function () {
- function Pointer(game, id) {
- this._holdSent = false;
- this._history = [];
- this._nextDrop = 0;
- this._stateReset = false;
- this.positionDown = null;
- this.position = null;
- this.circle = null;
- this.withinGame = false;
- this.clientX = -1;
- this.clientY = -1;
- this.pageX = -1;
- this.pageY = -1;
- this.screenX = -1;
- this.screenY = -1;
- this.x = -1;
- this.y = -1;
- this.isMouse = false;
- this.isDown = false;
- this.isUp = true;
- this.timeDown = 0;
- this.timeUp = 0;
- this.previousTapTime = 0;
- this.totalTouches = 0;
- this.msSinceLastClick = Number.MAX_VALUE;
- this.targetObject = null;
- this.camera = null;
- this.game = game;
- this.id = id;
- this.active = false;
- this.position = new Phaser.Vec2();
- this.positionDown = new Phaser.Vec2();
- this.circle = new Phaser.Circle(0, 0, 44);
- if(id == 0) {
- this.isMouse = true;
- }
- }
- Object.defineProperty(Pointer.prototype, "duration", {
- get: function () {
- if(this.isUp) {
- return -1;
- }
- return this.game.time.now - this.timeDown;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Pointer.prototype, "worldX", {
- get: function () {
- if(this.camera) {
- return (this.camera.worldView.x - this.camera.screenView.x) + this.x;
- }
- return null;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Pointer.prototype, "worldY", {
- get: function () {
- if(this.camera) {
- return (this.camera.worldView.y - this.camera.screenView.y) + this.y;
- }
- return null;
- },
- enumerable: true,
- configurable: true
- });
- Pointer.prototype.start = function (event) {
- this.identifier = event.identifier;
- this.target = event.target;
- if(event.button) {
- this.button = event.button;
- }
- if(this.game.paused == true && this.game.stage.scale.incorrectOrientation == false) {
- this.game.stage.resumeGame();
- return this;
- }
- this._history.length = 0;
- this.active = true;
- this.withinGame = true;
- this.isDown = true;
- this.isUp = false;
- this.msSinceLastClick = this.game.time.now - this.timeDown;
- this.timeDown = this.game.time.now;
- this._holdSent = false;
- this.move(event);
- this.positionDown.setTo(this.x, this.y);
- if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
- this.game.input.x = this.x;
- this.game.input.y = this.y;
- this.game.input.position.setTo(this.x, this.y);
- this.game.input.onDown.dispatch(this);
- this.game.input.resetSpeed(this.x, this.y);
- }
- this._stateReset = false;
- this.totalTouches++;
- if(this.isMouse == false) {
- this.game.input.currentPointers++;
- }
- if(this.targetObject !== null) {
- this.targetObject.input._touchedHandler(this);
- }
- return this;
- };
- Pointer.prototype.update = function () {
- if(this.active) {
- if(this._holdSent == false && this.duration >= this.game.input.holdRate) {
- if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
- this.game.input.onHold.dispatch(this);
- }
- this._holdSent = true;
- }
- if(this.game.input.recordPointerHistory && this.game.time.now >= this._nextDrop) {
- this._nextDrop = this.game.time.now + this.game.input.recordRate;
- this._history.push({
- x: this.position.x,
- y: this.position.y
- });
- if(this._history.length > this.game.input.recordLimit) {
- this._history.shift();
- }
- }
- this.camera = this.game.world.cameras.getCameraUnderPoint(this.x, this.y);
- }
- };
- Pointer.prototype.move = function (event) {
- if(this.game.input.pollLocked) {
- return;
- }
- if(event.button) {
- this.button = event.button;
- }
- this.clientX = event.clientX;
- this.clientY = event.clientY;
- this.pageX = event.pageX;
- this.pageY = event.pageY;
- this.screenX = event.screenX;
- this.screenY = event.screenY;
- this.x = (this.pageX - this.game.stage.offset.x) * this.game.input.scale.x;
- this.y = (this.pageY - this.game.stage.offset.y) * this.game.input.scale.y;
- this.position.setTo(this.x, this.y);
- this.circle.x = this.x;
- this.circle.y = this.y;
- if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
- this.game.input.activePointer = this;
- this.game.input.x = this.x;
- this.game.input.y = this.y;
- this.game.input.position.setTo(this.game.input.x, this.game.input.y);
- this.game.input.circle.x = this.game.input.x;
- this.game.input.circle.y = this.game.input.y;
- }
- if(this.game.paused) {
- return this;
- }
- if(this.targetObject !== null && this.targetObject.input && this.targetObject.input.isDragged == true) {
- if(this.targetObject.input.update(this) == false) {
- this.targetObject = null;
- }
- return this;
- }
- this._highestRenderOrderID = -1;
- this._highestRenderObject = -1;
- this._highestInputPriorityID = -1;
- for(var i = 0; i < this.game.input.totalTrackedObjects; i++) {
- if(this.game.input.inputObjects[i] && this.game.input.inputObjects[i].input && this.game.input.inputObjects[i].input.checkPointerOver(this)) {
- if(this.game.input.inputObjects[i].input.priorityID > this._highestInputPriorityID || (this.game.input.inputObjects[i].input.priorityID == this._highestInputPriorityID && this.game.input.inputObjects[i].renderOrderID > this._highestRenderOrderID)) {
- this._highestRenderOrderID = this.game.input.inputObjects[i].renderOrderID;
- this._highestRenderObject = i;
- this._highestInputPriorityID = this.game.input.inputObjects[i].input.priorityID;
- }
- }
- }
- if(this._highestRenderObject == -1) {
- if(this.targetObject !== null) {
- this.targetObject.input._pointerOutHandler(this);
- this.targetObject = null;
- }
- } else {
- if(this.targetObject == null) {
- this.targetObject = this.game.input.inputObjects[this._highestRenderObject];
- this.targetObject.input._pointerOverHandler(this);
- } else {
- if(this.targetObject == this.game.input.inputObjects[this._highestRenderObject]) {
- if(this.targetObject.input.update(this) == false) {
- this.targetObject = null;
- }
- } else {
- this.targetObject.input._pointerOutHandler(this);
- this.targetObject = this.game.input.inputObjects[this._highestRenderObject];
- this.targetObject.input._pointerOverHandler(this);
- }
- }
- }
- return this;
- };
- Pointer.prototype.leave = function (event) {
- this.withinGame = false;
- this.move(event);
- };
- Pointer.prototype.stop = function (event) {
- if(this._stateReset) {
- event.preventDefault();
- return;
- }
- this.timeUp = this.game.time.now;
- if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
- this.game.input.onUp.dispatch(this);
- if(this.duration >= 0 && this.duration <= this.game.input.tapRate) {
- if(this.timeUp - this.previousTapTime < this.game.input.doubleTapRate) {
- this.game.input.onTap.dispatch(this, true);
- } else {
- this.game.input.onTap.dispatch(this, false);
- }
- this.previousTapTime = this.timeUp;
- }
- }
- if(this.id > 0) {
- this.active = false;
- }
- this.withinGame = false;
- this.isDown = false;
- this.isUp = true;
- if(this.isMouse == false) {
- this.game.input.currentPointers--;
- }
- for(var i = 0; i < this.game.input.totalTrackedObjects; i++) {
- if(this.game.input.inputObjects[i] && this.game.input.inputObjects[i].input && this.game.input.inputObjects[i].input.enabled) {
- this.game.input.inputObjects[i].input._releasedHandler(this);
- }
- }
- if(this.targetObject) {
- this.targetObject.input._releasedHandler(this);
- }
- this.targetObject = null;
- return this;
- };
- Pointer.prototype.justPressed = function (duration) {
- if (typeof duration === "undefined") { duration = this.game.input.justPressedRate; }
- if(this.isDown === true && (this.timeDown + duration) > this.game.time.now) {
- return true;
- } else {
- return false;
- }
- };
- Pointer.prototype.justReleased = function (duration) {
- if (typeof duration === "undefined") { duration = this.game.input.justReleasedRate; }
- if(this.isUp === true && (this.timeUp + duration) > this.game.time.now) {
- return true;
- } else {
- return false;
- }
- };
- Pointer.prototype.reset = function () {
- if(this.isMouse == false) {
- this.active = false;
- }
- this.identifier = null;
- this.isDown = false;
- this.isUp = true;
- this.totalTouches = 0;
- this._holdSent = false;
- this._history.length = 0;
- this._stateReset = true;
- if(this.targetObject && this.targetObject.input) {
- this.targetObject.input._releasedHandler(this);
- }
- this.targetObject = null;
- };
- Pointer.prototype.toString = function () {
- return "[{Pointer (id=" + this.id + " identifer=" + this.identifier + " active=" + this.active + " duration=" + this.duration + " withinGame=" + this.withinGame + " x=" + this.x + " y=" + this.y + " clientX=" + this.clientX + " clientY=" + this.clientY + " screenX=" + this.screenX + " screenY=" + this.screenY + " pageX=" + this.pageX + " pageY=" + this.pageY + ")}]";
- };
- return Pointer;
- })();
- Phaser.Pointer = Pointer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Components) {
- var InputHandler = (function () {
- function InputHandler(parent) {
- this.priorityID = 0;
- this.indexID = 0;
- this.isDragged = false;
- this.dragPixelPerfect = false;
- this.allowHorizontalDrag = true;
- this.allowVerticalDrag = true;
- this.bringToTop = false;
- this.snapOnDrag = false;
- this.snapOnRelease = false;
- this.snapX = 0;
- this.snapY = 0;
- this.draggable = false;
- this.boundsRect = null;
- this.boundsSprite = null;
- this.consumePointerEvent = false;
- this.game = parent.game;
- this._parent = parent;
- this.enabled = false;
- }
- InputHandler.prototype.pointerX = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].x;
- };
- InputHandler.prototype.pointerY = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].y;
- };
- InputHandler.prototype.pointerDown = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].isDown;
- };
- InputHandler.prototype.pointerUp = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].isUp;
- };
- InputHandler.prototype.pointerTimeDown = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].timeDown;
- };
- InputHandler.prototype.pointerTimeUp = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].timeUp;
- };
- InputHandler.prototype.pointerOver = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].isOver;
- };
- InputHandler.prototype.pointerOut = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].isOut;
- };
- InputHandler.prototype.pointerTimeOver = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].timeOver;
- };
- InputHandler.prototype.pointerTimeOut = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].timeOut;
- };
- InputHandler.prototype.pointerDragged = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- return this._pointerData[pointer].isDragged;
- };
- InputHandler.prototype.start = function (priority, checkBody, useHandCursor) {
- if (typeof priority === "undefined") { priority = 0; }
- if (typeof checkBody === "undefined") { checkBody = false; }
- if (typeof useHandCursor === "undefined") { useHandCursor = false; }
- if(this.enabled == false) {
- this.checkBody = checkBody;
- this.useHandCursor = useHandCursor;
- this.priorityID = priority;
- this._pointerData = [];
- for(var i = 0; i < 10; i++) {
- this._pointerData.push({
- id: i,
- x: 0,
- y: 0,
- isDown: false,
- isUp: false,
- isOver: false,
- isOut: false,
- timeOver: 0,
- timeOut: 0,
- timeDown: 0,
- timeUp: 0,
- downDuration: 0,
- isDragged: false
- });
- }
- this.snapOffset = new Phaser.Point();
- this.enabled = true;
- this.game.input.addGameObject(this._parent);
- if(this._parent.events.onInputOver == null) {
- this._parent.events.onInputOver = new Phaser.Signal();
- this._parent.events.onInputOut = new Phaser.Signal();
- this._parent.events.onInputDown = new Phaser.Signal();
- this._parent.events.onInputUp = new Phaser.Signal();
- this._parent.events.onDragStart = new Phaser.Signal();
- this._parent.events.onDragStop = new Phaser.Signal();
- }
- }
- return this._parent;
- };
- InputHandler.prototype.reset = function () {
- this.enabled = false;
- for(var i = 0; i < 10; i++) {
- this._pointerData[i] = {
- id: i,
- x: 0,
- y: 0,
- isDown: false,
- isUp: false,
- isOver: false,
- isOut: false,
- timeOver: 0,
- timeOut: 0,
- timeDown: 0,
- timeUp: 0,
- downDuration: 0,
- isDragged: false
- };
- }
- };
- InputHandler.prototype.stop = function () {
- if(this.enabled == false) {
- return;
- } else {
- this.enabled = false;
- this.game.input.removeGameObject(this.indexID);
- }
- };
- InputHandler.prototype.destroy = function () {
- if(this.enabled) {
- this.enabled = false;
- this.game.input.removeGameObject(this.indexID);
- }
- };
- InputHandler.prototype.checkPointerOver = function (pointer) {
- if(this.enabled == false || this._parent.visible == false) {
- return false;
- } else {
- return Phaser.SpriteUtils.overlapsPointer(this._parent, pointer);
- }
- };
- InputHandler.prototype.update = function (pointer) {
- if(this.enabled == false || this._parent.visible == false) {
- this._pointerOutHandler(pointer);
- return false;
- }
- if(this.draggable && this._draggedPointerID == pointer.id) {
- return this.updateDrag(pointer);
- } else if(this._pointerData[pointer.id].isOver == true) {
- if(Phaser.SpriteUtils.overlapsPointer(this._parent, pointer)) {
- this._pointerData[pointer.id].x = pointer.x - this._parent.x;
- this._pointerData[pointer.id].y = pointer.y - this._parent.y;
- return true;
- } else {
- this._pointerOutHandler(pointer);
- return false;
- }
- }
- };
- InputHandler.prototype._pointerOverHandler = function (pointer) {
- if(this._pointerData[pointer.id].isOver == false) {
- this._pointerData[pointer.id].isOver = true;
- this._pointerData[pointer.id].isOut = false;
- this._pointerData[pointer.id].timeOver = this.game.time.now;
- this._pointerData[pointer.id].x = pointer.x - this._parent.x;
- this._pointerData[pointer.id].y = pointer.y - this._parent.y;
- if(this.useHandCursor && this._pointerData[pointer.id].isDragged == false) {
- this.game.stage.canvas.style.cursor = "pointer";
- }
- this._parent.events.onInputOver.dispatch(this._parent, pointer);
- }
- };
- InputHandler.prototype._pointerOutHandler = function (pointer) {
- this._pointerData[pointer.id].isOver = false;
- this._pointerData[pointer.id].isOut = true;
- this._pointerData[pointer.id].timeOut = this.game.time.now;
- if(this.useHandCursor && this._pointerData[pointer.id].isDragged == false) {
- this.game.stage.canvas.style.cursor = "default";
- }
- this._parent.events.onInputOut.dispatch(this._parent, pointer);
- };
- InputHandler.prototype._touchedHandler = function (pointer) {
- if(this._pointerData[pointer.id].isDown == false && this._pointerData[pointer.id].isOver == true) {
- this._pointerData[pointer.id].isDown = true;
- this._pointerData[pointer.id].isUp = false;
- this._pointerData[pointer.id].timeDown = this.game.time.now;
- this._parent.events.onInputDown.dispatch(this._parent, pointer);
- if(this.draggable && this.isDragged == false) {
- this.startDrag(pointer);
- }
- if(this.bringToTop) {
- this._parent.bringToTop();
- }
- }
- return this.consumePointerEvent;
- };
- InputHandler.prototype._releasedHandler = function (pointer) {
- if(this._pointerData[pointer.id].isDown && pointer.isUp) {
- this._pointerData[pointer.id].isDown = false;
- this._pointerData[pointer.id].isUp = true;
- this._pointerData[pointer.id].timeUp = this.game.time.now;
- this._pointerData[pointer.id].downDuration = this._pointerData[pointer.id].timeUp - this._pointerData[pointer.id].timeDown;
- if(Phaser.SpriteUtils.overlapsPointer(this._parent, pointer)) {
- this._parent.events.onInputUp.dispatch(this._parent, pointer);
- } else {
- if(this.useHandCursor) {
- this.game.stage.canvas.style.cursor = "default";
- }
- }
- if(this.draggable && this.isDragged && this._draggedPointerID == pointer.id) {
- this.stopDrag(pointer);
- }
- }
- };
- InputHandler.prototype.updateDrag = function (pointer) {
- if(pointer.isUp) {
- this.stopDrag(pointer);
- return false;
- }
- if(this.allowHorizontalDrag) {
- this._parent.x = pointer.x + this._dragPoint.x + this.dragOffset.x;
- }
- if(this.allowVerticalDrag) {
- this._parent.y = pointer.y + this._dragPoint.y + this.dragOffset.y;
- }
- if(this.boundsRect) {
- this.checkBoundsRect();
- }
- if(this.boundsSprite) {
- this.checkBoundsSprite();
- }
- if(this.snapOnDrag) {
- this._parent.x = Math.floor(this._parent.x / this.snapX) * this.snapX;
- this._parent.y = Math.floor(this._parent.y / this.snapY) * this.snapY;
- }
- return true;
- };
- InputHandler.prototype.justOver = function (pointer, delay) {
- if (typeof pointer === "undefined") { pointer = 0; }
- if (typeof delay === "undefined") { delay = 500; }
- return (this._pointerData[pointer].isOver && this.overDuration(pointer) < delay);
- };
- InputHandler.prototype.justOut = function (pointer, delay) {
- if (typeof pointer === "undefined") { pointer = 0; }
- if (typeof delay === "undefined") { delay = 500; }
- return (this._pointerData[pointer].isOut && (this.game.time.now - this._pointerData[pointer].timeOut < delay));
- };
- InputHandler.prototype.justPressed = function (pointer, delay) {
- if (typeof pointer === "undefined") { pointer = 0; }
- if (typeof delay === "undefined") { delay = 500; }
- return (this._pointerData[pointer].isDown && this.downDuration(pointer) < delay);
- };
- InputHandler.prototype.justReleased = function (pointer, delay) {
- if (typeof pointer === "undefined") { pointer = 0; }
- if (typeof delay === "undefined") { delay = 500; }
- return (this._pointerData[pointer].isUp && (this.game.time.now - this._pointerData[pointer].timeUp < delay));
- };
- InputHandler.prototype.overDuration = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- if(this._pointerData[pointer].isOver) {
- return this.game.time.now - this._pointerData[pointer].timeOver;
- }
- return -1;
- };
- InputHandler.prototype.downDuration = function (pointer) {
- if (typeof pointer === "undefined") { pointer = 0; }
- if(this._pointerData[pointer].isDown) {
- return this.game.time.now - this._pointerData[pointer].timeDown;
- }
- return -1;
- };
- InputHandler.prototype.enableDrag = function (lockCenter, bringToTop, pixelPerfect, alphaThreshold, boundsRect, boundsSprite) {
- if (typeof lockCenter === "undefined") { lockCenter = false; }
- if (typeof bringToTop === "undefined") { bringToTop = false; }
- if (typeof pixelPerfect === "undefined") { pixelPerfect = false; }
- if (typeof alphaThreshold === "undefined") { alphaThreshold = 255; }
- if (typeof boundsRect === "undefined") { boundsRect = null; }
- if (typeof boundsSprite === "undefined") { boundsSprite = null; }
- this._dragPoint = new Phaser.Point();
- this.draggable = true;
- this.bringToTop = bringToTop;
- this.dragOffset = new Phaser.Point();
- this.dragFromCenter = lockCenter;
- this.dragPixelPerfect = pixelPerfect;
- this.dragPixelPerfectAlpha = alphaThreshold;
- if(boundsRect) {
- this.boundsRect = boundsRect;
- }
- if(boundsSprite) {
- this.boundsSprite = boundsSprite;
- }
- };
- InputHandler.prototype.disableDrag = function () {
- if(this._pointerData) {
- for(var i = 0; i < 10; i++) {
- this._pointerData[i].isDragged = false;
- }
- }
- this.draggable = false;
- this.isDragged = false;
- this._draggedPointerID = -1;
- };
- InputHandler.prototype.startDrag = function (pointer) {
- this.isDragged = true;
- this._draggedPointerID = pointer.id;
- this._pointerData[pointer.id].isDragged = true;
- if(this.dragFromCenter) {
- this._parent.transform.centerOn(pointer.worldX, pointer.worldY);
- this._dragPoint.setTo(this._parent.x - pointer.x, this._parent.y - pointer.y);
- } else {
- this._dragPoint.setTo(this._parent.x - pointer.x, this._parent.y - pointer.y);
- }
- this.updateDrag(pointer);
- if(this.bringToTop) {
- this._parent.bringToTop();
- }
- this._parent.events.onDragStart.dispatch(this._parent, pointer);
- };
- InputHandler.prototype.stopDrag = function (pointer) {
- this.isDragged = false;
- this._draggedPointerID = -1;
- this._pointerData[pointer.id].isDragged = false;
- if(this.snapOnRelease) {
- this._parent.x = Math.floor(this._parent.x / this.snapX) * this.snapX;
- this._parent.y = Math.floor(this._parent.y / this.snapY) * this.snapY;
- }
- this._parent.events.onDragStop.dispatch(this._parent, pointer);
- this._parent.events.onInputUp.dispatch(this._parent, pointer);
- };
- InputHandler.prototype.setDragLock = function (allowHorizontal, allowVertical) {
- if (typeof allowHorizontal === "undefined") { allowHorizontal = true; }
- if (typeof allowVertical === "undefined") { allowVertical = true; }
- this.allowHorizontalDrag = allowHorizontal;
- this.allowVerticalDrag = allowVertical;
- };
- InputHandler.prototype.enableSnap = function (snapX, snapY, onDrag, onRelease) {
- if (typeof onDrag === "undefined") { onDrag = true; }
- if (typeof onRelease === "undefined") { onRelease = false; }
- this.snapOnDrag = onDrag;
- this.snapOnRelease = onRelease;
- this.snapX = snapX;
- this.snapY = snapY;
- };
- InputHandler.prototype.disableSnap = function () {
- this.snapOnDrag = false;
- this.snapOnRelease = false;
- };
- InputHandler.prototype.checkBoundsRect = function () {
- if(this._parent.x < this.boundsRect.left) {
- this._parent.x = this.boundsRect.x;
- } else if((this._parent.x + this._parent.width) > this.boundsRect.right) {
- this._parent.x = this.boundsRect.right - this._parent.width;
- }
- if(this._parent.y < this.boundsRect.top) {
- this._parent.y = this.boundsRect.top;
- } else if((this._parent.y + this._parent.height) > this.boundsRect.bottom) {
- this._parent.y = this.boundsRect.bottom - this._parent.height;
- }
- };
- InputHandler.prototype.checkBoundsSprite = function () {
- if(this._parent.x < this.boundsSprite.x) {
- this._parent.x = this.boundsSprite.x;
- } else if((this._parent.x + this._parent.width) > (this.boundsSprite.x + this.boundsSprite.width)) {
- this._parent.x = (this.boundsSprite.x + this.boundsSprite.width) - this._parent.width;
- }
- if(this._parent.y < this.boundsSprite.y) {
- this._parent.y = this.boundsSprite.y;
- } else if((this._parent.y + this._parent.height) > (this.boundsSprite.y + this.boundsSprite.height)) {
- this._parent.y = (this.boundsSprite.y + this.boundsSprite.height) - this._parent.height;
- }
- };
- return InputHandler;
- })();
- Components.InputHandler = InputHandler;
- })(Phaser.Components || (Phaser.Components = {}));
- var Components = Phaser.Components;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var InputManager = (function () {
- function InputManager(game) {
- this.pollRate = 0;
- this._pollCounter = 0;
- this._oldPosition = null;
- this._x = 0;
- this._y = 0;
- this.disabled = false;
- this.multiInputOverride = InputManager.MOUSE_TOUCH_COMBINE;
- this.position = null;
- this.speed = null;
- this.circle = null;
- this.scale = null;
- this.maxPointers = 10;
- this.currentPointers = 0;
- this.tapRate = 200;
- this.doubleTapRate = 300;
- this.holdRate = 2000;
- this.justPressedRate = 200;
- this.justReleasedRate = 200;
- this.recordPointerHistory = false;
- this.recordRate = 100;
- this.recordLimit = 100;
- this.pointer3 = null;
- this.pointer4 = null;
- this.pointer5 = null;
- this.pointer6 = null;
- this.pointer7 = null;
- this.pointer8 = null;
- this.pointer9 = null;
- this.pointer10 = null;
- this.activePointer = null;
- this.inputObjects = [];
- this.totalTrackedObjects = 0;
- this.game = game;
- this.mousePointer = new Phaser.Pointer(this.game, 0);
- this.pointer1 = new Phaser.Pointer(this.game, 1);
- this.pointer2 = new Phaser.Pointer(this.game, 2);
- this.mouse = new Phaser.Mouse(this.game);
- this.keyboard = new Phaser.Keyboard(this.game);
- this.touch = new Phaser.Touch(this.game);
- this.mspointer = new Phaser.MSPointer(this.game);
- this.onDown = new Phaser.Signal();
- this.onUp = new Phaser.Signal();
- this.onTap = new Phaser.Signal();
- this.onHold = new Phaser.Signal();
- this.scale = new Phaser.Vec2(1, 1);
- this.speed = new Phaser.Vec2();
- this.position = new Phaser.Vec2();
- this._oldPosition = new Phaser.Vec2();
- this.circle = new Phaser.Circle(0, 0, 44);
- this.activePointer = this.mousePointer;
- this.currentPointers = 0;
- this.hitCanvas = document.createElement('canvas');
- this.hitCanvas.width = 1;
- this.hitCanvas.height = 1;
- this.hitContext = this.hitCanvas.getContext('2d');
- }
- InputManager.MOUSE_OVERRIDES_TOUCH = 0;
- InputManager.TOUCH_OVERRIDES_MOUSE = 1;
- InputManager.MOUSE_TOUCH_COMBINE = 2;
- Object.defineProperty(InputManager.prototype, "camera", {
- get: function () {
- return this.activePointer.camera;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(InputManager.prototype, "x", {
- get: function () {
- return this._x;
- },
- set: function (value) {
- this._x = Math.floor(value);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(InputManager.prototype, "y", {
- get: function () {
- return this._y;
- },
- set: function (value) {
- this._y = Math.floor(value);
- },
- enumerable: true,
- configurable: true
- });
- InputManager.prototype.addPointer = function () {
- var next = 0;
- for(var i = 10; i > 0; i--) {
- if(this['pointer' + i] === null) {
- next = i;
- }
- }
- if(next == 0) {
- throw new Error("You can only have 10 Pointer objects");
- return null;
- } else {
- this['pointer' + next] = new Phaser.Pointer(this.game, next);
- return this['pointer' + next];
- }
- };
- InputManager.prototype.boot = function () {
- this.mouse.start();
- this.keyboard.start();
- this.touch.start();
- this.mspointer.start();
- this.mousePointer.active = true;
- };
- InputManager.prototype.addGameObject = function (object) {
- for(var i = 0; i < this.inputObjects.length; i++) {
- if(this.inputObjects[i] == null) {
- this.inputObjects[i] = object;
- object.input.indexID = i;
- this.totalTrackedObjects++;
- return;
- }
- }
- object.input.indexID = this.inputObjects.length;
- this.inputObjects.push(object);
- this.totalTrackedObjects++;
- };
- InputManager.prototype.removeGameObject = function (index) {
- if(this.inputObjects[index]) {
- this.inputObjects[index] = null;
- }
- };
- Object.defineProperty(InputManager.prototype, "pollLocked", {
- get: function () {
- return (this.pollRate > 0 && this._pollCounter < this.pollRate);
- },
- enumerable: true,
- configurable: true
- });
- InputManager.prototype.update = function () {
- if(this.pollRate > 0 && this._pollCounter < this.pollRate) {
- this._pollCounter++;
- return;
- }
- this.speed.x = this.position.x - this._oldPosition.x;
- this.speed.y = this.position.y - this._oldPosition.y;
- this._oldPosition.copyFrom(this.position);
- this.mousePointer.update();
- this.pointer1.update();
- this.pointer2.update();
- if(this.pointer3) {
- this.pointer3.update();
- }
- if(this.pointer4) {
- this.pointer4.update();
- }
- if(this.pointer5) {
- this.pointer5.update();
- }
- if(this.pointer6) {
- this.pointer6.update();
- }
- if(this.pointer7) {
- this.pointer7.update();
- }
- if(this.pointer8) {
- this.pointer8.update();
- }
- if(this.pointer9) {
- this.pointer9.update();
- }
- if(this.pointer10) {
- this.pointer10.update();
- }
- this._pollCounter = 0;
- };
- InputManager.prototype.reset = function (hard) {
- if (typeof hard === "undefined") { hard = false; }
- this.keyboard.reset();
- this.mousePointer.reset();
- for(var i = 1; i <= 10; i++) {
- if(this['pointer' + i]) {
- this['pointer' + i].reset();
- }
- }
- this.currentPointers = 0;
- this.game.stage.canvas.style.cursor = "default";
- if(hard == true) {
- this.onDown.dispose();
- this.onUp.dispose();
- this.onTap.dispose();
- this.onHold.dispose();
- this.onDown = new Phaser.Signal();
- this.onUp = new Phaser.Signal();
- this.onTap = new Phaser.Signal();
- this.onHold = new Phaser.Signal();
- for(var i = 0; i < this.totalTrackedObjects; i++) {
- if(this.inputObjects[i] && this.inputObjects[i].input) {
- this.inputObjects[i].input.reset();
- }
- }
- this.inputObjects.length = 0;
- this.totalTrackedObjects = 0;
- }
- this._pollCounter = 0;
- };
- InputManager.prototype.resetSpeed = function (x, y) {
- this._oldPosition.setTo(x, y);
- this.speed.setTo(0, 0);
- };
- Object.defineProperty(InputManager.prototype, "totalInactivePointers", {
- get: function () {
- return 10 - this.currentPointers;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(InputManager.prototype, "totalActivePointers", {
- get: function () {
- this.currentPointers = 0;
- for(var i = 1; i <= 10; i++) {
- if(this['pointer' + i] && this['pointer' + i].active) {
- this.currentPointers++;
- }
- }
- return this.currentPointers;
- },
- enumerable: true,
- configurable: true
- });
- InputManager.prototype.startPointer = function (event) {
- if(this.maxPointers < 10 && this.totalActivePointers == this.maxPointers) {
- return null;
- }
- if(this.pointer1.active == false) {
- return this.pointer1.start(event);
- } else if(this.pointer2.active == false) {
- return this.pointer2.start(event);
- } else {
- for(var i = 3; i <= 10; i++) {
- if(this['pointer' + i] && this['pointer' + i].active == false) {
- return this['pointer' + i].start(event);
- }
- }
- }
- return null;
- };
- InputManager.prototype.updatePointer = function (event) {
- if(this.pointer1.active && this.pointer1.identifier == event.identifier) {
- return this.pointer1.move(event);
- } else if(this.pointer2.active && this.pointer2.identifier == event.identifier) {
- return this.pointer2.move(event);
- } else {
- for(var i = 3; i <= 10; i++) {
- if(this['pointer' + i] && this['pointer' + i].active && this['pointer' + i].identifier == event.identifier) {
- return this['pointer' + i].move(event);
- }
- }
- }
- return null;
- };
- InputManager.prototype.stopPointer = function (event) {
- if(this.pointer1.active && this.pointer1.identifier == event.identifier) {
- return this.pointer1.stop(event);
- } else if(this.pointer2.active && this.pointer2.identifier == event.identifier) {
- return this.pointer2.stop(event);
- } else {
- for(var i = 3; i <= 10; i++) {
- if(this['pointer' + i] && this['pointer' + i].active && this['pointer' + i].identifier == event.identifier) {
- return this['pointer' + i].stop(event);
- }
- }
- }
- return null;
- };
- InputManager.prototype.getPointer = function (state) {
- if (typeof state === "undefined") { state = false; }
- if(this.pointer1.active == state) {
- return this.pointer1;
- } else if(this.pointer2.active == state) {
- return this.pointer2;
- } else {
- for(var i = 3; i <= 10; i++) {
- if(this['pointer' + i] && this['pointer' + i].active == state) {
- return this['pointer' + i];
- }
- }
- }
- return null;
- };
- InputManager.prototype.getPointerFromIdentifier = function (identifier) {
- if(this.pointer1.identifier == identifier) {
- return this.pointer1;
- } else if(this.pointer2.identifier == identifier) {
- return this.pointer2;
- } else {
- for(var i = 3; i <= 10; i++) {
- if(this['pointer' + i] && this['pointer' + i].identifier == identifier) {
- return this['pointer' + i];
- }
- }
- }
- return null;
- };
- Object.defineProperty(InputManager.prototype, "worldX", {
- get: function () {
- if(this.camera) {
- return (this.camera.worldView.x - this.camera.screenView.x) + this.x;
- }
- return null;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(InputManager.prototype, "worldY", {
- get: function () {
- if(this.camera) {
- return (this.camera.worldView.y - this.camera.screenView.y) + this.y;
- }
- return null;
- },
- enumerable: true,
- configurable: true
- });
- InputManager.prototype.getDistance = function (pointer1, pointer2) {
- return Phaser.Vec2Utils.distance(pointer1.position, pointer2.position);
- };
- InputManager.prototype.getAngle = function (pointer1, pointer2) {
- return Phaser.Vec2Utils.angle(pointer1.position, pointer2.position);
- };
- InputManager.prototype.pixelPerfectCheck = function (sprite, pointer, alpha) {
- if (typeof alpha === "undefined") { alpha = 255; }
- this.hitContext.clearRect(0, 0, 1, 1);
- return true;
- };
- return InputManager;
- })();
- Phaser.InputManager = InputManager;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Device = (function () {
- function Device() {
- this.patchAndroidClearRectBug = false;
- this.desktop = false;
- this.iOS = false;
- this.android = false;
- this.chromeOS = false;
- this.linux = false;
- this.macOS = false;
- this.windows = false;
- this.canvas = false;
- this.file = false;
- this.fileSystem = false;
- this.localStorage = false;
- this.webGL = false;
- this.worker = false;
- this.touch = false;
- this.mspointer = false;
- this.css3D = false;
- this.arora = false;
- this.chrome = false;
- this.epiphany = false;
- this.firefox = false;
- this.ie = false;
- this.ieVersion = 0;
- this.mobileSafari = false;
- this.midori = false;
- this.opera = false;
- this.safari = false;
- this.webApp = false;
- this.audioData = false;
- this.webAudio = false;
- this.ogg = false;
- this.opus = false;
- this.mp3 = false;
- this.wav = false;
- this.m4a = false;
- this.webm = false;
- this.iPhone = false;
- this.iPhone4 = false;
- this.iPad = false;
- this.pixelRatio = 0;
- this._checkAudio();
- this._checkBrowser();
- this._checkCSS3D();
- this._checkDevice();
- this._checkFeatures();
- this._checkOS();
- }
- Device.prototype._checkOS = function () {
- var ua = navigator.userAgent;
- if(/Android/.test(ua)) {
- this.android = true;
- } else if(/CrOS/.test(ua)) {
- this.chromeOS = true;
- } else if(/iP[ao]d|iPhone/i.test(ua)) {
- this.iOS = true;
- } else if(/Linux/.test(ua)) {
- this.linux = true;
- } else if(/Mac OS/.test(ua)) {
- this.macOS = true;
- } else if(/Windows/.test(ua)) {
- this.windows = true;
- }
- if(this.windows || this.macOS || this.linux) {
- this.desktop = true;
- }
- };
- Device.prototype._checkFeatures = function () {
- this.canvas = !!window['CanvasRenderingContext2D'];
- try {
- this.localStorage = !!localStorage.getItem;
- } catch (error) {
- this.localStorage = false;
- }
- this.file = !!window['File'] && !!window['FileReader'] && !!window['FileList'] && !!window['Blob'];
- this.fileSystem = !!window['requestFileSystem'];
- this.webGL = !!window['WebGLRenderingContext'];
- this.worker = !!window['Worker'];
- if('ontouchstart' in document.documentElement || window.navigator.msPointerEnabled) {
- this.touch = true;
- }
- if(window.navigator.msPointerEnabled) {
- this.mspointer = true;
- }
- };
- Device.prototype._checkBrowser = function () {
- var ua = navigator.userAgent;
- if(/Arora/.test(ua)) {
- this.arora = true;
- } else if(/Chrome/.test(ua)) {
- this.chrome = true;
- } else if(/Epiphany/.test(ua)) {
- this.epiphany = true;
- } else if(/Firefox/.test(ua)) {
- this.firefox = true;
- } else if(/Mobile Safari/.test(ua)) {
- this.mobileSafari = true;
- } else if(/MSIE (\d+\.\d+);/.test(ua)) {
- this.ie = true;
- this.ieVersion = parseInt(RegExp.$1);
- } else if(/Midori/.test(ua)) {
- this.midori = true;
- } else if(/Opera/.test(ua)) {
- this.opera = true;
- } else if(/Safari/.test(ua)) {
- this.safari = true;
- }
- if(navigator['standalone']) {
- this.webApp = true;
- }
- };
- Device.prototype.canPlayAudio = function (type) {
- if(type == 'mp3' && this.mp3) {
- return true;
- } else if(type == 'ogg' && (this.ogg || this.opus)) {
- return true;
- } else if(type == 'm4a' && this.m4a) {
- return true;
- } else if(type == 'wav' && this.wav) {
- return true;
- } else if(type == 'webm' && this.webm) {
- return true;
- }
- return false;
- };
- Device.prototype._checkAudio = function () {
- this.audioData = !!(window['Audio']);
- this.webAudio = !!(window['webkitAudioContext'] || window['AudioContext']);
- var audioElement = document.createElement('audio');
- var result = false;
- try {
- if(result = !!audioElement.canPlayType) {
- if(audioElement.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, '')) {
- this.ogg = true;
- }
- if(audioElement.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, '')) {
- this.opus = true;
- }
- if(audioElement.canPlayType('audio/mpeg;').replace(/^no$/, '')) {
- this.mp3 = true;
- }
- if(audioElement.canPlayType('audio/wav; codecs="1"').replace(/^no$/, '')) {
- this.wav = true;
- }
- if(audioElement.canPlayType('audio/x-m4a;') || audioElement.canPlayType('audio/aac;').replace(/^no$/, '')) {
- this.m4a = true;
- }
- if(audioElement.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, '')) {
- this.webm = true;
- }
- }
- } catch (e) {
- }
- };
- Device.prototype._checkDevice = function () {
- this.pixelRatio = window['devicePixelRatio'] || 1;
- this.iPhone = navigator.userAgent.toLowerCase().indexOf('iphone') != -1;
- this.iPhone4 = (this.pixelRatio == 2 && this.iPhone);
- this.iPad = navigator.userAgent.toLowerCase().indexOf('ipad') != -1;
- };
- Device.prototype._checkCSS3D = function () {
- var el = document.createElement('p');
- var has3d;
- var transforms = {
- 'webkitTransform': '-webkit-transform',
- 'OTransform': '-o-transform',
- 'msTransform': '-ms-transform',
- 'MozTransform': '-moz-transform',
- 'transform': 'transform'
- };
- document.body.insertBefore(el, null);
- for(var t in transforms) {
- if(el.style[t] !== undefined) {
- el.style[t] = "translate3d(1px,1px,1px)";
- has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
- }
- }
- document.body.removeChild(el);
- this.css3D = (has3d !== undefined && has3d.length > 0 && has3d !== "none");
- };
- Device.prototype.isConsoleOpen = function () {
- if(window.console && window.console['firebug']) {
- return true;
- }
- if(window.console) {
- console.profile();
- console.profileEnd();
- if(console.clear) {
- console.clear();
- }
- return console['profiles'].length > 0;
- }
- return false;
- };
- return Device;
- })();
- Phaser.Device = Device;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var RequestAnimationFrame = (function () {
- function RequestAnimationFrame(game, callback) {
- this._isSetTimeOut = false;
- this.isRunning = false;
- this.game = game;
- this.callback = callback;
- var vendors = [
- 'ms',
- 'moz',
- 'webkit',
- 'o'
- ];
- for(var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {
- window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
- window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'];
- }
- this.start();
- }
- RequestAnimationFrame.prototype.isUsingSetTimeOut = function () {
- return this._isSetTimeOut;
- };
- RequestAnimationFrame.prototype.isUsingRAF = function () {
- return this._isSetTimeOut === true;
- };
- RequestAnimationFrame.prototype.start = function (callback) {
- if (typeof callback === "undefined") { callback = null; }
- var _this = this;
- if(callback) {
- this.callback = callback;
- }
- if(!window.requestAnimationFrame) {
- this._isSetTimeOut = true;
- this._onLoop = function () {
- return _this.SetTimeoutUpdate();
- };
- this._timeOutID = window.setTimeout(this._onLoop, 0);
- } else {
- this._isSetTimeOut = false;
- this._onLoop = function () {
- return _this.RAFUpdate(0);
- };
- window.requestAnimationFrame(this._onLoop);
- }
- this.isRunning = true;
- };
- RequestAnimationFrame.prototype.stop = function () {
- if(this._isSetTimeOut) {
- clearTimeout(this._timeOutID);
- } else {
- window.cancelAnimationFrame;
- }
- this.isRunning = false;
- };
- RequestAnimationFrame.prototype.RAFUpdate = function (time) {
- var _this = this;
- this.game.time.update(time);
- if(this.callback) {
- this.callback.call(this.game);
- }
- this._onLoop = function (time) {
- return _this.RAFUpdate(time);
- };
- window.requestAnimationFrame(this._onLoop);
- };
- RequestAnimationFrame.prototype.SetTimeoutUpdate = function () {
- var _this = this;
- this.game.time.update(Date.now());
- this._onLoop = function () {
- return _this.SetTimeoutUpdate();
- };
- this._timeOutID = window.setTimeout(this._onLoop, 16);
- if(this.callback) {
- this.callback.call(this.game);
- }
- };
- return RequestAnimationFrame;
- })();
- Phaser.RequestAnimationFrame = RequestAnimationFrame;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var StageScaleMode = (function () {
- function StageScaleMode(game, width, height) {
- var _this = this;
- this._startHeight = 0;
- this.forceLandscape = false;
- this.forcePortrait = false;
- this.incorrectOrientation = false;
- this.pageAlignHorizontally = false;
- this.pageAlignVeritcally = false;
- this.minWidth = null;
- this.maxWidth = null;
- this.minHeight = null;
- this.maxHeight = null;
- this.width = 0;
- this.height = 0;
- this.maxIterations = 5;
- this.game = game;
- this.enterLandscape = new Phaser.Signal();
- this.enterPortrait = new Phaser.Signal();
- if(window['orientation']) {
- this.orientation = window['orientation'];
- } else {
- if(window.outerWidth > window.outerHeight) {
- this.orientation = 90;
- } else {
- this.orientation = 0;
- }
- }
- this.scaleFactor = new Phaser.Vec2(1, 1);
- this.aspectRatio = 0;
- this.minWidth = width;
- this.minHeight = height;
- this.maxWidth = width;
- this.maxHeight = height;
- window.addEventListener('orientationchange', function (event) {
- return _this.checkOrientation(event);
- }, false);
- window.addEventListener('resize', function (event) {
- return _this.checkResize(event);
- }, false);
- }
- StageScaleMode.EXACT_FIT = 0;
- StageScaleMode.NO_SCALE = 1;
- StageScaleMode.SHOW_ALL = 2;
- Object.defineProperty(StageScaleMode.prototype, "isFullScreen", {
- get: function () {
- if(document['fullscreenElement'] === null || document['mozFullScreenElement'] === null || document['webkitFullscreenElement'] === null) {
- return false;
- }
- return true;
- },
- enumerable: true,
- configurable: true
- });
- StageScaleMode.prototype.startFullScreen = function () {
- if(this.isFullScreen) {
- return;
- }
- var element = this.game.stage.canvas;
- if(element['requestFullScreen']) {
- element['requestFullScreen']();
- } else if(element['mozRequestFullScreen']) {
- element['mozRequestFullScreen']();
- } else if(element['webkitRequestFullScreen']) {
- element['webkitRequestFullScreen']();
- }
- };
- StageScaleMode.prototype.stopFullScreen = function () {
- if(document['cancelFullScreen']) {
- document['cancelFullScreen']();
- } else if(document['mozCancelFullScreen']) {
- document['mozCancelFullScreen']();
- } else if(document['webkitCancelFullScreen']) {
- document['webkitCancelFullScreen']();
- }
- };
- StageScaleMode.prototype.update = function () {
- if(this.forceLandscape || this.forcePortrait) {
- this.checkOrientationState();
- }
- };
- StageScaleMode.prototype.checkOrientationState = function () {
- if(this.incorrectOrientation) {
- if((this.forceLandscape && window.innerWidth > window.innerHeight) || (this.forcePortrait && window.innerHeight > window.innerWidth)) {
- this.game.paused = false;
- this.incorrectOrientation = false;
- this.refresh();
- }
- } else {
- if((this.forceLandscape && window.innerWidth < window.innerHeight) || (this.forcePortrait && window.innerHeight < window.innerWidth)) {
- this.game.paused = true;
- this.incorrectOrientation = true;
- this.refresh();
- }
- }
- };
- Object.defineProperty(StageScaleMode.prototype, "isPortrait", {
- get: function () {
- return this.orientation == 0 || this.orientation == 180;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(StageScaleMode.prototype, "isLandscape", {
- get: function () {
- return this.orientation === 90 || this.orientation === -90;
- },
- enumerable: true,
- configurable: true
- });
- StageScaleMode.prototype.checkOrientation = function (event) {
- this.orientation = window['orientation'];
- if(this.isLandscape) {
- this.enterLandscape.dispatch(this.orientation, true, false);
- } else {
- this.enterPortrait.dispatch(this.orientation, false, true);
- }
- if(this.game.stage.scaleMode !== StageScaleMode.NO_SCALE) {
- this.refresh();
- }
- };
- StageScaleMode.prototype.checkResize = function (event) {
- if(window.outerWidth > window.outerHeight) {
- this.orientation = 90;
- } else {
- this.orientation = 0;
- }
- if(this.isLandscape) {
- this.enterLandscape.dispatch(this.orientation, true, false);
- } else {
- this.enterPortrait.dispatch(this.orientation, false, true);
- }
- if(this.game.stage.scaleMode !== StageScaleMode.NO_SCALE) {
- this.refresh();
- }
- };
- StageScaleMode.prototype.refresh = function () {
- var _this = this;
- if(this.game.device.iPad == false && this.game.device.webApp == false && this.game.device.desktop == false) {
- document.documentElement['style'].minHeight = '2000px';
- this._startHeight = window.innerHeight;
- if(this.game.device.android && this.game.device.chrome == false) {
- window.scrollTo(0, 1);
- } else {
- window.scrollTo(0, 0);
- }
- }
- if(this._check == null && this.maxIterations > 0) {
- this._iterations = this.maxIterations;
- this._check = window.setInterval(function () {
- return _this.setScreenSize();
- }, 10);
- this.setScreenSize();
- }
- };
- StageScaleMode.prototype.setScreenSize = function (force) {
- if (typeof force === "undefined") { force = false; }
- if(this.game.device.iPad == false && this.game.device.webApp == false && this.game.device.desktop == false) {
- if(this.game.device.android && this.game.device.chrome == false) {
- window.scrollTo(0, 1);
- } else {
- window.scrollTo(0, 0);
- }
- }
- this._iterations--;
- if(force || window.innerHeight > this._startHeight || this._iterations < 0) {
- document.documentElement['style'].minHeight = window.innerHeight + 'px';
- if(this.incorrectOrientation == true) {
- this.setMaximum();
- } else if(this.game.stage.scaleMode == StageScaleMode.EXACT_FIT) {
- this.setExactFit();
- } else if(this.game.stage.scaleMode == StageScaleMode.SHOW_ALL) {
- this.setShowAll();
- }
- this.setSize();
- clearInterval(this._check);
- this._check = null;
- }
- };
- StageScaleMode.prototype.setSize = function () {
- if(this.incorrectOrientation == false) {
- if(this.maxWidth && this.width > this.maxWidth) {
- this.width = this.maxWidth;
- }
- if(this.maxHeight && this.height > this.maxHeight) {
- this.height = this.maxHeight;
- }
- if(this.minWidth && this.width < this.minWidth) {
- this.width = this.minWidth;
- }
- if(this.minHeight && this.height < this.minHeight) {
- this.height = this.minHeight;
- }
- }
- this.game.stage.canvas.style.width = this.width + 'px';
- this.game.stage.canvas.style.height = this.height + 'px';
- this.game.input.scale.setTo(this.game.stage.width / this.width, this.game.stage.height / this.height);
- if(this.pageAlignHorizontally) {
- if(this.width < window.innerWidth && this.incorrectOrientation == false) {
- this.game.stage.canvas.style.marginLeft = Math.round((window.innerWidth - this.width) / 2) + 'px';
- } else {
- this.game.stage.canvas.style.marginLeft = '0px';
- }
- }
- if(this.pageAlignVeritcally) {
- if(this.height < window.innerHeight && this.incorrectOrientation == false) {
- this.game.stage.canvas.style.marginTop = Math.round((window.innerHeight - this.height) / 2) + 'px';
- } else {
- this.game.stage.canvas.style.marginTop = '0px';
- }
- }
- this.game.stage.getOffset(this.game.stage.canvas);
- this.aspectRatio = this.width / this.height;
- this.scaleFactor.x = this.game.stage.width / this.width;
- this.scaleFactor.y = this.game.stage.height / this.height;
- };
- StageScaleMode.prototype.setMaximum = function () {
- this.width = window.innerWidth;
- this.height = window.innerHeight;
- };
- StageScaleMode.prototype.setShowAll = function () {
- var multiplier = Math.min((window.innerHeight / this.game.stage.height), (window.innerWidth / this.game.stage.width));
- this.width = Math.round(this.game.stage.width * multiplier);
- this.height = Math.round(this.game.stage.height * multiplier);
- };
- StageScaleMode.prototype.setExactFit = function () {
- if(this.maxWidth && window.innerWidth > this.maxWidth) {
- this.width = this.maxWidth;
- } else {
- this.width = window.innerWidth;
- }
- if(this.maxHeight && window.innerHeight > this.maxHeight) {
- this.height = this.maxHeight;
- } else {
- this.height = window.innerHeight;
- }
- };
- return StageScaleMode;
- })();
- Phaser.StageScaleMode = StageScaleMode;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var BootScreen = (function () {
- function BootScreen(game) {
- this._logoData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAAZCAYAAADdYmvFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAstJREFUeNrsWlFuwjAMbavdZGcAcRm4AXzvCPuGG8BlEJxhZ+l4TJ48z3actGGthqUI1MaO/V6cmIT2/fW10eTt46NvKshtvDZlG31yfOL9a/ldU6x4IZ0GQs0gS217enMkJYr5ixXkYrFoVqtV1kDn8/n+KfXw/Hq9Nin7h8MhScB2u3Xtav2ivsNWrh7XLcWMYqA4eUZ1kj0MAifHJEeKFojWzyIH+rL/0Cwif2AX9nN1oQOgrTg8XcTFx+ScdEOJ4WBxXQ1EjRyrn0cOzzQLzFyQSQcgw/5Qkkr0JVEQpNIdhL4vm4DL5fLulNTHcy6Uxl4/6iMLiePx2KzX6/v30+n0aynUlrnSeNq2/VN9bgM4dFPdNPmsJnIg/PuQbJmLdFN3UNu0SzbyJ0GOWJVWZE/QMkY+owrqXxGEdZA37BVyX6lJTipT6J1lf7fbqc+xh8nYeIvikatP+PGW0nEJ4jOydHYOIcfKnmgWoZDQSIIeio4Sf1IthYWskCO4vqQ6lFYjl8tl9L1H67PZbMz3VO3t93uVXHofmUjReLyMwHi5eCb3ICwJj5ZU9nCg+SzUgPYyif+2epTk4pkkyDp+eXTlZu2BkUybEkklePZfK9lPuTnc07vbmt1bYulHBeNQgx18SsH4ni/cV2rSLtqNDNUH2JQ2SsXS57Y9PHlfumkwCdICt5rnkNdPjpMiIEWgRlAJSdF4SvCQMWj+VyfI0h8D/EgWSYKiJKXi8VrOhJUxaFiFCOKKUJAtR78k9eX4USLHXqLGXOIiWUT4Vj9JiP4W0io3VDz8AJXblNWQrOimLjIGy/9uLICH6mrVmFbxEFHauzmc0fGJJmPg/v+6D0oB7N2bj0FsNHtSWTQniWTR931QlHXvasDTHXLjqY0/1/8hSDxACD+lAGH8dKQbQk5N3TFtzDmLWutvV0+pL5FVoHvCNG35FGAAayS4KUoKC9QAAAAASUVORK5CYII=";
- this._color1 = {
- r: 20,
- g: 20,
- b: 20
- };
- this._color2 = {
- r: 200,
- g: 200,
- b: 200
- };
- this._fade = null;
- this.game = game;
- this._logo = new Image();
- this._logo.src = this._logoData;
- }
- BootScreen.prototype.update = function () {
- if(this._fade == null) {
- this.colorCycle();
- }
- this._color1.r = Math.round(this._color1.r);
- this._color1.g = Math.round(this._color1.g);
- this._color1.b = Math.round(this._color1.b);
- this._color2.r = Math.round(this._color2.r);
- this._color2.g = Math.round(this._color2.g);
- this._color2.b = Math.round(this._color2.b);
- };
- BootScreen.prototype.render = function () {
- var grd = this.game.stage.context.createLinearGradient(0, 0, 0, this.game.stage.height);
- grd.addColorStop(0, 'rgb(' + this._color1.r + ', ' + this._color1.g + ', ' + this._color1.b + ')');
- grd.addColorStop(0.5, 'rgb(' + this._color2.r + ', ' + this._color2.g + ', ' + this._color2.b + ')');
- grd.addColorStop(1, 'rgb(' + this._color1.r + ', ' + this._color1.g + ', ' + this._color1.b + ')');
- this.game.stage.context.fillStyle = grd;
- this.game.stage.context.fillRect(0, 0, this.game.stage.width, this.game.stage.height);
- this.game.stage.context.shadowOffsetX = 0;
- this.game.stage.context.shadowOffsetY = 0;
- if(this._logo) {
- this.game.stage.context.drawImage(this._logo, 32, 32);
- }
- this.game.stage.context.shadowColor = 'rgb(0,0,0)';
- this.game.stage.context.shadowOffsetX = 1;
- this.game.stage.context.shadowOffsetY = 1;
- this.game.stage.context.shadowBlur = 0;
- this.game.stage.context.fillStyle = 'rgb(255,255,255)';
- this.game.stage.context.font = 'bold 18px Arial';
- this.game.stage.context.textBaseline = 'top';
- this.game.stage.context.fillText(Phaser.VERSION, 32, 64 + 32);
- this.game.stage.context.fillText('Game Size: ' + this.game.stage.width + ' x ' + this.game.stage.height, 32, 64 + 64);
- this.game.stage.context.fillText('www.photonstorm.com', 32, 64 + 96);
- this.game.stage.context.font = '16px Arial';
- this.game.stage.context.fillText('You are seeing this screen because you didn\'t specify any default', 32, 64 + 160);
- this.game.stage.context.fillText('functions in the Game constructor or use Game.switchState()', 32, 64 + 184);
- };
- BootScreen.prototype.colorCycle = function () {
- this._fade = this.game.add.tween(this._color2);
- this._fade.to({
- r: Math.random() * 250,
- g: Math.random() * 250,
- b: Math.random() * 250
- }, 3000, Phaser.Easing.Linear.None);
- this._fade.onComplete.add(this.colorCycle, this);
- this._fade.start();
- };
- return BootScreen;
- })();
- Phaser.BootScreen = BootScreen;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var OrientationScreen = (function () {
- function OrientationScreen(game) {
- this._enabled = false;
- this.game = game;
- }
- OrientationScreen.prototype.enable = function (imageKey) {
- this._enabled = true;
- this.image = this.game.cache.getImage(imageKey);
- };
- OrientationScreen.prototype.update = function () {
- };
- OrientationScreen.prototype.render = function () {
- if(this._enabled) {
- this.game.stage.context.drawImage(this.image, 0, 0, this.image.width, this.image.height, 0, 0, this.game.stage.width, this.game.stage.height);
- }
- };
- return OrientationScreen;
- })();
- Phaser.OrientationScreen = OrientationScreen;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var PauseScreen = (function () {
- function PauseScreen(game, width, height) {
- this.game = game;
- this._canvas = document.createElement('canvas');
- this._canvas.width = width;
- this._canvas.height = height;
- this._context = this._canvas.getContext('2d');
- }
- PauseScreen.prototype.onPaused = function () {
- this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);
- this._context.drawImage(this.game.stage.canvas, 0, 0);
- this._color = {
- r: 255,
- g: 255,
- b: 255
- };
- this.fadeOut();
- };
- PauseScreen.prototype.onResume = function () {
- this._fade.stop();
- this.game.tweens.remove(this._fade);
- };
- PauseScreen.prototype.update = function () {
- this._color.r = Math.round(this._color.r);
- this._color.g = Math.round(this._color.g);
- this._color.b = Math.round(this._color.b);
- };
- PauseScreen.prototype.render = function () {
- this.game.stage.context.drawImage(this._canvas, 0, 0);
- this.game.stage.context.fillStyle = 'rgba(0, 0, 0, 0.4)';
- this.game.stage.context.fillRect(0, 0, this.game.stage.width, this.game.stage.height);
- var arrowWidth = Math.round(this.game.stage.width / 2);
- var arrowHeight = Math.round(this.game.stage.height / 2);
- var sx = this.game.stage.centerX - arrowWidth / 2;
- var sy = this.game.stage.centerY - arrowHeight / 2;
- this.game.stage.context.beginPath();
- this.game.stage.context.moveTo(sx, sy);
- this.game.stage.context.lineTo(sx, sy + arrowHeight);
- this.game.stage.context.lineTo(sx + arrowWidth, this.game.stage.centerY);
- this.game.stage.context.fillStyle = 'rgba(' + this._color.r + ', ' + this._color.g + ', ' + this._color.b + ', 0.8)';
- this.game.stage.context.fill();
- this.game.stage.context.closePath();
- };
- PauseScreen.prototype.fadeOut = function () {
- this._fade = this.game.add.tween(this._color);
- this._fade.to({
- r: 50,
- g: 50,
- b: 50
- }, 1000, Phaser.Easing.Linear.None);
- this._fade.onComplete.add(this.fadeIn, this);
- this._fade.start();
- };
- PauseScreen.prototype.fadeIn = function () {
- this._fade = this.game.add.tween(this._color);
- this._fade.to({
- r: 255,
- g: 255,
- b: 255
- }, 1000, Phaser.Easing.Linear.None);
- this._fade.onComplete.add(this.fadeOut, this);
- this._fade.start();
- };
- return PauseScreen;
- })();
- Phaser.PauseScreen = PauseScreen;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var SoundManager = (function () {
- function SoundManager(game) {
- this.usingWebAudio = false;
- this.usingAudioTag = false;
- this.noAudio = false;
- this.context = null;
- this._muted = false;
- this.touchLocked = false;
- this._unlockSource = null;
- this.onSoundDecode = new Phaser.Signal();
- this.game = game;
- this._volume = 1;
- this._muted = false;
- this._sounds = [];
- if(this.game.device.iOS && this.game.device.webAudio == false) {
- this.channels = 1;
- }
- if(this.game.device.iOS || (window['PhaserGlobal'] && window['PhaserGlobal'].fakeiOSTouchLock)) {
- this.game.input.touch.callbackContext = this;
- this.game.input.touch.touchStartCallback = this.unlock;
- this.game.input.mouse.callbackContext = this;
- this.game.input.mouse.mouseDownCallback = this.unlock;
- this.touchLocked = true;
- } else {
- this.touchLocked = false;
- }
- if(window['PhaserGlobal']) {
- if(window['PhaserGlobal'].disableAudio == true) {
- this.usingWebAudio = false;
- this.noAudio = true;
- return;
- }
- if(window['PhaserGlobal'].disableWebAudio == true) {
- this.usingWebAudio = false;
- this.usingAudioTag = true;
- this.noAudio = false;
- return;
- }
- }
- this.usingWebAudio = true;
- this.noAudio = false;
- if(!!window['AudioContext']) {
- this.context = new window['AudioContext']();
- } else if(!!window['webkitAudioContext']) {
- this.context = new window['webkitAudioContext']();
- } else if(!!window['Audio']) {
- this.usingWebAudio = false;
- this.usingAudioTag = true;
- } else {
- this.usingWebAudio = false;
- this.noAudio = true;
- }
- if(this.context !== null) {
- if(typeof this.context.createGain === 'undefined') {
- this.masterGain = this.context.createGainNode();
- } else {
- this.masterGain = this.context.createGain();
- }
- this.masterGain.gain.value = 1;
- this.masterGain.connect(this.context.destination);
- }
- }
- SoundManager.prototype.unlock = function () {
- if(this.touchLocked == false) {
- return;
- }
- if(this.game.device.webAudio && (window['PhaserGlobal'] && window['PhaserGlobal'].disableWebAudio == false)) {
- var buffer = this.context.createBuffer(1, 1, 22050);
- this._unlockSource = this.context.createBufferSource();
- this._unlockSource.buffer = buffer;
- this._unlockSource.connect(this.context.destination);
- this._unlockSource.noteOn(0);
- } else {
- this.touchLocked = false;
- this._unlockSource = null;
- this.game.input.touch.callbackContext = null;
- this.game.input.touch.touchStartCallback = null;
- this.game.input.mouse.callbackContext = null;
- this.game.input.mouse.mouseDownCallback = null;
- }
- };
- Object.defineProperty(SoundManager.prototype, "mute", {
- get: function () {
- return this._muted;
- },
- set: function (value) {
- if(value) {
- if(this._muted) {
- return;
- }
- this._muted = true;
- if(this.usingWebAudio) {
- this._muteVolume = this.masterGain.gain.value;
- this.masterGain.gain.value = 0;
- }
- for(var i = 0; i < this._sounds.length; i++) {
- if(this._sounds[i].usingAudioTag) {
- this._sounds[i].mute = true;
- }
- }
- } else {
- if(this._muted == false) {
- return;
- }
- this._muted = false;
- if(this.usingWebAudio) {
- this.masterGain.gain.value = this._muteVolume;
- }
- for(var i = 0; i < this._sounds.length; i++) {
- if(this._sounds[i].usingAudioTag) {
- this._sounds[i].mute = false;
- }
- }
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(SoundManager.prototype, "volume", {
- get: function () {
- if(this.usingWebAudio) {
- return this.masterGain.gain.value;
- } else {
- return this._volume;
- }
- },
- set: function (value) {
- value = this.game.math.clamp(value, 1, 0);
- this._volume = value;
- if(this.usingWebAudio) {
- this.masterGain.gain.value = value;
- }
- for(var i = 0; i < this._sounds.length; i++) {
- if(this._sounds[i].usingAudioTag) {
- this._sounds[i].volume = this._sounds[i].volume * value;
- }
- }
- },
- enumerable: true,
- configurable: true
- });
- SoundManager.prototype.stopAll = function () {
- for(var i = 0; i < this._sounds.length; i++) {
- if(this._sounds[i]) {
- this._sounds[i].stop();
- }
- }
- };
- SoundManager.prototype.pauseAll = function () {
- for(var i = 0; i < this._sounds.length; i++) {
- if(this._sounds[i]) {
- this._sounds[i].pause();
- }
- }
- };
- SoundManager.prototype.resumeAll = function () {
- for(var i = 0; i < this._sounds.length; i++) {
- if(this._sounds[i]) {
- this._sounds[i].resume();
- }
- }
- };
- SoundManager.prototype.decode = function (key, sound) {
- if (typeof sound === "undefined") { sound = null; }
- var soundData = this.game.cache.getSoundData(key);
- if(soundData) {
- if(this.game.cache.isSoundDecoded(key) === false) {
- this.game.cache.updateSound(key, 'isDecoding', true);
- var that = this;
- this.context.decodeAudioData(soundData, function (buffer) {
- that.game.cache.decodedSound(key, buffer);
- if(sound) {
- that.onSoundDecode.dispatch(sound);
- }
- });
- }
- }
- };
- SoundManager.prototype.update = function () {
- if(this.touchLocked) {
- if(this.game.device.webAudio && this._unlockSource !== null) {
- if((this._unlockSource.playbackState === this._unlockSource.PLAYING_STATE || this._unlockSource.playbackState === this._unlockSource.FINISHED_STATE)) {
- this.touchLocked = false;
- this._unlockSource = null;
- this.game.input.touch.callbackContext = null;
- this.game.input.touch.touchStartCallback = null;
- }
- }
- }
- for(var i = 0; i < this._sounds.length; i++) {
- this._sounds[i].update();
- }
- };
- SoundManager.prototype.add = function (key, volume, loop) {
- if (typeof volume === "undefined") { volume = 1; }
- if (typeof loop === "undefined") { loop = false; }
- var sound = new Phaser.Sound(this.game, key, volume, loop);
- this._sounds.push(sound);
- return sound;
- };
- return SoundManager;
- })();
- Phaser.SoundManager = SoundManager;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Sound = (function () {
- function Sound(game, key, volume, loop) {
- if (typeof volume === "undefined") { volume = 1; }
- if (typeof loop === "undefined") { loop = false; }
- this.context = null;
- this._buffer = null;
- this._muted = false;
- this.usingWebAudio = false;
- this.usingAudioTag = false;
- this.name = '';
- this.autoplay = false;
- this.totalDuration = 0;
- this.startTime = 0;
- this.currentTime = 0;
- this.duration = 0;
- this.stopTime = 0;
- this.paused = false;
- this.loop = false;
- this.isPlaying = false;
- this.currentMarker = '';
- this.pendingPlayback = false;
- this.override = false;
- this.game = game;
- this.usingWebAudio = this.game.sound.usingWebAudio;
- this.usingAudioTag = this.game.sound.usingAudioTag;
- this.key = key;
- if(this.usingWebAudio) {
- this.context = this.game.sound.context;
- this.masterGainNode = this.game.sound.masterGain;
- if(typeof this.context.createGain === 'undefined') {
- this.gainNode = this.context.createGainNode();
- } else {
- this.gainNode = this.context.createGain();
- }
- this.gainNode.gain.value = volume * this.game.sound.volume;
- this.gainNode.connect(this.masterGainNode);
- } else {
- if(this.game.cache.getSound(key) && this.game.cache.getSound(key).locked == false) {
- this._sound = this.game.cache.getSoundData(key);
- this.totalDuration = this._sound.duration;
- } else {
- this.game.cache.onSoundUnlock.add(this.soundHasUnlocked, this);
- }
- }
- this._volume = volume;
- this.loop = loop;
- this.markers = {
- };
- this.onDecoded = new Phaser.Signal();
- this.onPlay = new Phaser.Signal();
- this.onPause = new Phaser.Signal();
- this.onResume = new Phaser.Signal();
- this.onLoop = new Phaser.Signal();
- this.onStop = new Phaser.Signal();
- this.onMute = new Phaser.Signal();
- this.onMarkerComplete = new Phaser.Signal();
- }
- Sound.prototype.soundHasUnlocked = function (key) {
- if(key == this.key) {
- this._sound = this.game.cache.getSoundData(this.key);
- this.totalDuration = this._sound.duration;
- }
- };
- Object.defineProperty(Sound.prototype, "isDecoding", {
- get: function () {
- return this.game.cache.getSound(this.key).isDecoding;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Sound.prototype, "isDecoded", {
- get: function () {
- return this.game.cache.isSoundDecoded(this.key);
- },
- enumerable: true,
- configurable: true
- });
- Sound.prototype.addMarker = function (name, start, stop, volume, loop) {
- if (typeof volume === "undefined") { volume = 1; }
- if (typeof loop === "undefined") { loop = false; }
- this.markers[name] = {
- name: name,
- start: start,
- stop: stop,
- volume: volume,
- duration: stop - start,
- loop: loop
- };
- };
- Sound.prototype.removeMarker = function (name) {
- delete this.markers[name];
- };
- Sound.prototype.update = function () {
- if(this.pendingPlayback && this.game.cache.isSoundReady(this.key)) {
- this.pendingPlayback = false;
- this.play(this._tempMarker, this._tempPosition, this._tempVolume, this._tempLoop);
- }
- if(this.isPlaying) {
- this.currentTime = this.game.time.now - this.startTime;
- if(this.currentTime >= this.duration) {
- if(this.usingWebAudio) {
- if(this.loop) {
- this.onLoop.dispatch(this);
- if(this.currentMarker == '') {
- this.currentTime = 0;
- this.startTime = this.game.time.now;
- } else {
- this.play(this.currentMarker, 0, this.volume, true, true);
- }
- } else {
- this.stop();
- }
- } else {
- if(this.loop) {
- this.onLoop.dispatch(this);
- this.play(this.currentMarker, 0, this.volume, true, true);
- } else {
- this.stop();
- }
- }
- }
- }
- };
- Sound.prototype.play = function (marker, position, volume, loop, forceRestart) {
- if (typeof marker === "undefined") { marker = ''; }
- if (typeof position === "undefined") { position = 0; }
- if (typeof volume === "undefined") { volume = 1; }
- if (typeof loop === "undefined") { loop = false; }
- if (typeof forceRestart === "undefined") { forceRestart = false; }
- if(this.isPlaying == true && forceRestart == false && this.override == false) {
- return;
- }
- if(this.isPlaying && this.override) {
- if(this.usingWebAudio) {
- if(typeof this._sound.stop === 'undefined') {
- this._sound.noteOff(0);
- } else {
- this._sound.stop(0);
- }
- } else if(this.usingAudioTag) {
- this._sound.pause();
- this._sound.currentTime = 0;
- }
- }
- this.currentMarker = marker;
- if(marker !== '' && this.markers[marker]) {
- this.position = this.markers[marker].start;
- this.volume = this.markers[marker].volume;
- this.loop = this.markers[marker].loop;
- this.duration = this.markers[marker].duration * 1000;
- this._tempMarker = marker;
- this._tempPosition = this.position;
- this._tempVolume = this.volume;
- this._tempLoop = this.loop;
- } else {
- this.position = position;
- this.volume = volume;
- this.loop = loop;
- this.duration = 0;
- this._tempMarker = marker;
- this._tempPosition = position;
- this._tempVolume = volume;
- this._tempLoop = loop;
- }
- if(this.usingWebAudio) {
- if(this.game.cache.isSoundDecoded(this.key)) {
- if(this._buffer == null) {
- this._buffer = this.game.cache.getSoundData(this.key);
- }
- this._sound = this.context.createBufferSource();
- this._sound.buffer = this._buffer;
- this._sound.connect(this.gainNode);
- this.totalDuration = this._sound.buffer.duration;
- if(this.duration == 0) {
- this.duration = this.totalDuration * 1000;
- }
- if(this.loop && marker == '') {
- this._sound.loop = true;
- }
- if(typeof this._sound.start === 'undefined') {
- this._sound.noteGrainOn(0, this.position, this.duration / 1000);
- } else {
- this._sound.start(0, this.position, this.duration / 1000);
- }
- this.isPlaying = true;
- this.startTime = this.game.time.now;
- this.currentTime = 0;
- this.stopTime = this.startTime + this.duration;
- this.onPlay.dispatch(this);
- } else {
- this.pendingPlayback = true;
- if(this.game.cache.getSound(this.key) && this.game.cache.getSound(this.key).isDecoding == false) {
- this.game.sound.decode(this.key, this);
- }
- }
- } else {
- if(this.game.cache.getSound(this.key) && this.game.cache.getSound(this.key).locked) {
- this.game.cache.reloadSound(this.key);
- this.pendingPlayback = true;
- } else {
- if(this._sound && this._sound.readyState == 4) {
- if(this.duration == 0) {
- this.duration = this.totalDuration * 1000;
- }
- this._sound.currentTime = this.position;
- this._sound.muted = this._muted;
- if(this._muted) {
- this._sound.volume = 0;
- } else {
- this._sound.volume = this._volume;
- }
- this._sound.play();
- this.isPlaying = true;
- this.startTime = this.game.time.now;
- this.currentTime = 0;
- this.stopTime = this.startTime + this.duration;
- this.onPlay.dispatch(this);
- } else {
- this.pendingPlayback = true;
- }
- }
- }
- };
- Sound.prototype.restart = function (marker, position, volume, loop) {
- if (typeof marker === "undefined") { marker = ''; }
- if (typeof position === "undefined") { position = 0; }
- if (typeof volume === "undefined") { volume = 1; }
- if (typeof loop === "undefined") { loop = false; }
- this.play(marker, position, volume, loop, true);
- };
- Sound.prototype.pause = function () {
- if(this.isPlaying && this._sound) {
- this.stop();
- this.isPlaying = false;
- this.paused = true;
- this.onPause.dispatch(this);
- }
- };
- Sound.prototype.resume = function () {
- if(this.paused && this._sound) {
- if(this.usingWebAudio) {
- if(typeof this._sound.start === 'undefined') {
- this._sound.noteGrainOn(0, this.position, this.duration);
- } else {
- this._sound.start(0, this.position, this.duration);
- }
- } else {
- this._sound.play();
- }
- this.isPlaying = true;
- this.paused = false;
- this.onResume.dispatch(this);
- }
- };
- Sound.prototype.stop = function () {
- if(this.isPlaying && this._sound) {
- if(this.usingWebAudio) {
- if(typeof this._sound.stop === 'undefined') {
- this._sound.noteOff(0);
- } else {
- this._sound.stop(0);
- }
- } else if(this.usingAudioTag) {
- this._sound.pause();
- this._sound.currentTime = 0;
- }
- }
- this.isPlaying = false;
- var prevMarker = this.currentMarker;
- this.currentMarker = '';
- this.onStop.dispatch(this, prevMarker);
- };
- Object.defineProperty(Sound.prototype, "mute", {
- get: function () {
- return this._muted;
- },
- set: function (value) {
- if(value) {
- this._muted = true;
- if(this.usingWebAudio) {
- this._muteVolume = this.gainNode.gain.value;
- this.gainNode.gain.value = 0;
- } else if(this.usingAudioTag && this._sound) {
- this._muteVolume = this._sound.volume;
- this._sound.volume = 0;
- }
- } else {
- this._muted = false;
- if(this.usingWebAudio) {
- this.gainNode.gain.value = this._muteVolume;
- } else if(this.usingAudioTag && this._sound) {
- this._sound.volume = this._muteVolume;
- }
- }
- this.onMute.dispatch(this);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Sound.prototype, "volume", {
- get: function () {
- return this._volume;
- },
- set: function (value) {
- this._volume = value;
- if(this.usingWebAudio) {
- this.gainNode.gain.value = value;
- } else if(this.usingAudioTag && this._sound) {
- this._sound.volume = value;
- }
- },
- enumerable: true,
- configurable: true
- });
- return Sound;
- })();
- Phaser.Sound = Sound;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Animation = (function () {
- function Animation(game, parent, frameData, name, frames, delay, looped) {
- this.game = game;
- this._parent = parent;
- this._frames = frames;
- this._frameData = frameData;
- this.name = name;
- this.delay = 1000 / delay;
- this.looped = looped;
- this.isFinished = false;
- this.isPlaying = false;
- this._frameIndex = 0;
- this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
- }
- Object.defineProperty(Animation.prototype, "frameTotal", {
- get: function () {
- return this._frames.length;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Animation.prototype, "frame", {
- get: function () {
- if(this.currentFrame !== null) {
- return this.currentFrame.index;
- } else {
- return this._frameIndex;
- }
- },
- set: function (value) {
- this.currentFrame = this._frameData.getFrame(value);
- if(this.currentFrame !== null) {
- this._parent.texture.width = this.currentFrame.width;
- this._parent.texture.height = this.currentFrame.height;
- this._frameIndex = value;
- }
- },
- enumerable: true,
- configurable: true
- });
- Animation.prototype.play = function (frameRate, loop) {
- if (typeof frameRate === "undefined") { frameRate = null; }
- if (typeof loop === "undefined") { loop = null; }
- if(frameRate !== null) {
- this.delay = 1000 / frameRate;
- }
- if(loop !== null) {
- this.looped = loop;
- }
- this.isPlaying = true;
- this.isFinished = false;
- this._timeLastFrame = this.game.time.now;
- this._timeNextFrame = this.game.time.now + this.delay;
- this._frameIndex = 0;
- this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
- this._parent.events.onAnimationStart.dispatch(this._parent, this);
- return this;
- };
- Animation.prototype.restart = function () {
- this.isPlaying = true;
- this.isFinished = false;
- this._timeLastFrame = this.game.time.now;
- this._timeNextFrame = this.game.time.now + this.delay;
- this._frameIndex = 0;
- this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
- };
- Animation.prototype.stop = function () {
- this.isPlaying = false;
- this.isFinished = true;
- };
- Animation.prototype.update = function () {
- if(this.isPlaying == true && this.game.time.now >= this._timeNextFrame) {
- this._frameIndex++;
- if(this._frameIndex == this._frames.length) {
- if(this.looped) {
- this._frameIndex = 0;
- this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
- this._parent.events.onAnimationLoop.dispatch(this._parent, this);
- } else {
- this.onComplete();
- }
- } else {
- this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
- }
- this._timeLastFrame = this.game.time.now;
- this._timeNextFrame = this.game.time.now + this.delay;
- return true;
- }
- return false;
- };
- Animation.prototype.destroy = function () {
- this.game = null;
- this._parent = null;
- this._frames = null;
- this._frameData = null;
- this.currentFrame = null;
- this.isPlaying = false;
- };
- Animation.prototype.onComplete = function () {
- this.isPlaying = false;
- this.isFinished = true;
- this._parent.events.onAnimationComplete.dispatch(this._parent, this);
- };
- return Animation;
- })();
- Phaser.Animation = Animation;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Components) {
- var AnimationManager = (function () {
- function AnimationManager(parent) {
- this._frameData = null;
- this.autoUpdateBounds = true;
- this.currentFrame = null;
- this._parent = parent;
- this.game = parent.game;
- this._anims = {
- };
- }
- AnimationManager.prototype.loadFrameData = function (frameData) {
- this._frameData = frameData;
- this.frame = 0;
- };
- AnimationManager.prototype.add = function (name, frames, frameRate, loop, useNumericIndex) {
- if (typeof frames === "undefined") { frames = null; }
- if (typeof frameRate === "undefined") { frameRate = 60; }
- if (typeof loop === "undefined") { loop = false; }
- if (typeof useNumericIndex === "undefined") { useNumericIndex = true; }
- if(this._frameData == null) {
- return;
- }
- if(this._parent.events.onAnimationStart == null) {
- this._parent.events.onAnimationStart = new Phaser.Signal();
- this._parent.events.onAnimationComplete = new Phaser.Signal();
- this._parent.events.onAnimationLoop = new Phaser.Signal();
- }
- if(frames == null) {
- frames = this._frameData.getFrameIndexes();
- } else {
- if(this.validateFrames(frames, useNumericIndex) == false) {
- throw Error('Invalid frames given to Animation ' + name);
- return;
- }
- }
- if(useNumericIndex == false) {
- frames = this._frameData.getFrameIndexesByName(frames);
- }
- this._anims[name] = new Phaser.Animation(this.game, this._parent, this._frameData, name, frames, frameRate, loop);
- this.currentAnim = this._anims[name];
- this.currentFrame = this.currentAnim.currentFrame;
- return this._anims[name];
- };
- AnimationManager.prototype.validateFrames = function (frames, useNumericIndex) {
- for(var i = 0; i < frames.length; i++) {
- if(useNumericIndex == true) {
- if(frames[i] > this._frameData.total) {
- return false;
- }
- } else {
- if(this._frameData.checkFrameName(frames[i]) == false) {
- return false;
- }
- }
- }
- return true;
- };
- AnimationManager.prototype.play = function (name, frameRate, loop) {
- if (typeof frameRate === "undefined") { frameRate = null; }
- if (typeof loop === "undefined") { loop = null; }
- if(this._anims[name]) {
- if(this.currentAnim == this._anims[name]) {
- if(this.currentAnim.isPlaying == false) {
- return this.currentAnim.play(frameRate, loop);
- }
- } else {
- this.currentAnim = this._anims[name];
- return this.currentAnim.play(frameRate, loop);
- }
- }
- };
- AnimationManager.prototype.stop = function (name) {
- if(this._anims[name]) {
- this.currentAnim = this._anims[name];
- this.currentAnim.stop();
- }
- };
- AnimationManager.prototype.update = function () {
- if(this.currentAnim && this.currentAnim.update() == true) {
- this.currentFrame = this.currentAnim.currentFrame;
- this._parent.texture.width = this.currentFrame.width;
- this._parent.texture.height = this.currentFrame.height;
- }
- };
- Object.defineProperty(AnimationManager.prototype, "frameData", {
- get: function () {
- return this._frameData;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(AnimationManager.prototype, "frameTotal", {
- get: function () {
- if(this._frameData) {
- return this._frameData.total;
- } else {
- return -1;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(AnimationManager.prototype, "frame", {
- get: function () {
- return this._frameIndex;
- },
- set: function (value) {
- if(this._frameData && this._frameData.getFrame(value) !== null) {
- this.currentFrame = this._frameData.getFrame(value);
- this._parent.texture.width = this.currentFrame.width;
- this._parent.texture.height = this.currentFrame.height;
- if(this.autoUpdateBounds && this._parent['body']) {
- this._parent.body.bounds.width = this.currentFrame.width;
- this._parent.body.bounds.height = this.currentFrame.height;
- }
- this._frameIndex = value;
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(AnimationManager.prototype, "frameName", {
- get: function () {
- return this.currentFrame.name;
- },
- set: function (value) {
- if(this._frameData && this._frameData.getFrameByName(value)) {
- this.currentFrame = this._frameData.getFrameByName(value);
- this._parent.texture.width = this.currentFrame.width;
- this._parent.texture.height = this.currentFrame.height;
- this._frameIndex = this.currentFrame.index;
- } else {
- throw new Error("Cannot set frameName: " + value);
- }
- },
- enumerable: true,
- configurable: true
- });
- AnimationManager.prototype.destroy = function () {
- this._anims = {
- };
- this._frameData = null;
- this._frameIndex = 0;
- this.currentAnim = null;
- this.currentFrame = null;
- };
- return AnimationManager;
- })();
- Components.AnimationManager = AnimationManager;
- })(Phaser.Components || (Phaser.Components = {}));
- var Components = Phaser.Components;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Frame = (function () {
- function Frame(x, y, width, height, name) {
- this.name = '';
- this.rotated = false;
- this.rotationDirection = 'cw';
- this.x = x;
- this.y = y;
- this.width = width;
- this.height = height;
- this.name = name;
- this.rotated = false;
- this.trimmed = false;
- }
- Frame.prototype.setRotation = function (rotated, rotationDirection) {
- };
- Frame.prototype.setTrim = function (trimmed, actualWidth, actualHeight, destX, destY, destWidth, destHeight) {
- this.trimmed = trimmed;
- if(trimmed) {
- this.width = actualWidth;
- this.height = actualHeight;
- this.sourceSizeW = actualWidth;
- this.sourceSizeH = actualHeight;
- this.spriteSourceSizeX = destX;
- this.spriteSourceSizeY = destY;
- this.spriteSourceSizeW = destWidth;
- this.spriteSourceSizeH = destHeight;
- }
- };
- return Frame;
- })();
- Phaser.Frame = Frame;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var FrameData = (function () {
- function FrameData() {
- this._frames = [];
- this._frameNames = [];
- }
- Object.defineProperty(FrameData.prototype, "total", {
- get: function () {
- return this._frames.length;
- },
- enumerable: true,
- configurable: true
- });
- FrameData.prototype.addFrame = function (frame) {
- frame.index = this._frames.length;
- this._frames.push(frame);
- if(frame.name !== '') {
- this._frameNames[frame.name] = frame.index;
- }
- return frame;
- };
- FrameData.prototype.getFrame = function (index) {
- if(this._frames[index]) {
- return this._frames[index];
- }
- return null;
- };
- FrameData.prototype.getFrameByName = function (name) {
- if(this._frameNames[name] !== '') {
- return this._frames[this._frameNames[name]];
- }
- return null;
- };
- FrameData.prototype.checkFrameName = function (name) {
- if(this._frameNames[name] == null) {
- return false;
- }
- return true;
- };
- FrameData.prototype.getFrameRange = function (start, end, output) {
- if (typeof output === "undefined") { output = []; }
- for(var i = start; i <= end; i++) {
- output.push(this._frames[i]);
- }
- return output;
- };
- FrameData.prototype.getFrameIndexes = function (output) {
- if (typeof output === "undefined") { output = []; }
- output.length = 0;
- for(var i = 0; i < this._frames.length; i++) {
- output.push(i);
- }
- return output;
- };
- FrameData.prototype.getFrameIndexesByName = function (input) {
- var output = [];
- for(var i = 0; i < input.length; i++) {
- if(this.getFrameByName(input[i])) {
- output.push(this.getFrameByName(input[i]).index);
- }
- }
- return output;
- };
- FrameData.prototype.getAllFrames = function () {
- return this._frames;
- };
- FrameData.prototype.getFrames = function (range) {
- var output = [];
- for(var i = 0; i < range.length; i++) {
- output.push(this._frames[i]);
- }
- return output;
- };
- return FrameData;
- })();
- Phaser.FrameData = FrameData;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Cache = (function () {
- function Cache(game) {
- this.onSoundUnlock = new Phaser.Signal();
- this.game = game;
- this._canvases = {
- };
- this._images = {
- };
- this._sounds = {
- };
- this._text = {
- };
- }
- Cache.prototype.addCanvas = function (key, canvas, context) {
- this._canvases[key] = {
- canvas: canvas,
- context: context
- };
- };
- Cache.prototype.addSpriteSheet = function (key, url, data, frameWidth, frameHeight, frameMax) {
- this._images[key] = {
- url: url,
- data: data,
- spriteSheet: true,
- frameWidth: frameWidth,
- frameHeight: frameHeight
- };
- this._images[key].frameData = Phaser.AnimationLoader.parseSpriteSheet(this.game, key, frameWidth, frameHeight, frameMax);
- };
- Cache.prototype.addTextureAtlas = function (key, url, data, atlasData, format) {
- this._images[key] = {
- url: url,
- data: data,
- spriteSheet: true
- };
- if(format == Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY) {
- this._images[key].frameData = Phaser.AnimationLoader.parseJSONData(this.game, atlasData);
- } else if(format == Phaser.Loader.TEXTURE_ATLAS_XML_STARLING) {
- this._images[key].frameData = Phaser.AnimationLoader.parseXMLData(this.game, atlasData, format);
- }
- };
- Cache.prototype.addImage = function (key, url, data) {
- this._images[key] = {
- url: url,
- data: data,
- spriteSheet: false
- };
- };
- Cache.prototype.addSound = function (key, url, data, webAudio, audioTag) {
- if (typeof webAudio === "undefined") { webAudio = true; }
- if (typeof audioTag === "undefined") { audioTag = false; }
- var locked = this.game.sound.touchLocked;
- var decoded = false;
- if(audioTag) {
- decoded = true;
- }
- this._sounds[key] = {
- url: url,
- data: data,
- locked: locked,
- isDecoding: false,
- decoded: decoded,
- webAudio: webAudio,
- audioTag: audioTag
- };
- };
- Cache.prototype.reloadSound = function (key) {
- var _this = this;
- if(this._sounds[key]) {
- this._sounds[key].data.src = this._sounds[key].url;
- this._sounds[key].data.addEventListener('canplaythrough', function () {
- return _this.reloadSoundComplete(key);
- }, false);
- this._sounds[key].data.load();
- }
- };
- Cache.prototype.reloadSoundComplete = function (key) {
- if(this._sounds[key]) {
- this._sounds[key].locked = false;
- this.onSoundUnlock.dispatch(key);
- }
- };
- Cache.prototype.updateSound = function (key, property, value) {
- if(this._sounds[key]) {
- this._sounds[key][property] = value;
- }
- };
- Cache.prototype.decodedSound = function (key, data) {
- this._sounds[key].data = data;
- this._sounds[key].decoded = true;
- this._sounds[key].isDecoding = false;
- };
- Cache.prototype.addText = function (key, url, data) {
- this._text[key] = {
- url: url,
- data: data
- };
- };
- Cache.prototype.getCanvas = function (key) {
- if(this._canvases[key]) {
- return this._canvases[key].canvas;
- }
- return null;
- };
- Cache.prototype.getImage = function (key) {
- if(this._images[key]) {
- return this._images[key].data;
- }
- return null;
- };
- Cache.prototype.getFrameData = function (key) {
- if(this._images[key] && this._images[key].spriteSheet == true) {
- return this._images[key].frameData;
- }
- return null;
- };
- Cache.prototype.getSound = function (key) {
- if(this._sounds[key]) {
- return this._sounds[key];
- }
- return null;
- };
- Cache.prototype.getSoundData = function (key) {
- if(this._sounds[key]) {
- return this._sounds[key].data;
- }
- return null;
- };
- Cache.prototype.isSoundDecoded = function (key) {
- if(this._sounds[key]) {
- return this._sounds[key].decoded;
- }
- };
- Cache.prototype.isSoundReady = function (key) {
- if(this._sounds[key] && this._sounds[key].decoded == true && this._sounds[key].locked == false) {
- return true;
- }
- return false;
- };
- Cache.prototype.isSpriteSheet = function (key) {
- if(this._images[key]) {
- return this._images[key].spriteSheet;
- }
- };
- Cache.prototype.getText = function (key) {
- if(this._text[key]) {
- return this._text[key].data;
- }
- return null;
- };
- Cache.prototype.getImageKeys = function () {
- var output = [];
- for(var item in this._images) {
- output.push(item);
- }
- return output;
- };
- Cache.prototype.getSoundKeys = function () {
- var output = [];
- for(var item in this._sounds) {
- output.push(item);
- }
- return output;
- };
- Cache.prototype.getTextKeys = function () {
- var output = [];
- for(var item in this._text) {
- output.push(item);
- }
- return output;
- };
- Cache.prototype.removeCanvas = function (key) {
- delete this._canvases[key];
- };
- Cache.prototype.removeImage = function (key) {
- delete this._images[key];
- };
- Cache.prototype.removeSound = function (key) {
- delete this._sounds[key];
- };
- Cache.prototype.removeText = function (key) {
- delete this._text[key];
- };
- Cache.prototype.destroy = function () {
- for(var item in this._canvases) {
- delete this._canvases[item['key']];
- }
- for(var item in this._images) {
- delete this._images[item['key']];
- }
- for(var item in this._sounds) {
- delete this._sounds[item['key']];
- }
- for(var item in this._text) {
- delete this._text[item['key']];
- }
- };
- return Cache;
- })();
- Phaser.Cache = Cache;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Loader = (function () {
- function Loader(game) {
- this.crossOrigin = '';
- this.baseURL = '';
- this.game = game;
- this._keys = [];
- this._fileList = {
- };
- this._xhr = new XMLHttpRequest();
- this._queueSize = 0;
- this.isLoading = false;
- this.onFileComplete = new Phaser.Signal();
- this.onFileError = new Phaser.Signal();
- this.onLoadStart = new Phaser.Signal();
- this.onLoadComplete = new Phaser.Signal();
- }
- Loader.TEXTURE_ATLAS_JSON_ARRAY = 0;
- Loader.TEXTURE_ATLAS_JSON_HASH = 1;
- Loader.TEXTURE_ATLAS_XML_STARLING = 2;
- Loader.prototype.reset = function () {
- this._queueSize = 0;
- this.isLoading = false;
- };
- Object.defineProperty(Loader.prototype, "queueSize", {
- get: function () {
- return this._queueSize;
- },
- enumerable: true,
- configurable: true
- });
- Loader.prototype.image = function (key, url, overwrite) {
- if (typeof overwrite === "undefined") { overwrite = false; }
- if(overwrite == true || this.checkKeyExists(key) == false) {
- this._queueSize++;
- this._fileList[key] = {
- type: 'image',
- key: key,
- url: url,
- data: null,
- error: false,
- loaded: false
- };
- this._keys.push(key);
- }
- };
- Loader.prototype.spritesheet = function (key, url, frameWidth, frameHeight, frameMax) {
- if (typeof frameMax === "undefined") { frameMax = -1; }
- if(this.checkKeyExists(key) === false) {
- this._queueSize++;
- this._fileList[key] = {
- type: 'spritesheet',
- key: key,
- url: url,
- data: null,
- frameWidth: frameWidth,
- frameHeight: frameHeight,
- frameMax: frameMax,
- error: false,
- loaded: false
- };
- this._keys.push(key);
- }
- };
- Loader.prototype.atlas = function (key, textureURL, atlasURL, atlasData, format) {
- if (typeof atlasURL === "undefined") { atlasURL = null; }
- if (typeof atlasData === "undefined") { atlasData = null; }
- if (typeof format === "undefined") { format = Loader.TEXTURE_ATLAS_JSON_ARRAY; }
- if(this.checkKeyExists(key) === false) {
- if(atlasURL !== null) {
- this._queueSize++;
- this._fileList[key] = {
- type: 'textureatlas',
- key: key,
- url: textureURL,
- atlasURL: atlasURL,
- data: null,
- format: format,
- error: false,
- loaded: false
- };
- this._keys.push(key);
- } else {
- if(format == Loader.TEXTURE_ATLAS_JSON_ARRAY) {
- if(typeof atlasData === 'string') {
- atlasData = JSON.parse(atlasData);
- }
- this._queueSize++;
- this._fileList[key] = {
- type: 'textureatlas',
- key: key,
- url: textureURL,
- data: null,
- atlasURL: null,
- atlasData: atlasData,
- format: format,
- error: false,
- loaded: false
- };
- this._keys.push(key);
- } else if(format == Loader.TEXTURE_ATLAS_XML_STARLING) {
- if(typeof atlasData === 'string') {
- var xml;
- try {
- if(window['DOMParser']) {
- var domparser = new DOMParser();
- xml = domparser.parseFromString(atlasData, "text/xml");
- } else {
- xml = new ActiveXObject("Microsoft.XMLDOM");
- xml.async = 'false';
- xml.loadXML(atlasData);
- }
- } catch (e) {
- xml = undefined;
- }
- if(!xml || !xml.documentElement || xml.getElementsByTagName("parsererror").length) {
- throw new Error("Phaser.Loader. Invalid Texture Atlas XML given");
- } else {
- atlasData = xml;
- }
- }
- this._queueSize++;
- this._fileList[key] = {
- type: 'textureatlas',
- key: key,
- url: textureURL,
- data: null,
- atlasURL: null,
- atlasData: atlasData,
- format: format,
- error: false,
- loaded: false
- };
- this._keys.push(key);
- }
- }
- }
- };
- Loader.prototype.audio = function (key, urls, autoDecode) {
- if (typeof autoDecode === "undefined") { autoDecode = true; }
- if(this.checkKeyExists(key) === false) {
- this._queueSize++;
- this._fileList[key] = {
- type: 'audio',
- key: key,
- url: urls,
- data: null,
- buffer: null,
- error: false,
- loaded: false,
- autoDecode: autoDecode
- };
- this._keys.push(key);
- }
- };
- Loader.prototype.text = function (key, url) {
- if(this.checkKeyExists(key) === false) {
- this._queueSize++;
- this._fileList[key] = {
- type: 'text',
- key: key,
- url: url,
- data: null,
- error: false,
- loaded: false
- };
- this._keys.push(key);
- }
- };
- Loader.prototype.removeFile = function (key) {
- delete this._fileList[key];
- };
- Loader.prototype.removeAll = function () {
- this._fileList = {
- };
- };
- Loader.prototype.start = function () {
- if(this.isLoading) {
- return;
- }
- this.progress = 0;
- this.hasLoaded = false;
- this.isLoading = true;
- this.onLoadStart.dispatch(this.queueSize);
- if(this._keys.length > 0) {
- this._progressChunk = 100 / this._keys.length;
- this.loadFile();
- } else {
- this.progress = 100;
- this.hasLoaded = true;
- this.onLoadComplete.dispatch();
- }
- };
- Loader.prototype.loadFile = function () {
- var _this = this;
- var file = this._fileList[this._keys.pop()];
- switch(file.type) {
- case 'image':
- case 'spritesheet':
- case 'textureatlas':
- file.data = new Image();
- file.data.name = file.key;
- file.data.onload = function () {
- return _this.fileComplete(file.key);
- };
- file.data.onerror = function () {
- return _this.fileError(file.key);
- };
- file.data.crossOrigin = this.crossOrigin;
- file.data.src = this.baseURL + file.url;
- break;
- case 'audio':
- file.url = this.getAudioURL(file.url);
- if(file.url !== null) {
- if(this.game.sound.usingWebAudio) {
- this._xhr.open("GET", this.baseURL + file.url, true);
- this._xhr.responseType = "arraybuffer";
- this._xhr.onload = function () {
- return _this.fileComplete(file.key);
- };
- this._xhr.onerror = function () {
- return _this.fileError(file.key);
- };
- this._xhr.send();
- } else if(this.game.sound.usingAudioTag) {
- if(this.game.sound.touchLocked) {
- file.data = new Audio();
- file.data.name = file.key;
- file.data.preload = 'auto';
- file.data.src = this.baseURL + file.url;
- this.fileComplete(file.key);
- } else {
- file.data = new Audio();
- file.data.name = file.key;
- file.data.onerror = function () {
- return _this.fileError(file.key);
- };
- file.data.preload = 'auto';
- file.data.src = this.baseURL + file.url;
- file.data.addEventListener('canplaythrough', Phaser.GAMES[this.game.id].load.fileComplete(file.key), false);
- file.data.load();
- }
- }
- }
- break;
- case 'text':
- this._xhr.open("GET", this.baseURL + file.url, true);
- this._xhr.responseType = "text";
- this._xhr.onload = function () {
- return _this.fileComplete(file.key);
- };
- this._xhr.onerror = function () {
- return _this.fileError(file.key);
- };
- this._xhr.send();
- break;
- }
- };
- Loader.prototype.getAudioURL = function (urls) {
- var extension;
- for(var i = 0; i < urls.length; i++) {
- extension = urls[i].toLowerCase();
- extension = extension.substr((Math.max(0, extension.lastIndexOf(".")) || Infinity) + 1);
- if(this.game.device.canPlayAudio(extension)) {
- return urls[i];
- }
- }
- return null;
- };
- Loader.prototype.fileError = function (key) {
- this._fileList[key].loaded = true;
- this._fileList[key].error = true;
- this.onFileError.dispatch(key);
- throw new Error("Phaser.Loader error loading file: " + key);
- this.nextFile(key, false);
- };
- Loader.prototype.fileComplete = function (key) {
- var _this = this;
- if(!this._fileList[key]) {
- throw new Error('Phaser.Loader fileComplete invalid key ' + key);
- return;
- }
- this._fileList[key].loaded = true;
- var file = this._fileList[key];
- var loadNext = true;
- switch(file.type) {
- case 'image':
- this.game.cache.addImage(file.key, file.url, file.data);
- break;
- case 'spritesheet':
- this.game.cache.addSpriteSheet(file.key, file.url, file.data, file.frameWidth, file.frameHeight, file.frameMax);
- break;
- case 'textureatlas':
- if(file.atlasURL == null) {
- this.game.cache.addTextureAtlas(file.key, file.url, file.data, file.atlasData, file.format);
- } else {
- loadNext = false;
- this._xhr.open("GET", this.baseURL + file.atlasURL, true);
- this._xhr.responseType = "text";
- if(file.format == Loader.TEXTURE_ATLAS_JSON_ARRAY) {
- this._xhr.onload = function () {
- return _this.jsonLoadComplete(file.key);
- };
- } else if(file.format == Loader.TEXTURE_ATLAS_XML_STARLING) {
- this._xhr.onload = function () {
- return _this.xmlLoadComplete(file.key);
- };
- }
- this._xhr.onerror = function () {
- return _this.dataLoadError(file.key);
- };
- this._xhr.send();
- }
- break;
- case 'audio':
- if(this.game.sound.usingWebAudio) {
- file.data = this._xhr.response;
- this.game.cache.addSound(file.key, file.url, file.data, true, false);
- if(file.autoDecode) {
- this.game.cache.updateSound(key, 'isDecoding', true);
- var that = this;
- var key = file.key;
- this.game.sound.context.decodeAudioData(file.data, function (buffer) {
- if(buffer) {
- that.game.cache.decodedSound(key, buffer);
- }
- });
- }
- } else {
- file.data.removeEventListener('canplaythrough', Phaser.GAMES[this.game.id].load.fileComplete);
- this.game.cache.addSound(file.key, file.url, file.data, false, true);
- }
- break;
- case 'text':
- file.data = this._xhr.response;
- this.game.cache.addText(file.key, file.url, file.data);
- break;
- }
- if(loadNext) {
- this.nextFile(key, true);
- }
- };
- Loader.prototype.jsonLoadComplete = function (key) {
- var data = JSON.parse(this._xhr.response);
- var file = this._fileList[key];
- this.game.cache.addTextureAtlas(file.key, file.url, file.data, data, file.format);
- this.nextFile(key, true);
- };
- Loader.prototype.dataLoadError = function (key) {
- var file = this._fileList[key];
- file.error = true;
- throw new Error("Phaser.Loader dataLoadError: " + key);
- this.nextFile(key, true);
- };
- Loader.prototype.xmlLoadComplete = function (key) {
- var atlasData = this._xhr.response;
- var xml;
- try {
- if(window['DOMParser']) {
- var domparser = new DOMParser();
- xml = domparser.parseFromString(atlasData, "text/xml");
- } else {
- xml = new ActiveXObject("Microsoft.XMLDOM");
- xml.async = 'false';
- xml.loadXML(atlasData);
- }
- } catch (e) {
- xml = undefined;
- }
- if(!xml || !xml.documentElement || xml.getElementsByTagName("parsererror").length) {
- throw new Error("Phaser.Loader. Invalid XML given");
- }
- var file = this._fileList[key];
- this.game.cache.addTextureAtlas(file.key, file.url, file.data, xml, file.format);
- this.nextFile(key, true);
- };
- Loader.prototype.nextFile = function (previousKey, success) {
- this.progress = Math.round(this.progress + this._progressChunk);
- if(this.progress > 100) {
- this.progress = 100;
- }
- this.onFileComplete.dispatch(this.progress, previousKey, success, this._queueSize - this._keys.length, this._queueSize);
- if(this._keys.length > 0) {
- this.loadFile();
- } else {
- this.hasLoaded = true;
- this.isLoading = false;
- this.removeAll();
- this.onLoadComplete.dispatch();
- }
- };
- Loader.prototype.checkKeyExists = function (key) {
- if(this._fileList[key]) {
- return true;
- } else {
- return false;
- }
- };
- return Loader;
- })();
- Phaser.Loader = Loader;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var AnimationLoader = (function () {
- function AnimationLoader() { }
- AnimationLoader.parseSpriteSheet = function parseSpriteSheet(game, key, frameWidth, frameHeight, frameMax) {
- var img = game.cache.getImage(key);
- if(img == null) {
- return null;
- }
- var width = img.width;
- var height = img.height;
- var row = Math.round(width / frameWidth);
- var column = Math.round(height / frameHeight);
- var total = row * column;
- if(frameMax !== -1) {
- total = frameMax;
- }
- if(width == 0 || height == 0 || width < frameWidth || height < frameHeight || total === 0) {
- throw new Error("AnimationLoader.parseSpriteSheet: width/height zero or width/height < given frameWidth/frameHeight");
- return null;
- }
- var data = new Phaser.FrameData();
- var x = 0;
- var y = 0;
- for(var i = 0; i < total; i++) {
- data.addFrame(new Phaser.Frame(x, y, frameWidth, frameHeight, ''));
- x += frameWidth;
- if(x === width) {
- x = 0;
- y += frameHeight;
- }
- }
- return data;
- };
- AnimationLoader.parseJSONData = function parseJSONData(game, json) {
- if(!json['frames']) {
- console.log(json);
- throw new Error("Phaser.AnimationLoader.parseJSONData: Invalid Texture Atlas JSON given, missing 'frames' array");
- }
- var data = new Phaser.FrameData();
- var frames = json['frames'];
- var newFrame;
- for(var i = 0; i < frames.length; i++) {
- newFrame = data.addFrame(new Phaser.Frame(frames[i].frame.x, frames[i].frame.y, frames[i].frame.w, frames[i].frame.h, frames[i].filename));
- newFrame.setTrim(frames[i].trimmed, frames[i].sourceSize.w, frames[i].sourceSize.h, frames[i].spriteSourceSize.x, frames[i].spriteSourceSize.y, frames[i].spriteSourceSize.w, frames[i].spriteSourceSize.h);
- }
- return data;
- };
- AnimationLoader.parseXMLData = function parseXMLData(game, xml, format) {
- if(!xml.getElementsByTagName('TextureAtlas')) {
- throw new Error("Phaser.AnimationLoader.parseXMLData: Invalid Texture Atlas XML given, missing tag");
- }
- var data = new Phaser.FrameData();
- var frames = xml.getElementsByTagName('SubTexture');
- var newFrame;
- for(var i = 0; i < frames.length; i++) {
- var frame = frames[i].attributes;
- newFrame = data.addFrame(new Phaser.Frame(frame.x.nodeValue, frame.y.nodeValue, frame.width.nodeValue, frame.height.nodeValue, frame.name.nodeValue));
- if(frame.frameX.nodeValue != '-0' || frame.frameY.nodeValue != '-0') {
- newFrame.setTrim(true, frame.width.nodeValue, frame.height.nodeValue, Math.abs(frame.frameX.nodeValue), Math.abs(frame.frameY.nodeValue), frame.frameWidth.nodeValue, frame.frameHeight.nodeValue);
- }
- }
- return data;
- };
- return AnimationLoader;
- })();
- Phaser.AnimationLoader = AnimationLoader;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Tile = (function () {
- function Tile(game, tilemap, index, width, height) {
- this.mass = 1.0;
- this.collideLeft = false;
- this.collideRight = false;
- this.collideUp = false;
- this.collideDown = false;
- this.separateX = true;
- this.separateY = true;
- this.game = game;
- this.tilemap = tilemap;
- this.index = index;
- this.width = width;
- this.height = height;
- this.allowCollisions = Phaser.Types.NONE;
- }
- Tile.prototype.destroy = function () {
- this.tilemap = null;
- };
- Tile.prototype.setCollision = function (collision, resetCollisions, separateX, separateY) {
- if(resetCollisions) {
- this.resetCollision();
- }
- this.separateX = separateX;
- this.separateY = separateY;
- this.allowCollisions = collision;
- if(collision & Phaser.Types.ANY) {
- this.collideLeft = true;
- this.collideRight = true;
- this.collideUp = true;
- this.collideDown = true;
- return;
- }
- if(collision & Phaser.Types.LEFT || collision & Phaser.Types.WALL) {
- this.collideLeft = true;
- }
- if(collision & Phaser.Types.RIGHT || collision & Phaser.Types.WALL) {
- this.collideRight = true;
- }
- if(collision & Phaser.Types.UP || collision & Phaser.Types.CEILING) {
- this.collideUp = true;
- }
- if(collision & Phaser.Types.DOWN || collision & Phaser.Types.CEILING) {
- this.collideDown = true;
- }
- };
- Tile.prototype.resetCollision = function () {
- this.allowCollisions = Phaser.Types.NONE;
- this.collideLeft = false;
- this.collideRight = false;
- this.collideUp = false;
- this.collideDown = false;
- };
- Tile.prototype.toString = function () {
- return "[{Tile (index=" + this.index + " collisions=" + this.allowCollisions + " width=" + this.width + " height=" + this.height + ")}]";
- };
- return Tile;
- })();
- Phaser.Tile = Tile;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Tilemap = (function () {
- function Tilemap(game, key, mapData, format, resizeWorld, tileWidth, tileHeight) {
- if (typeof resizeWorld === "undefined") { resizeWorld = true; }
- if (typeof tileWidth === "undefined") { tileWidth = 0; }
- if (typeof tileHeight === "undefined") { tileHeight = 0; }
- this.z = -1;
- this.renderOrderID = 0;
- this.collisionCallback = null;
- this.game = game;
- this.type = Phaser.Types.TILEMAP;
- this.exists = true;
- this.active = true;
- this.visible = true;
- this.alive = true;
- this.z = -1;
- this.group = null;
- this.name = '';
- this.texture = new Phaser.Display.Texture(this);
- this.transform = new Phaser.Components.TransformManager(this);
- this.tiles = [];
- this.layers = [];
- this.mapFormat = format;
- switch(format) {
- case Tilemap.FORMAT_CSV:
- this.parseCSV(game.cache.getText(mapData), key, tileWidth, tileHeight);
- break;
- case Tilemap.FORMAT_TILED_JSON:
- this.parseTiledJSON(game.cache.getText(mapData), key);
- break;
- }
- if(this.currentLayer && resizeWorld) {
- this.game.world.setSize(this.currentLayer.widthInPixels, this.currentLayer.heightInPixels, true);
- }
- }
- Tilemap.FORMAT_CSV = 0;
- Tilemap.FORMAT_TILED_JSON = 1;
- Tilemap.prototype.parseCSV = function (data, key, tileWidth, tileHeight) {
- var layer = new Phaser.TilemapLayer(this, 0, key, Tilemap.FORMAT_CSV, 'TileLayerCSV' + this.layers.length.toString(), tileWidth, tileHeight);
- data = data.trim();
- var rows = data.split("\n");
- for(var i = 0; i < rows.length; i++) {
- var column = rows[i].split(",");
- if(column.length > 0) {
- layer.addColumn(column);
- }
- }
- layer.updateBounds();
- var tileQuantity = layer.parseTileOffsets();
- this.currentLayer = layer;
- this.collisionLayer = layer;
- this.layers.push(layer);
- this.generateTiles(tileQuantity);
- };
- Tilemap.prototype.parseTiledJSON = function (data, key) {
- data = data.trim();
- var json = JSON.parse(data);
- for(var i = 0; i < json.layers.length; i++) {
- var layer = new Phaser.TilemapLayer(this, i, key, Tilemap.FORMAT_TILED_JSON, json.layers[i].name, json.tilewidth, json.tileheight);
- if(!json.layers[i].data) {
- continue;
- }
- layer.alpha = json.layers[i].opacity;
- layer.visible = json.layers[i].visible;
- layer.tileMargin = json.tilesets[0].margin;
- layer.tileSpacing = json.tilesets[0].spacing;
- var c = 0;
- var row;
- for(var t = 0; t < json.layers[i].data.length; t++) {
- if(c == 0) {
- row = [];
- }
- row.push(json.layers[i].data[t]);
- c++;
- if(c == json.layers[i].width) {
- layer.addColumn(row);
- c = 0;
- }
- }
- layer.updateBounds();
- var tileQuantity = layer.parseTileOffsets();
- this.currentLayer = layer;
- this.collisionLayer = layer;
- this.layers.push(layer);
- }
- this.generateTiles(tileQuantity);
- };
- Tilemap.prototype.generateTiles = function (qty) {
- for(var i = 0; i < qty; i++) {
- this.tiles.push(new Phaser.Tile(this.game, this, i, this.currentLayer.tileWidth, this.currentLayer.tileHeight));
- }
- };
- Object.defineProperty(Tilemap.prototype, "widthInPixels", {
- get: function () {
- return this.currentLayer.widthInPixels;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Tilemap.prototype, "heightInPixels", {
- get: function () {
- return this.currentLayer.heightInPixels;
- },
- enumerable: true,
- configurable: true
- });
- Tilemap.prototype.setCollisionCallback = function (context, callback) {
- this.collisionCallbackContext = context;
- this.collisionCallback = callback;
- };
- Tilemap.prototype.setCollisionRange = function (start, end, collision, resetCollisions, separateX, separateY) {
- if (typeof collision === "undefined") { collision = Phaser.Types.ANY; }
- if (typeof resetCollisions === "undefined") { resetCollisions = false; }
- if (typeof separateX === "undefined") { separateX = true; }
- if (typeof separateY === "undefined") { separateY = true; }
- for(var i = start; i < end; i++) {
- this.tiles[i].setCollision(collision, resetCollisions, separateX, separateY);
- }
- };
- Tilemap.prototype.setCollisionByIndex = function (values, collision, resetCollisions, separateX, separateY) {
- if (typeof collision === "undefined") { collision = Phaser.Types.ANY; }
- if (typeof resetCollisions === "undefined") { resetCollisions = false; }
- if (typeof separateX === "undefined") { separateX = true; }
- if (typeof separateY === "undefined") { separateY = true; }
- for(var i = 0; i < values.length; i++) {
- this.tiles[values[i]].setCollision(collision, resetCollisions, separateX, separateY);
- }
- };
- Tilemap.prototype.getTileByIndex = function (value) {
- if(this.tiles[value]) {
- return this.tiles[value];
- }
- return null;
- };
- Tilemap.prototype.getTile = function (x, y, layer) {
- if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
- return this.tiles[this.layers[layer].getTileIndex(x, y)];
- };
- Tilemap.prototype.getTileFromWorldXY = function (x, y, layer) {
- if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
- return this.tiles[this.layers[layer].getTileFromWorldXY(x, y)];
- };
- Tilemap.prototype.getTileFromInputXY = function (layer) {
- if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
- return this.tiles[this.layers[layer].getTileFromWorldXY(this.game.input.worldX, this.game.input.worldY)];
- };
- Tilemap.prototype.getTileOverlaps = function (object) {
- return this.currentLayer.getTileOverlaps(object);
- };
- Tilemap.prototype.collide = function (objectOrGroup, callback, context) {
- if (typeof objectOrGroup === "undefined") { objectOrGroup = null; }
- if (typeof callback === "undefined") { callback = null; }
- if (typeof context === "undefined") { context = null; }
- if(callback !== null && context !== null) {
- this.collisionCallback = callback;
- this.collisionCallbackContext = context;
- }
- if(objectOrGroup == null) {
- objectOrGroup = this.game.world.group;
- }
- if(objectOrGroup.isGroup == false) {
- this.collideGameObject(objectOrGroup);
- } else {
- objectOrGroup.forEachAlive(this, this.collideGameObject, true);
- }
- };
- Tilemap.prototype.collideGameObject = function (object) {
- if(object.body.type == Phaser.Types.BODY_DYNAMIC && object.exists == true && object.body.allowCollisions != Phaser.Types.NONE) {
- this._tempCollisionData = this.collisionLayer.getTileOverlaps(object);
- if(this.collisionCallback !== null && this._tempCollisionData.length > 0) {
- this.collisionCallback.call(this.collisionCallbackContext, object, this._tempCollisionData);
- }
- return true;
- } else {
- return false;
- }
- };
- Tilemap.prototype.putTile = function (x, y, index, layer) {
- if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
- this.layers[layer].putTile(x, y, index);
- };
- Tilemap.prototype.preUpdate = function () {
- };
- Tilemap.prototype.update = function () {
- };
- Tilemap.prototype.postUpdate = function () {
- };
- Tilemap.prototype.destroy = function () {
- this.texture = null;
- this.transform = null;
- this.tiles.length = 0;
- this.layers.length = 0;
- };
- return Tilemap;
- })();
- Phaser.Tilemap = Tilemap;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var TilemapLayer = (function () {
- function TilemapLayer(parent, id, key, mapFormat, name, tileWidth, tileHeight) {
- this.exists = true;
- this.visible = true;
- this.widthInTiles = 0;
- this.heightInTiles = 0;
- this.widthInPixels = 0;
- this.heightInPixels = 0;
- this.tileMargin = 0;
- this.tileSpacing = 0;
- this.parent = parent;
- this.game = parent.game;
- this.ID = id;
- this.name = name;
- this.mapFormat = mapFormat;
- this.tileWidth = tileWidth;
- this.tileHeight = tileHeight;
- this.boundsInTiles = new Phaser.Rectangle();
- this.texture = new Phaser.Display.Texture(this);
- this.transform = new Phaser.Components.TransformManager(this);
- if(key !== null) {
- this.texture.loadImage(key, false);
- } else {
- this.texture.opaque = true;
- }
- this.alpha = this.texture.alpha;
- this.mapData = [];
- this._tempTileBlock = [];
- }
- TilemapLayer.prototype.putTileWorldXY = function (x, y, index) {
- x = this.game.math.snapToFloor(x, this.tileWidth) / this.tileWidth;
- y = this.game.math.snapToFloor(y, this.tileHeight) / this.tileHeight;
- if(y >= 0 && y < this.mapData.length) {
- if(x >= 0 && x < this.mapData[y].length) {
- this.mapData[y][x] = index;
- }
- }
- };
- TilemapLayer.prototype.putTile = function (x, y, index) {
- if(y >= 0 && y < this.mapData.length) {
- if(x >= 0 && x < this.mapData[y].length) {
- this.mapData[y][x] = index;
- }
- }
- };
- TilemapLayer.prototype.swapTile = function (tileA, tileB, x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = this.widthInTiles; }
- if (typeof height === "undefined") { height = this.heightInTiles; }
- this.getTempBlock(x, y, width, height);
- for(var r = 0; r < this._tempTileBlock.length; r++) {
- if(this._tempTileBlock[r].tile.index == tileA) {
- this._tempTileBlock[r].newIndex = true;
- }
- if(this._tempTileBlock[r].tile.index == tileB) {
- this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = tileA;
- }
- }
- for(var r = 0; r < this._tempTileBlock.length; r++) {
- if(this._tempTileBlock[r].newIndex == true) {
- this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = tileB;
- }
- }
- };
- TilemapLayer.prototype.fillTile = function (index, x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = this.widthInTiles; }
- if (typeof height === "undefined") { height = this.heightInTiles; }
- this.getTempBlock(x, y, width, height);
- for(var r = 0; r < this._tempTileBlock.length; r++) {
- this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = index;
- }
- };
- TilemapLayer.prototype.randomiseTiles = function (tiles, x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = this.widthInTiles; }
- if (typeof height === "undefined") { height = this.heightInTiles; }
- this.getTempBlock(x, y, width, height);
- for(var r = 0; r < this._tempTileBlock.length; r++) {
- this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = this.game.math.getRandom(tiles);
- }
- };
- TilemapLayer.prototype.replaceTile = function (tileA, tileB, x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = this.widthInTiles; }
- if (typeof height === "undefined") { height = this.heightInTiles; }
- this.getTempBlock(x, y, width, height);
- for(var r = 0; r < this._tempTileBlock.length; r++) {
- if(this._tempTileBlock[r].tile.index == tileA) {
- this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = tileB;
- }
- }
- };
- TilemapLayer.prototype.getTileBlock = function (x, y, width, height) {
- var output = [];
- this.getTempBlock(x, y, width, height);
- for(var r = 0; r < this._tempTileBlock.length; r++) {
- output.push({
- x: this._tempTileBlock[r].x,
- y: this._tempTileBlock[r].y,
- tile: this._tempTileBlock[r].tile
- });
- }
- return output;
- };
- TilemapLayer.prototype.getTileFromWorldXY = function (x, y) {
- x = this.game.math.snapToFloor(x, this.tileWidth) / this.tileWidth;
- y = this.game.math.snapToFloor(y, this.tileHeight) / this.tileHeight;
- return this.getTileIndex(x, y);
- };
- TilemapLayer.prototype.getTileOverlaps = function (object) {
- if(object.body.bounds.x < 0 || object.body.bounds.x > this.widthInPixels || object.body.bounds.y < 0 || object.body.bounds.bottom > this.heightInPixels) {
- return;
- }
- this._tempTileX = this.game.math.snapToFloor(object.body.bounds.x, this.tileWidth) / this.tileWidth;
- this._tempTileY = this.game.math.snapToFloor(object.body.bounds.y, this.tileHeight) / this.tileHeight;
- this._tempTileW = (this.game.math.snapToCeil(object.body.bounds.width, this.tileWidth) + this.tileWidth) / this.tileWidth;
- this._tempTileH = (this.game.math.snapToCeil(object.body.bounds.height, this.tileHeight) + this.tileHeight) / this.tileHeight;
- this._tempBlockResults = [];
- this.getTempBlock(this._tempTileX, this._tempTileY, this._tempTileW, this._tempTileH, true);
- return this._tempBlockResults;
- };
- TilemapLayer.prototype.getTempBlock = function (x, y, width, height, collisionOnly) {
- if (typeof collisionOnly === "undefined") { collisionOnly = false; }
- if(x < 0) {
- x = 0;
- }
- if(y < 0) {
- y = 0;
- }
- if(width > this.widthInTiles) {
- width = this.widthInTiles;
- }
- if(height > this.heightInTiles) {
- height = this.heightInTiles;
- }
- this._tempTileBlock = [];
- for(var ty = y; ty < y + height; ty++) {
- for(var tx = x; tx < x + width; tx++) {
- if(collisionOnly) {
- if(this.mapData[ty] && this.mapData[ty][tx] && this.parent.tiles[this.mapData[ty][tx]].allowCollisions != Phaser.Types.NONE) {
- this._tempTileBlock.push({
- x: tx,
- y: ty,
- tile: this.parent.tiles[this.mapData[ty][tx]]
- });
- }
- } else {
- if(this.mapData[ty] && this.mapData[ty][tx]) {
- this._tempTileBlock.push({
- x: tx,
- y: ty,
- tile: this.parent.tiles[this.mapData[ty][tx]]
- });
- }
- }
- }
- }
- };
- TilemapLayer.prototype.getTileIndex = function (x, y) {
- if(y >= 0 && y < this.mapData.length) {
- if(x >= 0 && x < this.mapData[y].length) {
- return this.mapData[y][x];
- }
- }
- return null;
- };
- TilemapLayer.prototype.addColumn = function (column) {
- var data = [];
- for(var c = 0; c < column.length; c++) {
- data[c] = parseInt(column[c]);
- }
- if(this.widthInTiles == 0) {
- this.widthInTiles = data.length;
- this.widthInPixels = this.widthInTiles * this.tileWidth;
- }
- this.mapData.push(data);
- this.heightInTiles++;
- this.heightInPixels += this.tileHeight;
- };
- TilemapLayer.prototype.updateBounds = function () {
- this.boundsInTiles.setTo(0, 0, this.widthInTiles, this.heightInTiles);
- };
- TilemapLayer.prototype.parseTileOffsets = function () {
- this.tileOffsets = [];
- var i = 0;
- if(this.mapFormat == Phaser.Tilemap.FORMAT_TILED_JSON) {
- this.tileOffsets[0] = null;
- i = 1;
- }
- for(var ty = this.tileMargin; ty < this.texture.height; ty += (this.tileHeight + this.tileSpacing)) {
- for(var tx = this.tileMargin; tx < this.texture.width; tx += (this.tileWidth + this.tileSpacing)) {
- this.tileOffsets[i] = {
- x: tx,
- y: ty
- };
- i++;
- }
- }
- return this.tileOffsets.length;
- };
- return TilemapLayer;
- })();
- Phaser.TilemapLayer = TilemapLayer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- var PhysicsManager = (function () {
- function PhysicsManager(game) {
- this._length = 0;
- this.grav = 0.2;
- this.drag = 1;
- this.bounce = 0.3;
- this.friction = 0.05;
- this.min_f = 0;
- this.max_f = 1;
- this.min_b = 0;
- this.max_b = 1;
- this.min_g = 0;
- this.max_g = 1;
- this.xmin = 0;
- this.xmax = 800;
- this.ymin = 0;
- this.ymax = 600;
- this.objrad = 24;
- this.tilerad = 24 * 2;
- this.objspeed = 0.2;
- this.maxspeed = 20;
- this.game = game;
- }
- PhysicsManager.prototype.update = function () {
- };
- PhysicsManager.prototype.updateMotion = function (body) {
- this._velocityDelta = (this.computeVelocity(body.angularVelocity, body.gravity.x, body.angularAcceleration, body.angularDrag, body.maxAngular) - body.angularVelocity) / 2;
- body.angularVelocity += this._velocityDelta;
- body.sprite.transform.rotation += body.angularVelocity * this.game.time.physicsElapsed;
- body.angularVelocity += this._velocityDelta;
- this._velocityDelta = (this.computeVelocity(body.velocity.x, body.gravity.x, body.acceleration.x, body.drag.x) - body.velocity.x) / 2;
- body.velocity.x += this._velocityDelta;
- this._delta = body.velocity.x * this.game.time.physicsElapsed;
- body.aabb.pos.x += this._delta;
- body.deltaX = this._delta;
- this._velocityDelta = (this.computeVelocity(body.velocity.y, body.gravity.y, body.acceleration.y, body.drag.y) - body.velocity.y) / 2;
- body.velocity.y += this._velocityDelta;
- this._delta = body.velocity.y * this.game.time.physicsElapsed;
- body.aabb.pos.y += this._delta;
- body.deltaY = this._delta;
- };
- PhysicsManager.prototype.computeVelocity = function (velocity, gravity, acceleration, drag, max) {
- if (typeof gravity === "undefined") { gravity = 0; }
- if (typeof acceleration === "undefined") { acceleration = 0; }
- if (typeof drag === "undefined") { drag = 0; }
- if (typeof max === "undefined") { max = 10000; }
- if(acceleration !== 0) {
- velocity += (acceleration + gravity) * this.game.time.physicsElapsed;
- } else if(drag !== 0) {
- this._drag = drag * this.game.time.physicsElapsed;
- if(velocity - this._drag > 0) {
- velocity = velocity - this._drag;
- } else if(velocity + this._drag < 0) {
- velocity += this._drag;
- } else {
- velocity = 0;
- }
- }
- velocity += gravity;
- if(velocity != 0) {
- if(velocity > max) {
- velocity = max;
- } else if(velocity < -max) {
- velocity = -max;
- }
- }
- return velocity;
- };
- return PhysicsManager;
- })();
- Physics.PhysicsManager = PhysicsManager;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- var Body = (function () {
- function Body(sprite, type) {
- this.angularVelocity = 0;
- this.angularAcceleration = 0;
- this.angularDrag = 0;
- this.maxAngular = 10000;
- this.deltaX = 0;
- this.deltaY = 0;
- this.sprite = sprite;
- this.game = sprite.game;
- this.type = type;
- this.aabb = new Phaser.Physics.AABB(sprite.game, sprite.x, sprite.y, sprite.width, sprite.height);
- this.velocity = new Phaser.Vec2();
- this.acceleration = new Phaser.Vec2();
- this.drag = new Phaser.Vec2();
- this.gravity = new Phaser.Vec2();
- this.maxVelocity = new Phaser.Vec2(10000, 10000);
- this.angularVelocity = 0;
- this.angularAcceleration = 0;
- this.angularDrag = 0;
- this.maxAngular = 10000;
- this.allowCollisions = Phaser.Types.ANY;
- }
- return Body;
- })();
- Physics.Body = Body;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- var AABB = (function () {
- function AABB(game, x, y, width, height) {
- this.type = 0;
- this._vx = 0;
- this._vy = 0;
- this._deltaX = 0;
- this._deltaY = 0;
- this.game = game;
- this.pos = new Phaser.Vec2(x, y);
- this.oldpos = new Phaser.Vec2(x, y);
- this.width = Math.abs(width);
- this.height = Math.abs(height);
- this.velocity = new Phaser.Vec2();
- this.acceleration = new Phaser.Vec2();
- this.bounce = new Phaser.Vec2(0, 0);
- this.drag = new Phaser.Vec2(0, 0);
- this.gravity = new Phaser.Vec2(0, 2);
- this.maxVelocity = new Phaser.Vec2(1000, 1000);
- this.aabbTileProjections = {
- };
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGs] = Phaser.Physics.Projection.AABB22Deg.CollideS;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGb] = Phaser.Physics.Projection.AABB22Deg.CollideB;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_45DEG] = Phaser.Physics.Projection.AABB45Deg.Collide;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGs] = Phaser.Physics.Projection.AABB67Deg.CollideS;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGb] = Phaser.Physics.Projection.AABB67Deg.CollideB;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONCAVE] = Phaser.Physics.Projection.AABBConcave.Collide;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONVEX] = Phaser.Physics.Projection.AABBConvex.Collide;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_FULL] = Phaser.Physics.Projection.AABBFull.Collide;
- this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_HALF] = Phaser.Physics.Projection.AABBHalf.Collide;
- }
- AABB.COL_NONE = 0;
- AABB.COL_AXIS = 1;
- AABB.COL_OTHER = 2;
- AABB.prototype.update = function () {
- this.oldpos.x = this.pos.x;
- this.oldpos.y = this.pos.y;
- this._vx = (this.game.physics.computeVelocity(this.velocity.x, this.gravity.x, this.acceleration.x, this.drag.x, this.maxVelocity.x) - this.velocity.x) / 2;
- this.velocity.x += this._vx;
- this._deltaX = this.velocity.x * this.game.time.physicsElapsed;
- this._vy = (this.game.physics.computeVelocity(this.velocity.y, this.gravity.y, this.acceleration.y, this.drag.y, this.maxVelocity.y) - this.velocity.y) / 2;
- this.velocity.y += this._vy;
- this._deltaY = this.velocity.y * this.game.time.physicsElapsed;
- this.pos.x += this._deltaX;
- this.pos.y += this._deltaY;
- };
- AABB.prototype.FFupdate = function () {
- this.oldpos.x = this.pos.x;
- this.oldpos.y = this.pos.y;
- if(this.acceleration.x != 0) {
- this.velocity.x += (this.acceleration.x / 1000 * this.game.time.delta);
- }
- if(this.acceleration.y != 0) {
- this.velocity.y += (this.acceleration.y / 1000 * this.game.time.delta);
- }
- this._vx = ((this.velocity.x / 1000) * this.game.time.delta);
- this._vy = ((this.velocity.y / 1000) * this.game.time.delta);
- if(this._vx != 0) {
- if(this.drag.x != 0) {
- this._vx * this.drag.x;
- }
- if(this.gravity.x != 0) {
- this._vx * this.gravity.x;
- }
- if(this.velocity.x > this.maxVelocity.x) {
- this.velocity.x = this.maxVelocity.x;
- } else if(this.velocity.x < -this.maxVelocity.x) {
- this.velocity.x = -this.maxVelocity.x;
- }
- }
- if(this._vy != 0) {
- if(this.drag.y != 0) {
- this._vy * this.drag.y;
- }
- if(this.gravity.y != 0) {
- this._vy * this.gravity.y;
- }
- if(this.velocity.y > this.maxVelocity.y) {
- this.velocity.y = this.maxVelocity.y;
- } else if(this.velocity.y < -this.maxVelocity.y) {
- this.velocity.y = -this.maxVelocity.y;
- }
- }
- this.pos.x += this._vx;
- this.pos.y += this._vy;
- };
- AABB.prototype.integrateVerlet = function () {
- var px = this.pos.x;
- var py = this.pos.y;
- var ox = this.oldpos.x;
- var oy = this.oldpos.y;
- this.oldpos.x = this.pos.x;
- this.oldpos.y = this.pos.y;
- this.pos.x += (this.drag.x * px) - (this.drag.x * ox) + this.gravity.x;
- this.pos.y += (this.drag.y * py) - (this.drag.y * oy) + this.gravity.y;
- };
- AABB.prototype.reportCollisionVsWorld = function (px, py, dx, dy, obj) {
- if (typeof obj === "undefined") { obj = null; }
- var dp = (this._vx * dx + this._vy * dy);
- var nx = dp * dx;
- var ny = dp * dy;
- var tx = this._vx - nx;
- var ty = this._vy - ny;
- this.pos.x += px;
- this.pos.y += py;
- if(dp < 0) {
- this.velocity.x += nx;
- this.velocity.y += ny;
- if(dx !== 0) {
- }
- if(dy !== 0) {
- }
- }
- };
- AABB.prototype.collideAABBVsTile = function (tile) {
- var pos = this.pos;
- var c = tile;
- var tx = c.pos.x;
- var ty = c.pos.y;
- var txw = c.xw;
- var tyw = c.yw;
- var dx = pos.x - tx;
- var px = (txw + this.width) - Math.abs(dx);
- if(0 < px) {
- var dy = pos.y - ty;
- var py = (tyw + this.height) - Math.abs(dy);
- if(0 < py) {
- if(px < py) {
- if(dx < 0) {
- px *= -1;
- py = 0;
- } else {
- py = 0;
- }
- } else {
- if(dy < 0) {
- px = 0;
- py *= -1;
- } else {
- px = 0;
- }
- }
- this.resolveBoxTile(px, py, this, c);
- }
- }
- };
- AABB.prototype.collideAABBVsWorldBounds = function () {
- var p = this.pos;
- var xw = this.width;
- var yw = this.height;
- var XMIN = 0;
- var XMAX = 800;
- var YMIN = 0;
- var YMAX = 600;
- var dx = XMIN - (p.x - xw);
- if(0 < dx) {
- this.reportCollisionVsWorld(dx, 0, 1, 0, null);
- } else {
- dx = (p.x + xw) - XMAX;
- if(0 < dx) {
- this.reportCollisionVsWorld(-dx, 0, -1, 0, null);
- }
- }
- var dy = YMIN - (p.y - yw);
- if(0 < dy) {
- this.reportCollisionVsWorld(0, dy, 0, 1, null);
- } else {
- dy = (p.y + yw) - YMAX;
- if(0 < dy) {
- this.reportCollisionVsWorld(0, -dy, 0, -1, null);
- }
- }
- };
- AABB.prototype.resolveBoxTile = function (x, y, box, t) {
- if(0 < t.ID) {
- return this.aabbTileProjections[t.CTYPE](x, y, box, t);
- } else {
- return false;
- }
- };
- AABB.prototype.render = function (context) {
- context.beginPath();
- context.strokeStyle = 'rgb(0,255,0)';
- context.strokeRect(this.pos.x - this.width, this.pos.y - this.height, this.width * 2, this.height * 2);
- context.stroke();
- context.closePath();
- context.fillStyle = 'rgb(0,255,0)';
- context.fillRect(this.pos.x, this.pos.y, 2, 2);
- };
- return AABB;
- })();
- Physics.AABB = AABB;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- var Circle = (function () {
- function Circle(game, x, y, radius) {
- this.type = 1;
- this.game = game;
- this.pos = new Phaser.Vec2(x, y);
- this.oldpos = new Phaser.Vec2(x, y);
- this.radius = radius;
- this.circleTileProjections = {
- };
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGs] = Phaser.Physics.Projection.Circle22Deg.CollideS;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGb] = Phaser.Physics.Projection.Circle22Deg.CollideB;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_45DEG] = Phaser.Physics.Projection.Circle45Deg.Collide;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGs] = Phaser.Physics.Projection.Circle67Deg.CollideS;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGb] = Phaser.Physics.Projection.Circle67Deg.CollideB;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONCAVE] = Phaser.Physics.Projection.CircleConcave.Collide;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONVEX] = Phaser.Physics.Projection.CircleConvex.Collide;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_FULL] = Phaser.Physics.Projection.CircleFull.Collide;
- this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_HALF] = Phaser.Physics.Projection.CircleHalf.Collide;
- }
- Circle.COL_NONE = 0;
- Circle.COL_AXIS = 1;
- Circle.COL_OTHER = 2;
- Circle.prototype.integrateVerlet = function () {
- var d = 1;
- var g = 0.2;
- var p = this.pos;
- var o = this.oldpos;
- var px;
- var py;
- var ox = o.x;
- var oy = o.y;
- o.x = px = p.x;
- o.y = py = p.y;
- p.x += (d * px) - (d * ox);
- p.y += (d * py) - (d * oy) + g;
- };
- Circle.prototype.reportCollisionVsWorld = function (px, py, dx, dy, obj) {
- if (typeof obj === "undefined") { obj = null; }
- var p = this.pos;
- var o = this.oldpos;
- var vx = p.x - o.x;
- var vy = p.y - o.y;
- var dp = (vx * dx + vy * dy);
- var nx = dp * dx;
- var ny = dp * dy;
- var tx = vx - nx;
- var ty = vy - ny;
- var b, bx, by, f, fx, fy;
- if(dp < 0) {
- f = 0.05;
- fx = tx * f;
- fy = ty * f;
- b = 1 + 0.3;
- bx = (nx * b);
- by = (ny * b);
- } else {
- bx = by = fx = fy = 0;
- }
- p.x += px;
- p.y += py;
- o.x += px + bx + fx;
- o.y += py + by + fy;
- };
- Circle.prototype.collideCircleVsWorldBounds = function () {
- var p = this.pos;
- var r = this.radius;
- var XMIN = 0;
- var XMAX = 800;
- var YMIN = 0;
- var YMAX = 600;
- var dx = XMIN - (p.x - r);
- if(0 < dx) {
- this.reportCollisionVsWorld(dx, 0, 1, 0, null);
- } else {
- dx = (p.x + r) - XMAX;
- if(0 < dx) {
- this.reportCollisionVsWorld(-dx, 0, -1, 0, null);
- }
- }
- var dy = YMIN - (p.y - r);
- if(0 < dy) {
- this.reportCollisionVsWorld(0, dy, 0, 1, null);
- } else {
- dy = (p.y + r) - YMAX;
- if(0 < dy) {
- this.reportCollisionVsWorld(0, -dy, 0, -1, null);
- }
- }
- };
- Circle.prototype.render = function (context) {
- context.beginPath();
- context.strokeStyle = 'rgb(0,255,0)';
- context.arc(this.pos.x, this.pos.y, this.radius, 0, Math.PI * 2);
- context.stroke();
- context.closePath();
- if(this.oH == 1) {
- context.beginPath();
- context.strokeStyle = 'rgb(255,0,0)';
- context.moveTo(this.pos.x - this.radius, this.pos.y - this.radius);
- context.lineTo(this.pos.x - this.radius, this.pos.y + this.radius);
- context.stroke();
- context.closePath();
- } else if(this.oH == -1) {
- context.beginPath();
- context.strokeStyle = 'rgb(255,0,0)';
- context.moveTo(this.pos.x + this.radius, this.pos.y - this.radius);
- context.lineTo(this.pos.x + this.radius, this.pos.y + this.radius);
- context.stroke();
- context.closePath();
- }
- if(this.oV == 1) {
- context.beginPath();
- context.strokeStyle = 'rgb(255,0,0)';
- context.moveTo(this.pos.x - this.radius, this.pos.y - this.radius);
- context.lineTo(this.pos.x + this.radius, this.pos.y - this.radius);
- context.stroke();
- context.closePath();
- } else if(this.oV == -1) {
- context.beginPath();
- context.strokeStyle = 'rgb(255,0,0)';
- context.moveTo(this.pos.x - this.radius, this.pos.y + this.radius);
- context.lineTo(this.pos.x + this.radius, this.pos.y + this.radius);
- context.stroke();
- context.closePath();
- }
- };
- Circle.prototype.collideCircleVsTile = function (tile) {
- var pos = this.pos;
- var r = this.radius;
- var c = tile;
- var tx = c.pos.x;
- var ty = c.pos.y;
- var txw = c.xw;
- var tyw = c.yw;
- var dx = pos.x - tx;
- var px = (txw + r) - Math.abs(dx);
- if(0 < px) {
- var dy = pos.y - ty;
- var py = (tyw + r) - Math.abs(dy);
- if(0 < py) {
- this.oH = 0;
- this.oV = 0;
- if(dx < -txw) {
- this.oH = -1;
- } else if(txw < dx) {
- this.oH = 1;
- }
- if(dy < -tyw) {
- this.oV = -1;
- } else if(tyw < dy) {
- this.oV = 1;
- }
- this.resolveCircleTile(px, py, this.oH, this.oV, this, c);
- }
- }
- };
- Circle.prototype.resolveCircleTile = function (x, y, oH, oV, obj, t) {
- if(0 < t.ID) {
- return this.circleTileProjections[t.CTYPE](x, y, oH, oV, obj, t);
- } else {
- console.log("resolveCircleTile() was called with an empty (or unknown) tile!: ID=" + t.ID + " (" + t.i + "," + t.j + ")");
- return false;
- }
- };
- return Circle;
- })();
- Physics.Circle = Circle;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- var TileMapCell = (function () {
- function TileMapCell(game, x, y, xw, yw) {
- this.game = game;
- this.ID = TileMapCell.TID_EMPTY;
- this.CTYPE = TileMapCell.CTYPE_EMPTY;
- this.pos = new Phaser.Vec2(x, y);
- this.xw = xw;
- this.yw = yw;
- this.minx = this.pos.x - this.xw;
- this.maxx = this.pos.x + this.xw;
- this.miny = this.pos.y - this.yw;
- this.maxy = this.pos.y + this.yw;
- this.signx = 0;
- this.signy = 0;
- this.sx = 0;
- this.sy = 0;
- }
- TileMapCell.TID_EMPTY = 0;
- TileMapCell.TID_FULL = 1;
- TileMapCell.TID_45DEGpn = 2;
- TileMapCell.TID_45DEGnn = 3;
- TileMapCell.TID_45DEGnp = 4;
- TileMapCell.TID_45DEGpp = 5;
- TileMapCell.TID_CONCAVEpn = 6;
- TileMapCell.TID_CONCAVEnn = 7;
- TileMapCell.TID_CONCAVEnp = 8;
- TileMapCell.TID_CONCAVEpp = 9;
- TileMapCell.TID_CONVEXpn = 10;
- TileMapCell.TID_CONVEXnn = 11;
- TileMapCell.TID_CONVEXnp = 12;
- TileMapCell.TID_CONVEXpp = 13;
- TileMapCell.TID_22DEGpnS = 14;
- TileMapCell.TID_22DEGnnS = 15;
- TileMapCell.TID_22DEGnpS = 16;
- TileMapCell.TID_22DEGppS = 17;
- TileMapCell.TID_22DEGpnB = 18;
- TileMapCell.TID_22DEGnnB = 19;
- TileMapCell.TID_22DEGnpB = 20;
- TileMapCell.TID_22DEGppB = 21;
- TileMapCell.TID_67DEGpnS = 22;
- TileMapCell.TID_67DEGnnS = 23;
- TileMapCell.TID_67DEGnpS = 24;
- TileMapCell.TID_67DEGppS = 25;
- TileMapCell.TID_67DEGpnB = 26;
- TileMapCell.TID_67DEGnnB = 27;
- TileMapCell.TID_67DEGnpB = 28;
- TileMapCell.TID_67DEGppB = 29;
- TileMapCell.TID_HALFd = 30;
- TileMapCell.TID_HALFr = 31;
- TileMapCell.TID_HALFu = 32;
- TileMapCell.TID_HALFl = 33;
- TileMapCell.CTYPE_EMPTY = 0;
- TileMapCell.CTYPE_FULL = 1;
- TileMapCell.CTYPE_45DEG = 2;
- TileMapCell.CTYPE_CONCAVE = 6;
- TileMapCell.CTYPE_CONVEX = 10;
- TileMapCell.CTYPE_22DEGs = 14;
- TileMapCell.CTYPE_22DEGb = 18;
- TileMapCell.CTYPE_67DEGs = 22;
- TileMapCell.CTYPE_67DEGb = 26;
- TileMapCell.CTYPE_HALF = 30;
- TileMapCell.prototype.SetState = function (ID) {
- if(ID == TileMapCell.TID_EMPTY) {
- this.Clear();
- } else {
- this.ID = ID;
- this.UpdateType();
- }
- return this;
- };
- TileMapCell.prototype.Clear = function () {
- this.ID = TileMapCell.TID_EMPTY;
- this.UpdateType();
- };
- TileMapCell.prototype.render = function (context) {
- context.beginPath();
- context.strokeStyle = 'rgb(255,255,0)';
- context.strokeRect(this.minx, this.miny, this.xw * 2, this.yw * 2);
- context.strokeRect(this.pos.x, this.pos.y, 2, 2);
- context.closePath();
- };
- TileMapCell.prototype.UpdateType = function () {
- if(0 < this.ID) {
- if(this.ID < TileMapCell.CTYPE_45DEG) {
- this.CTYPE = TileMapCell.CTYPE_FULL;
- this.signx = 0;
- this.signy = 0;
- this.sx = 0;
- this.sy = 0;
- } else if(this.ID < TileMapCell.CTYPE_CONCAVE) {
- this.CTYPE = TileMapCell.CTYPE_45DEG;
- if(this.ID == TileMapCell.TID_45DEGpn) {
- console.log('set tile as 45deg pn');
- this.signx = 1;
- this.signy = -1;
- this.sx = this.signx / Math.SQRT2;
- this.sy = this.signy / Math.SQRT2;
- } else if(this.ID == TileMapCell.TID_45DEGnn) {
- this.signx = -1;
- this.signy = -1;
- this.sx = this.signx / Math.SQRT2;
- this.sy = this.signy / Math.SQRT2;
- } else if(this.ID == TileMapCell.TID_45DEGnp) {
- this.signx = -1;
- this.signy = 1;
- this.sx = this.signx / Math.SQRT2;
- this.sy = this.signy / Math.SQRT2;
- } else if(this.ID == TileMapCell.TID_45DEGpp) {
- this.signx = 1;
- this.signy = 1;
- this.sx = this.signx / Math.SQRT2;
- this.sy = this.signy / Math.SQRT2;
- } else {
- return false;
- }
- } else if(this.ID < TileMapCell.CTYPE_CONVEX) {
- this.CTYPE = TileMapCell.CTYPE_CONCAVE;
- if(this.ID == TileMapCell.TID_CONCAVEpn) {
- this.signx = 1;
- this.signy = -1;
- this.sx = 0;
- this.sy = 0;
- } else if(this.ID == TileMapCell.TID_CONCAVEnn) {
- this.signx = -1;
- this.signy = -1;
- this.sx = 0;
- this.sy = 0;
- } else if(this.ID == TileMapCell.TID_CONCAVEnp) {
- this.signx = -1;
- this.signy = 1;
- this.sx = 0;
- this.sy = 0;
- } else if(this.ID == TileMapCell.TID_CONCAVEpp) {
- this.signx = 1;
- this.signy = 1;
- this.sx = 0;
- this.sy = 0;
- } else {
- return false;
- }
- } else if(this.ID < TileMapCell.CTYPE_22DEGs) {
- this.CTYPE = TileMapCell.CTYPE_CONVEX;
- if(this.ID == TileMapCell.TID_CONVEXpn) {
- this.signx = 1;
- this.signy = -1;
- this.sx = 0;
- this.sy = 0;
- } else if(this.ID == TileMapCell.TID_CONVEXnn) {
- this.signx = -1;
- this.signy = -1;
- this.sx = 0;
- this.sy = 0;
- } else if(this.ID == TileMapCell.TID_CONVEXnp) {
- this.signx = -1;
- this.signy = 1;
- this.sx = 0;
- this.sy = 0;
- } else if(this.ID == TileMapCell.TID_CONVEXpp) {
- this.signx = 1;
- this.signy = 1;
- this.sx = 0;
- this.sy = 0;
- } else {
- return false;
- }
- } else if(this.ID < TileMapCell.CTYPE_22DEGb) {
- this.CTYPE = TileMapCell.CTYPE_22DEGs;
- if(this.ID == TileMapCell.TID_22DEGpnS) {
- this.signx = 1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else if(this.ID == TileMapCell.TID_22DEGnnS) {
- this.signx = -1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else if(this.ID == TileMapCell.TID_22DEGnpS) {
- this.signx = -1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else if(this.ID == TileMapCell.TID_22DEGppS) {
- this.signx = 1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else {
- return false;
- }
- } else if(this.ID < TileMapCell.CTYPE_67DEGs) {
- this.CTYPE = TileMapCell.CTYPE_22DEGb;
- if(this.ID == TileMapCell.TID_22DEGpnB) {
- this.signx = 1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else if(this.ID == TileMapCell.TID_22DEGnnB) {
- this.signx = -1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else if(this.ID == TileMapCell.TID_22DEGnpB) {
- this.signx = -1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else if(this.ID == TileMapCell.TID_22DEGppB) {
- this.signx = 1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 1) / slen;
- this.sy = (this.signy * 2) / slen;
- } else {
- return false;
- }
- } else if(this.ID < TileMapCell.CTYPE_67DEGb) {
- this.CTYPE = TileMapCell.CTYPE_67DEGs;
- if(this.ID == TileMapCell.TID_67DEGpnS) {
- this.signx = 1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else if(this.ID == TileMapCell.TID_67DEGnnS) {
- this.signx = -1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else if(this.ID == TileMapCell.TID_67DEGnpS) {
- this.signx = -1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else if(this.ID == TileMapCell.TID_67DEGppS) {
- this.signx = 1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else {
- return false;
- }
- } else if(this.ID < TileMapCell.CTYPE_HALF) {
- this.CTYPE = TileMapCell.CTYPE_67DEGb;
- if(this.ID == TileMapCell.TID_67DEGpnB) {
- this.signx = 1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else if(this.ID == TileMapCell.TID_67DEGnnB) {
- this.signx = -1;
- this.signy = -1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else if(this.ID == TileMapCell.TID_67DEGnpB) {
- this.signx = -1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else if(this.ID == TileMapCell.TID_67DEGppB) {
- this.signx = 1;
- this.signy = 1;
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- this.sx = (this.signx * 2) / slen;
- this.sy = (this.signy * 1) / slen;
- } else {
- return false;
- }
- } else {
- this.CTYPE = TileMapCell.CTYPE_HALF;
- if(this.ID == TileMapCell.TID_HALFd) {
- this.signx = 0;
- this.signy = -1;
- this.sx = this.signx;
- this.sy = this.signy;
- } else if(this.ID == TileMapCell.TID_HALFu) {
- this.signx = 0;
- this.signy = 1;
- this.sx = this.signx;
- this.sy = this.signy;
- } else if(this.ID == TileMapCell.TID_HALFl) {
- this.signx = 1;
- this.signy = 0;
- this.sx = this.signx;
- this.sy = this.signy;
- } else if(this.ID == TileMapCell.TID_HALFr) {
- this.signx = -1;
- this.signy = 0;
- this.sx = this.signx;
- this.sy = this.signy;
- } else {
- return false;
- }
- }
- } else {
- this.CTYPE = TileMapCell.CTYPE_EMPTY;
- this.signx = 0;
- this.signy = 0;
- this.sx = 0;
- this.sy = 0;
- }
- };
- return TileMapCell;
- })();
- Physics.TileMapCell = TileMapCell;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var AABB22Deg = (function () {
- function AABB22Deg() { }
- AABB22Deg.CollideS = function CollideS(x, y, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var py = obj.pos.y - (signy * obj.height);
- var penY = t.pos.y - py;
- if(0 < (penY * signy)) {
- var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x + (signx * t.xw));
- var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y - (signy * t.yw));
- var sx = t.sx;
- var sy = t.sy;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP = Math.sqrt(x * x + y * y);
- var aY = Math.abs(penY);
- if(lenP < lenN) {
- if(aY < lenP) {
- obj.reportCollisionVsWorld(0, penY, 0, penY / aY, t);
- return Phaser.Physics.AABB.COL_OTHER;
- } else {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- }
- } else {
- if(aY < lenN) {
- obj.reportCollisionVsWorld(0, penY, 0, penY / aY, t);
- return Phaser.Physics.AABB.COL_OTHER;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- }
- }
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- AABB22Deg.CollideB = function CollideB(x, y, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x - (signx * t.xw));
- var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y + (signy * t.yw));
- var sx = t.sx;
- var sy = t.sy;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP = Math.sqrt(x * x + y * y);
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- return AABB22Deg;
- })();
- Projection.AABB22Deg = AABB22Deg;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var AABB45Deg = (function () {
- function AABB45Deg() { }
- AABB45Deg.Collide = function Collide(x, y, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var ox = (obj.pos.x - (signx * obj.width)) - t.pos.x;
- var oy = (obj.pos.y - (signy * obj.height)) - t.pos.y;
- var sx = t.sx;
- var sy = t.sy;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP = Math.sqrt(x * x + y * y);
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- return AABB45Deg;
- })();
- Projection.AABB45Deg = AABB45Deg;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var AABB67Deg = (function () {
- function AABB67Deg() { }
- AABB67Deg.CollideS = function CollideS(x, y, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var px = obj.pos.x - (signx * obj.width);
- var penX = t.pos.x - px;
- if(0 < (penX * signx)) {
- var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x - (signx * t.xw));
- var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y + (signy * t.yw));
- var sx = t.sx;
- var sy = t.sy;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP = Math.sqrt(x * x + y * y);
- var aX = Math.abs(penX);
- if(lenP < lenN) {
- if(aX < lenP) {
- obj.reportCollisionVsWorld(penX, 0, penX / aX, 0, t);
- return Phaser.Physics.AABB.COL_OTHER;
- } else {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- }
- } else {
- if(aX < lenN) {
- obj.reportCollisionVsWorld(penX, 0, penX / aX, 0, t);
- return Phaser.Physics.AABB.COL_OTHER;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- }
- }
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- AABB67Deg.CollideB = function CollideB(x, y, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x + (signx * t.xw));
- var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y - (signy * t.yw));
- var sx = t.sx;
- var sy = t.sy;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP = Math.sqrt(x * x + y * y);
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- return AABB67Deg;
- })();
- Projection.AABB67Deg = AABB67Deg;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var AABBConcave = (function () {
- function AABBConcave() { }
- AABBConcave.Collide = function Collide(x, y, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var ox = (t.pos.x + (signx * t.xw)) - (obj.pos.x - (signx * obj.width));
- var oy = (t.pos.y + (signy * t.yw)) - (obj.pos.y - (signy * obj.height));
- var twid = t.xw * 2;
- var rad = Math.sqrt(twid * twid + 0);
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = len - rad;
- if(0 < pen) {
- var lenP = Math.sqrt(x * x + y * y);
- if(lenP < pen) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- } else {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- return AABBConcave;
- })();
- Projection.AABBConcave = AABBConcave;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var AABBConvex = (function () {
- function AABBConvex() { }
- AABBConvex.Collide = function Collide(x, y, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x - (signx * t.xw));
- var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y - (signy * t.yw));
- var len = Math.sqrt(ox * ox + oy * oy);
- var twid = t.xw * 2;
- var rad = Math.sqrt(twid * twid + 0);
- var pen = rad - len;
- if(((signx * ox) < 0) || ((signy * oy) < 0)) {
- var lenP = Math.sqrt(x * x + y * y);
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- } else if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- return AABBConvex;
- })();
- Projection.AABBConvex = AABBConvex;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var AABBFull = (function () {
- function AABBFull() { }
- AABBFull.Collide = function Collide(x, y, obj, t) {
- var l = Math.sqrt(x * x + y * y);
- obj.reportCollisionVsWorld(x, y, x / l, y / l, t);
- return Phaser.Physics.AABB.COL_AXIS;
- };
- return AABBFull;
- })();
- Projection.AABBFull = AABBFull;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var AABBHalf = (function () {
- function AABBHalf() { }
- AABBHalf.Collide = function Collide(x, y, obj, t) {
- var sx = t.signx;
- var sy = t.signy;
- var ox = (obj.pos.x - (sx * obj.width)) - t.pos.x;
- var oy = (obj.pos.y - (sy * obj.height)) - t.pos.y;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP = Math.sqrt(x * x + y * y);
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.AABB.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.signx, t.signy, t);
- return Phaser.Physics.AABB.COL_OTHER;
- }
- }
- return Phaser.Physics.AABB.COL_NONE;
- };
- return AABBHalf;
- })();
- Projection.AABBHalf = AABBHalf;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var Circle22Deg = (function () {
- function Circle22Deg() { }
- Circle22Deg.CollideS = function CollideS(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- if(0 < (signy * oV)) {
- return Phaser.Physics.Circle.COL_NONE;
- } else if(oH == 0) {
- if(oV == 0) {
- var sx = t.sx;
- var sy = t.sy;
- var r = obj.radius;
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - t.pos.y;
- var perp = (ox * -sy) + (oy * sx);
- if(0 < (perp * signx * signy)) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = r - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- ox -= r * sx;
- oy -= r * sy;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP;
- if(x < y) {
- lenP = x;
- y = 0;
- if((obj.pos.x - t.pos.x) < 0) {
- x *= -1;
- }
- } else {
- lenP = y;
- x = 0;
- if((obj.pos.y - t.pos.y) < 0) {
- y *= -1;
- }
- }
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- } else {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- }
- } else if(oV == 0) {
- if((signx * oH) < 0) {
- var vx = t.pos.x - (signx * t.xw);
- var vy = t.pos.y;
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- if((dy * signy) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- var sx = t.sx;
- var sy = t.sy;
- var ox = obj.pos.x - (t.pos.x + (oH * t.xw));
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var perp = (ox * -sy) + (oy * sx);
- if((perp * signx * signy) < 0) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- Circle22Deg.CollideB = function CollideB(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var sx;
- var sy;
- if(oH == 0) {
- if(oV == 0) {
- sx = t.sx;
- sy = t.sy;
- var r = obj.radius;
- var ox = (obj.pos.x - (sx * r)) - (t.pos.x - (signx * t.xw));
- var oy = (obj.pos.y - (sy * r)) - (t.pos.y + (signy * t.yw));
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP;
- if(x < y) {
- lenP = x;
- y = 0;
- if((obj.pos.x - t.pos.x) < 0) {
- x *= -1;
- }
- } else {
- lenP = y;
- x = 0;
- if((obj.pos.y - t.pos.y) < 0) {
- y *= -1;
- }
- }
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- if((signy * oV) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- sx = t.sx;
- sy = t.sy;
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y + (signy * t.yw));
- var perp = (ox * -sy) + (oy * sx);
- if(0 < (perp * signx * signy)) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- }
- } else if(oV == 0) {
- if((signx * oH) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var ox = obj.pos.x - (t.pos.x + (signx * t.xw));
- var oy = obj.pos.y - t.pos.y;
- if((oy * signy) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- sx = t.sx;
- sy = t.sy;
- var perp = (ox * -sy) + (oy * sx);
- if((perp * signx * signy) < 0) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- }
- } else {
- if(0 < ((signx * oH) + (signy * oV))) {
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- sx = (signx * 1) / slen;
- sy = (signy * 2) / slen;
- var r = obj.radius;
- var ox = (obj.pos.x - (sx * r)) - (t.pos.x - (signx * t.xw));
- var oy = (obj.pos.y - (sy * r)) - (t.pos.y + (signy * t.yw));
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- obj.reportCollisionVsWorld(-sx * dp, -sy * dp, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- return Phaser.Physics.Circle.COL_NONE;
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- return Circle22Deg;
- })();
- Projection.Circle22Deg = Circle22Deg;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var Circle45Deg = (function () {
- function Circle45Deg() { }
- Circle45Deg.Collide = function Collide(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var lenP;
- if(oH == 0) {
- if(oV == 0) {
- var sx = t.sx;
- var sy = t.sy;
- var ox = (obj.pos.x - (sx * obj.radius)) - t.pos.x;
- var oy = (obj.pos.y - (sy * obj.radius)) - t.pos.y;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- if(x < y) {
- lenP = x;
- y = 0;
- if((obj.pos.x - t.pos.x) < 0) {
- x *= -1;
- }
- } else {
- lenP = y;
- x = 0;
- if((obj.pos.y - t.pos.y) < 0) {
- y *= -1;
- }
- }
- var lenN = Math.sqrt(sx * sx + sy * sy);
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- if((signy * oV) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var sx = t.sx;
- var sy = t.sy;
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y + (oV * t.yw));
- var perp = (ox * -sy) + (oy * sx);
- if(0 < (perp * signx * signy)) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- }
- } else if(oV == 0) {
- if((signx * oH) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var sx = t.sx;
- var sy = t.sy;
- var ox = obj.pos.x - (t.pos.x + (oH * t.xw));
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var perp = (ox * -sy) + (oy * sx);
- if((perp * signx * signy) < 0) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- } else {
- if(0 < ((signx * oH) + (signy * oV))) {
- return Phaser.Physics.Circle.COL_NONE;
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- return Circle45Deg;
- })();
- Projection.Circle45Deg = Circle45Deg;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var Circle67Deg = (function () {
- function Circle67Deg() { }
- Circle67Deg.CollideS = function CollideS(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var sx;
- var sy;
- if(0 < (signx * oH)) {
- return Phaser.Physics.Circle.COL_NONE;
- } else if(oH == 0) {
- if(oV == 0) {
- sx = t.sx;
- sy = t.sy;
- var r = obj.radius;
- var ox = obj.pos.x - t.pos.x;
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var perp = (ox * -sy) + (oy * sx);
- if((perp * signx * signy) < 0) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = r - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- ox -= r * sx;
- oy -= r * sy;
- var dp = (ox * sx) + (oy * sy);
- var lenP;
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- if(x < y) {
- lenP = x;
- y = 0;
- if((obj.pos.x - t.pos.x) < 0) {
- x *= -1;
- }
- } else {
- lenP = y;
- x = 0;
- if((obj.pos.y - t.pos.y) < 0) {
- y *= -1;
- }
- }
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- } else {
- if((signy * oV) < 0) {
- var vx = t.pos.x;
- var vy = t.pos.y - (signy * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- if((dx * signx) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- sx = t.sx;
- sy = t.sy;
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y + (oV * t.yw));
- var perp = (ox * -sy) + (oy * sx);
- if(0 < (perp * signx * signy)) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- }
- } else if(oV == 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- Circle67Deg.CollideB = function CollideB(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var sx;
- var sy;
- if(oH == 0) {
- if(oV == 0) {
- sx = t.sx;
- sy = t.sy;
- var r = obj.radius;
- var ox = (obj.pos.x - (sx * r)) - (t.pos.x + (signx * t.xw));
- var oy = (obj.pos.y - (sy * r)) - (t.pos.y - (signy * t.yw));
- var dp = (ox * sx) + (oy * sy);
- var lenP;
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- if(x < y) {
- lenP = x;
- y = 0;
- if((obj.pos.x - t.pos.x) < 0) {
- x *= -1;
- }
- } else {
- lenP = y;
- x = 0;
- if((obj.pos.y - t.pos.y) < 0) {
- y *= -1;
- }
- }
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- if((signy * oV) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var ox = obj.pos.x - t.pos.x;
- var oy = obj.pos.y - (t.pos.y + (signy * t.yw));
- if((ox * signx) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- sx = t.sx;
- sy = t.sy;
- var perp = (ox * -sy) + (oy * sx);
- if(0 < (perp * signx * signy)) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- }
- }
- } else if(oV == 0) {
- if((signx * oH) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var slen = Math.sqrt(2 * 2 + 1 * 1);
- var sx = (signx * 2) / slen;
- var sy = (signy * 1) / slen;
- var ox = obj.pos.x - (t.pos.x + (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var perp = (ox * -sy) + (oy * sx);
- if((perp * signx * signy) < 0) {
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = obj.radius - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var dp = (ox * sx) + (oy * sy);
- var pen = obj.radius - Math.abs(dp);
- if(0 < pen) {
- obj.reportCollisionVsWorld(sx * pen, sy * pen, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- } else {
- if(0 < ((signx * oH) + (signy * oV))) {
- sx = t.sx;
- sy = t.sy;
- var r = obj.radius;
- var ox = (obj.pos.x - (sx * r)) - (t.pos.x + (signx * t.xw));
- var oy = (obj.pos.y - (sy * r)) - (t.pos.y - (signy * t.yw));
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- obj.reportCollisionVsWorld(-sx * dp, -sy * dp, t.sx, t.sy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- return Phaser.Physics.Circle.COL_NONE;
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- return Circle67Deg;
- })();
- Projection.Circle67Deg = Circle67Deg;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var CircleConcave = (function () {
- function CircleConcave() { }
- CircleConcave.Collide = function Collide(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var lenP;
- if(oH == 0) {
- if(oV == 0) {
- var ox = (t.pos.x + (signx * t.xw)) - obj.pos.x;
- var oy = (t.pos.y + (signy * t.yw)) - obj.pos.y;
- var twid = t.xw * 2;
- var trad = Math.sqrt(twid * twid + 0);
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = (len + obj.radius) - trad;
- if(0 < pen) {
- if(x < y) {
- lenP = x;
- y = 0;
- if((obj.pos.x - t.pos.x) < 0) {
- x *= -1;
- }
- } else {
- lenP = y;
- x = 0;
- if((obj.pos.y - t.pos.y) < 0) {
- y *= -1;
- }
- }
- if(lenP < pen) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- return Phaser.Physics.Circle.COL_NONE;
- }
- } else {
- if((signy * oV) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var vx = t.pos.x - (signx * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = 0;
- dy = oV;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- } else if(oV == 0) {
- if((signx * oH) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y - (signy * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH;
- dy = 0;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- if(0 < ((signx * oH) + (signy * oV))) {
- return Phaser.Physics.Circle.COL_NONE;
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- return CircleConcave;
- })();
- Projection.CircleConcave = CircleConcave;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var CircleConvex = (function () {
- function CircleConvex() { }
- CircleConvex.Collide = function Collide(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var lenP;
- if(oH == 0) {
- if(oV == 0) {
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var twid = t.xw * 2;
- var trad = Math.sqrt(twid * twid + 0);
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = (trad + obj.radius) - len;
- if(0 < pen) {
- if(x < y) {
- lenP = x;
- y = 0;
- if((obj.pos.x - t.pos.x) < 0) {
- x *= -1;
- }
- } else {
- lenP = y;
- x = 0;
- if((obj.pos.y - t.pos.y) < 0) {
- y *= -1;
- }
- }
- if(lenP < pen) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- if((signy * oV) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var twid = t.xw * 2;
- var trad = Math.sqrt(twid * twid + 0);
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = (trad + obj.radius) - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- } else if(oV == 0) {
- if((signx * oH) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var twid = t.xw * 2;
- var trad = Math.sqrt(twid * twid + 0);
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = (trad + obj.radius) - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- if(0 < ((signx * oH) + (signy * oV))) {
- var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
- var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
- var twid = t.xw * 2;
- var trad = Math.sqrt(twid * twid + 0);
- var len = Math.sqrt(ox * ox + oy * oy);
- var pen = (trad + obj.radius) - len;
- if(0 < pen) {
- ox /= len;
- oy /= len;
- obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- return CircleConvex;
- })();
- Projection.CircleConvex = CircleConvex;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var CircleFull = (function () {
- function CircleFull() { }
- CircleFull.Collide = function Collide(x, y, oH, oV, obj, t) {
- if(oH == 0) {
- if(oV == 0) {
- if(x < y) {
- var dx = obj.pos.x - t.pos.x;
- if(dx < 0) {
- obj.reportCollisionVsWorld(-x, 0, -1, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(x, 0, 1, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- }
- } else {
- var dy = obj.pos.y - t.pos.y;
- if(dy < 0) {
- obj.reportCollisionVsWorld(0, -y, 0, -1, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(0, y, 0, 1, t);
- return Phaser.Physics.Circle.COL_AXIS;
- }
- }
- } else {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- }
- } else if(oV == 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- return CircleFull;
- })();
- Projection.CircleFull = CircleFull;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Physics) {
- (function (Projection) {
- var CircleHalf = (function () {
- function CircleHalf() { }
- CircleHalf.Collide = function Collide(x, y, oH, oV, obj, t) {
- var signx = t.signx;
- var signy = t.signy;
- var celldp = (oH * signx + oV * signy);
- if(0 < celldp) {
- return Phaser.Physics.Circle.COL_NONE;
- } else if(oH == 0) {
- if(oV == 0) {
- var r = obj.radius;
- var ox = (obj.pos.x - (signx * r)) - t.pos.x;
- var oy = (obj.pos.y - (signy * r)) - t.pos.y;
- var sx = signx;
- var sy = signy;
- var dp = (ox * sx) + (oy * sy);
- if(dp < 0) {
- sx *= -dp;
- sy *= -dp;
- var lenN = Math.sqrt(sx * sx + sy * sy);
- var lenP = Math.sqrt(x * x + y * y);
- if(lenP < lenN) {
- obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- obj.reportCollisionVsWorld(sx, sy, t.signx, t.signy);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- if(celldp == 0) {
- var r = obj.radius;
- var dx = obj.pos.x - t.pos.x;
- if((dx * signx) < 0) {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var dy = obj.pos.y - (t.pos.y + oV * t.yw);
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = signx / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
- return Phaser.Physics.Circle.COL_AXIS;
- }
- }
- } else if(oV == 0) {
- if(celldp == 0) {
- var r = obj.radius;
- var dy = obj.pos.y - t.pos.y;
- if((dy * signy) < 0) {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- } else {
- var dx = obj.pos.x - (t.pos.x + oH * t.xw);
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = signx / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- } else {
- obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
- return Phaser.Physics.Circle.COL_AXIS;
- }
- } else {
- var vx = t.pos.x + (oH * t.xw);
- var vy = t.pos.y + (oV * t.yw);
- var dx = obj.pos.x - vx;
- var dy = obj.pos.y - vy;
- var len = Math.sqrt(dx * dx + dy * dy);
- var pen = obj.radius - len;
- if(0 < pen) {
- if(len == 0) {
- dx = oH / Math.SQRT2;
- dy = oV / Math.SQRT2;
- } else {
- dx /= len;
- dy /= len;
- }
- obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
- return Phaser.Physics.Circle.COL_OTHER;
- }
- }
- return Phaser.Physics.Circle.COL_NONE;
- };
- return CircleHalf;
- })();
- Projection.CircleHalf = CircleHalf;
- })(Physics.Projection || (Physics.Projection = {}));
- var Projection = Physics.Projection;
- })(Phaser.Physics || (Phaser.Physics = {}));
- var Physics = Phaser.Physics;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Components) {
- var Events = (function () {
- function Events(parent) {
- this.game = parent.game;
- this._parent = parent;
- this.onAddedToGroup = new Phaser.Signal();
- this.onRemovedFromGroup = new Phaser.Signal();
- this.onKilled = new Phaser.Signal();
- this.onRevived = new Phaser.Signal();
- this.onOutOfBounds = new Phaser.Signal();
- }
- return Events;
- })();
- Components.Events = Events;
- })(Phaser.Components || (Phaser.Components = {}));
- var Components = Phaser.Components;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Sprite = (function () {
- function Sprite(game, x, y, key, frame) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof key === "undefined") { key = null; }
- if (typeof frame === "undefined") { frame = null; }
- this.modified = false;
- this.x = 0;
- this.y = 0;
- this.z = -1;
- this.renderOrderID = 0;
- this.game = game;
- this.type = Phaser.Types.SPRITE;
- this.exists = true;
- this.active = true;
- this.visible = true;
- this.alive = true;
- this.x = x;
- this.y = y;
- this.z = -1;
- this.group = null;
- this.name = '';
- this.events = new Phaser.Components.Events(this);
- this.animations = new Phaser.Components.AnimationManager(this);
- this.input = new Phaser.Components.InputHandler(this);
- this.texture = new Phaser.Display.Texture(this);
- this.transform = new Phaser.Components.TransformManager(this);
- if(key !== null) {
- this.texture.loadImage(key, false);
- } else {
- this.texture.opaque = true;
- }
- if(frame !== null) {
- if(typeof frame == 'string') {
- this.frameName = frame;
- } else {
- this.frame = frame;
- }
- }
- this.worldView = new Phaser.Rectangle(x, y, this.width, this.height);
- this.cameraView = new Phaser.Rectangle(x, y, this.width, this.height);
- this.transform.setCache();
- this.outOfBounds = false;
- this.outOfBoundsAction = Phaser.Types.OUT_OF_BOUNDS_PERSIST;
- this.scale = this.transform.scale;
- this.alpha = this.texture.alpha;
- this.origin = this.transform.origin;
- this.crop = this.texture.crop;
- }
- Object.defineProperty(Sprite.prototype, "rotation", {
- get: function () {
- return this.transform.rotation;
- },
- set: function (value) {
- this.transform.rotation = this.game.math.wrap(value, 360, 0);
- if(this.body) {
- }
- },
- enumerable: true,
- configurable: true
- });
- Sprite.prototype.bringToTop = function () {
- if(this.group) {
- this.group.bringToTop(this);
- }
- };
- Object.defineProperty(Sprite.prototype, "alpha", {
- get: function () {
- return this.texture.alpha;
- },
- set: function (value) {
- this.texture.alpha = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Sprite.prototype, "frame", {
- get: function () {
- return this.animations.frame;
- },
- set: function (value) {
- this.animations.frame = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Sprite.prototype, "frameName", {
- get: function () {
- return this.animations.frameName;
- },
- set: function (value) {
- this.animations.frameName = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Sprite.prototype, "width", {
- get: function () {
- return this.texture.width * this.transform.scale.x;
- },
- set: function (value) {
- this.transform.scale.x = value / this.texture.width;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Sprite.prototype, "height", {
- get: function () {
- return this.texture.height * this.transform.scale.y;
- },
- set: function (value) {
- this.transform.scale.y = value / this.texture.height;
- },
- enumerable: true,
- configurable: true
- });
- Sprite.prototype.preUpdate = function () {
- this.transform.update();
- if(this.transform.scrollFactor.x != 1 && this.transform.scrollFactor.x != 0) {
- this.worldView.x = (this.x * this.transform.scrollFactor.x) - (this.width * this.transform.origin.x);
- } else {
- this.worldView.x = this.x - (this.width * this.transform.origin.x);
- }
- if(this.transform.scrollFactor.y != 1 && this.transform.scrollFactor.y != 0) {
- this.worldView.y = (this.y * this.transform.scrollFactor.y) - (this.height * this.transform.origin.y);
- } else {
- this.worldView.y = this.y - (this.height * this.transform.origin.y);
- }
- this.worldView.width = this.width;
- this.worldView.height = this.height;
- if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
- this.modified = true;
- }
- };
- Sprite.prototype.update = function () {
- };
- Sprite.prototype.postUpdate = function () {
- this.animations.update();
- this.checkBounds();
- if(this.modified == true && this.transform.scale.equals(1) && this.transform.skew.equals(0) && this.transform.rotation == 0 && this.transform.rotationOffset == 0 && this.texture.flippedX == false && this.texture.flippedY == false) {
- this.modified = false;
- }
- };
- Sprite.prototype.checkBounds = function () {
- if(Phaser.RectangleUtils.intersects(this.worldView, this.game.world.bounds)) {
- this.outOfBounds = false;
- } else {
- if(this.outOfBounds == false) {
- this.events.onOutOfBounds.dispatch(this);
- }
- this.outOfBounds = true;
- if(this.outOfBoundsAction == Phaser.Types.OUT_OF_BOUNDS_KILL) {
- this.kill();
- } else if(this.outOfBoundsAction == Phaser.Types.OUT_OF_BOUNDS_DESTROY) {
- this.destroy();
- }
- }
- };
- Sprite.prototype.destroy = function () {
- this.input.destroy();
- };
- Sprite.prototype.kill = function (removeFromGroup) {
- if (typeof removeFromGroup === "undefined") { removeFromGroup = false; }
- this.alive = false;
- this.exists = false;
- if(removeFromGroup && this.group) {
- }
- this.events.onKilled.dispatch(this);
- };
- Sprite.prototype.revive = function () {
- this.alive = true;
- this.exists = true;
- this.events.onRevived.dispatch(this);
- };
- return Sprite;
- })();
- Phaser.Sprite = Sprite;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Components) {
- var TransformManager = (function () {
- function TransformManager(parent) {
- this._dirty = false;
- this.rotationOffset = 0;
- this.rotation = 0;
- this.game = parent.game;
- this.parent = parent;
- this.local = new Phaser.Mat3();
- this.scrollFactor = new Phaser.Vec2(1, 1);
- this.origin = new Phaser.Vec2();
- this.scale = new Phaser.Vec2(1, 1);
- this.skew = new Phaser.Vec2();
- this.center = new Phaser.Point();
- this.upperLeft = new Phaser.Point();
- this.upperRight = new Phaser.Point();
- this.bottomLeft = new Phaser.Point();
- this.bottomRight = new Phaser.Point();
- this._pos = new Phaser.Point();
- this._scale = new Phaser.Point();
- this._size = new Phaser.Point();
- this._halfSize = new Phaser.Point();
- this._offset = new Phaser.Point();
- this._origin = new Phaser.Point();
- this._sc = new Phaser.Point();
- this._scA = new Phaser.Point();
- }
- Object.defineProperty(TransformManager.prototype, "distance", {
- get: function () {
- return this._distance;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TransformManager.prototype, "angleToCenter", {
- get: function () {
- return this._angle;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TransformManager.prototype, "offsetX", {
- get: function () {
- return this._offset.x;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TransformManager.prototype, "offsetY", {
- get: function () {
- return this._offset.y;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TransformManager.prototype, "halfWidth", {
- get: function () {
- return this._halfSize.x;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TransformManager.prototype, "halfHeight", {
- get: function () {
- return this._halfSize.y;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TransformManager.prototype, "sin", {
- get: function () {
- return this._sc.x;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TransformManager.prototype, "cos", {
- get: function () {
- return this._sc.y;
- },
- enumerable: true,
- configurable: true
- });
- TransformManager.prototype.centerOn = function (x, y) {
- this.parent.x = x + (this.parent.x - this.center.x);
- this.parent.y = y + (this.parent.y - this.center.y);
- };
- TransformManager.prototype.setCache = function () {
- this._pos.x = this.parent.x;
- this._pos.y = this.parent.y;
- this._halfSize.x = this.parent.width / 2;
- this._halfSize.y = this.parent.height / 2;
- this._offset.x = this.origin.x * this.parent.width;
- this._offset.y = this.origin.y * this.parent.height;
- this._angle = Math.atan2(this.halfHeight - this._offset.x, this.halfWidth - this._offset.y);
- this._distance = Math.sqrt(((this._offset.x - this._halfSize.x) * (this._offset.x - this._halfSize.x)) + ((this._offset.y - this._halfSize.y) * (this._offset.y - this._halfSize.y)));
- this._size.x = this.parent.width;
- this._size.y = this.parent.height;
- this._origin.x = this.origin.x;
- this._origin.y = this.origin.y;
- this._scA.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
- this._scA.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
- this._prevRotation = this.rotation;
- if(this.parent.texture && this.parent.texture.renderRotation) {
- this._sc.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
- this._sc.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
- } else {
- this._sc.x = 0;
- this._sc.y = 1;
- }
- this.center.x = this.parent.x + this._distance * this._scA.y;
- this.center.y = this.parent.y + this._distance * this._scA.x;
- this.upperLeft.setTo(this.center.x - this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
- this.upperRight.setTo(this.center.x + this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
- this.bottomLeft.setTo(this.center.x - this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
- this.bottomRight.setTo(this.center.x + this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
- this._pos.x = this.parent.x;
- this._pos.y = this.parent.y;
- this._flippedX = this.parent.texture.flippedX;
- this._flippedY = this.parent.texture.flippedY;
- };
- TransformManager.prototype.update = function () {
- this._dirty = false;
- if(this.parent.width !== this._size.x || this.parent.height !== this._size.y || this.origin.x !== this._origin.x || this.origin.y !== this._origin.y) {
- this._halfSize.x = this.parent.width / 2;
- this._halfSize.y = this.parent.height / 2;
- this._offset.x = this.origin.x * this.parent.width;
- this._offset.y = this.origin.y * this.parent.height;
- this._angle = Math.atan2(this.halfHeight - this._offset.y, this.halfWidth - this._offset.x);
- this._distance = Math.sqrt(((this._offset.x - this._halfSize.x) * (this._offset.x - this._halfSize.x)) + ((this._offset.y - this._halfSize.y) * (this._offset.y - this._halfSize.y)));
- this._size.x = this.parent.width;
- this._size.y = this.parent.height;
- this._origin.x = this.origin.x;
- this._origin.y = this.origin.y;
- this._dirty = true;
- }
- if(this.rotation != this._prevRotation || this._dirty) {
- this._scA.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
- this._scA.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
- if(this.parent.texture.renderRotation) {
- this._sc.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
- this._sc.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
- } else {
- this._sc.x = 0;
- this._sc.y = 1;
- }
- this._prevRotation = this.rotation;
- this._dirty = true;
- }
- if(this._dirty || this.parent.x != this._pos.x || this.parent.y != this._pos.y) {
- this.center.x = this.parent.x + this._distance * this._scA.y;
- this.center.y = this.parent.y + this._distance * this._scA.x;
- this.upperLeft.setTo(this.center.x - this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
- this.upperRight.setTo(this.center.x + this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
- this.bottomLeft.setTo(this.center.x - this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
- this.bottomRight.setTo(this.center.x + this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
- this._pos.x = this.parent.x;
- this._pos.y = this.parent.y;
- this.local.data[2] = this.parent.x;
- this.local.data[5] = this.parent.y;
- }
- if(this._dirty || this._flippedX != this.parent.texture.flippedX) {
- this._flippedX = this.parent.texture.flippedX;
- if(this._flippedX) {
- this.local.data[0] = this._sc.y * -this.scale.x;
- this.local.data[3] = (this._sc.x * -this.scale.x) + this.skew.x;
- } else {
- this.local.data[0] = this._sc.y * this.scale.x;
- this.local.data[3] = (this._sc.x * this.scale.x) + this.skew.x;
- }
- }
- if(this._dirty || this._flippedY != this.parent.texture.flippedY) {
- this._flippedY = this.parent.texture.flippedY;
- if(this._flippedY) {
- this.local.data[4] = this._sc.y * -this.scale.y;
- this.local.data[1] = -(this._sc.x * -this.scale.y) + this.skew.y;
- } else {
- this.local.data[4] = this._sc.y * this.scale.y;
- this.local.data[1] = -(this._sc.x * this.scale.y) + this.skew.y;
- }
- }
- };
- return TransformManager;
- })();
- Components.TransformManager = TransformManager;
- })(Phaser.Components || (Phaser.Components = {}));
- var Components = Phaser.Components;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var ScrollRegion = (function () {
- function ScrollRegion(x, y, width, height, speedX, speedY) {
- this._anchorWidth = 0;
- this._anchorHeight = 0;
- this._inverseWidth = 0;
- this._inverseHeight = 0;
- this.visible = true;
- this._A = new Phaser.Rectangle(x, y, width, height);
- this._B = new Phaser.Rectangle(x, y, width, height);
- this._C = new Phaser.Rectangle(x, y, width, height);
- this._D = new Phaser.Rectangle(x, y, width, height);
- this._scroll = new Phaser.Vec2();
- this._bounds = new Phaser.Rectangle(x, y, width, height);
- this.scrollSpeed = new Phaser.Vec2(speedX, speedY);
- }
- ScrollRegion.prototype.update = function (delta) {
- this._scroll.x += this.scrollSpeed.x;
- this._scroll.y += this.scrollSpeed.y;
- if(this._scroll.x > this._bounds.right) {
- this._scroll.x = this._bounds.x;
- }
- if(this._scroll.x < this._bounds.x) {
- this._scroll.x = this._bounds.right;
- }
- if(this._scroll.y > this._bounds.bottom) {
- this._scroll.y = this._bounds.y;
- }
- if(this._scroll.y < this._bounds.y) {
- this._scroll.y = this._bounds.bottom;
- }
- this._anchorWidth = (this._bounds.width - this._scroll.x) + this._bounds.x;
- this._anchorHeight = (this._bounds.height - this._scroll.y) + this._bounds.y;
- if(this._anchorWidth > this._bounds.width) {
- this._anchorWidth = this._bounds.width;
- }
- if(this._anchorHeight > this._bounds.height) {
- this._anchorHeight = this._bounds.height;
- }
- this._inverseWidth = this._bounds.width - this._anchorWidth;
- this._inverseHeight = this._bounds.height - this._anchorHeight;
- this._A.setTo(this._scroll.x, this._scroll.y, this._anchorWidth, this._anchorHeight);
- this._B.y = this._scroll.y;
- this._B.width = this._inverseWidth;
- this._B.height = this._anchorHeight;
- this._C.x = this._scroll.x;
- this._C.width = this._anchorWidth;
- this._C.height = this._inverseHeight;
- this._D.width = this._inverseWidth;
- this._D.height = this._inverseHeight;
- };
- ScrollRegion.prototype.render = function (context, texture, dx, dy, dw, dh) {
- if(this.visible == false) {
- return;
- }
- this.crop(context, texture, this._A.x, this._A.y, this._A.width, this._A.height, dx, dy, dw, dh, 0, 0);
- this.crop(context, texture, this._B.x, this._B.y, this._B.width, this._B.height, dx, dy, dw, dh, this._A.width, 0);
- this.crop(context, texture, this._C.x, this._C.y, this._C.width, this._C.height, dx, dy, dw, dh, 0, this._A.height);
- this.crop(context, texture, this._D.x, this._D.y, this._D.width, this._D.height, dx, dy, dw, dh, this._C.width, this._A.height);
- };
- ScrollRegion.prototype.crop = function (context, texture, srcX, srcY, srcW, srcH, destX, destY, destW, destH, offsetX, offsetY) {
- offsetX += destX;
- offsetY += destY;
- if(srcW > (destX + destW) - offsetX) {
- srcW = (destX + destW) - offsetX;
- }
- if(srcH > (destY + destH) - offsetY) {
- srcH = (destY + destH) - offsetY;
- }
- srcX = Math.floor(srcX);
- srcY = Math.floor(srcY);
- srcW = Math.floor(srcW);
- srcH = Math.floor(srcH);
- offsetX = Math.floor(offsetX + this._bounds.x);
- offsetY = Math.floor(offsetY + this._bounds.y);
- if(srcW > 0 && srcH > 0) {
- context.drawImage(texture, srcX, srcY, srcW, srcH, offsetX, offsetY, srcW, srcH);
- }
- };
- return ScrollRegion;
- })();
- Phaser.ScrollRegion = ScrollRegion;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var ScrollZone = (function (_super) {
- __extends(ScrollZone, _super);
- function ScrollZone(game, key, x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = 0; }
- if (typeof height === "undefined") { height = 0; }
- _super.call(this, game, x, y, key);
- this.type = Phaser.Types.SCROLLZONE;
- this.regions = [];
- if(this.texture.loaded) {
- if(width > this.width || height > this.height) {
- this.createRepeatingTexture(width, height);
- this.width = width;
- this.height = height;
- }
- this.addRegion(0, 0, this.width, this.height);
- if((width < this.width || height < this.height) && width !== 0 && height !== 0) {
- this.width = width;
- this.height = height;
- }
- }
- }
- ScrollZone.prototype.addRegion = function (x, y, width, height, speedX, speedY) {
- if (typeof speedX === "undefined") { speedX = 0; }
- if (typeof speedY === "undefined") { speedY = 0; }
- if(x > this.width || y > this.height || x < 0 || y < 0 || (x + width) > this.width || (y + height) > this.height) {
- throw Error('Invalid ScrollRegion defined. Cannot be larger than parent ScrollZone');
- return null;
- }
- this.currentRegion = new Phaser.ScrollRegion(x, y, width, height, speedX, speedY);
- this.regions.push(this.currentRegion);
- return this.currentRegion;
- };
- ScrollZone.prototype.setSpeed = function (x, y) {
- if(this.currentRegion) {
- this.currentRegion.scrollSpeed.setTo(x, y);
- }
- return this;
- };
- ScrollZone.prototype.update = function () {
- for(var i = 0; i < this.regions.length; i++) {
- this.regions[i].update(this.game.time.delta);
- }
- };
- ScrollZone.prototype.createRepeatingTexture = function (regionWidth, regionHeight) {
- var tileWidth = Math.ceil(this.width / regionWidth) * regionWidth;
- var tileHeight = Math.ceil(this.height / regionHeight) * regionHeight;
- var dt = new Phaser.Display.DynamicTexture(this.game, tileWidth, tileHeight);
- dt.context.rect(0, 0, tileWidth, tileHeight);
- dt.context.fillStyle = dt.context.createPattern(this.texture.imageTexture, "repeat");
- dt.context.fill();
- this.texture.loadDynamicTexture(dt);
- };
- return ScrollZone;
- })(Phaser.Sprite);
- Phaser.ScrollZone = ScrollZone;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var GameObjectFactory = (function () {
- function GameObjectFactory(game) {
- this.game = game;
- this._world = this.game.world;
- }
- GameObjectFactory.prototype.camera = function (x, y, width, height) {
- return this._world.cameras.addCamera(x, y, width, height);
- };
- GameObjectFactory.prototype.button = function (x, y, key, callback, callbackContext, overFrame, outFrame, downFrame) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof key === "undefined") { key = null; }
- if (typeof callback === "undefined") { callback = null; }
- if (typeof callbackContext === "undefined") { callbackContext = null; }
- if (typeof overFrame === "undefined") { overFrame = null; }
- if (typeof outFrame === "undefined") { outFrame = null; }
- if (typeof downFrame === "undefined") { downFrame = null; }
- return this._world.group.add(new Phaser.UI.Button(this.game, x, y, key, callback, callbackContext, overFrame, outFrame, downFrame));
- };
- GameObjectFactory.prototype.sprite = function (x, y, key, frame) {
- if (typeof key === "undefined") { key = ''; }
- if (typeof frame === "undefined") { frame = null; }
- return this._world.group.add(new Phaser.Sprite(this.game, x, y, key, frame));
- };
- GameObjectFactory.prototype.audio = function (key, volume, loop) {
- if (typeof volume === "undefined") { volume = 1; }
- if (typeof loop === "undefined") { loop = false; }
- return this.game.sound.add(key, volume, loop);
- };
- GameObjectFactory.prototype.circle = function (x, y, radius) {
- return new Phaser.Physics.Circle(this.game, x, y, radius);
- };
- GameObjectFactory.prototype.aabb = function (x, y, width, height) {
- return new Phaser.Physics.AABB(this.game, x, y, Math.floor(width / 2), Math.floor(height / 2));
- };
- GameObjectFactory.prototype.cell = function (x, y, width, height, state) {
- if (typeof state === "undefined") { state = Phaser.Physics.TileMapCell.TID_FULL; }
- return new Phaser.Physics.TileMapCell(this.game, x, y, width, height).SetState(state);
- };
- GameObjectFactory.prototype.dynamicTexture = function (width, height) {
- return new Phaser.Display.DynamicTexture(this.game, width, height);
- };
- GameObjectFactory.prototype.group = function (maxSize) {
- if (typeof maxSize === "undefined") { maxSize = 0; }
- return this._world.group.add(new Phaser.Group(this.game, maxSize));
- };
- GameObjectFactory.prototype.scrollZone = function (key, x, y, width, height) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof width === "undefined") { width = 0; }
- if (typeof height === "undefined") { height = 0; }
- return this._world.group.add(new Phaser.ScrollZone(this.game, key, x, y, width, height));
- };
- GameObjectFactory.prototype.tilemap = function (key, mapData, format, resizeWorld, tileWidth, tileHeight) {
- if (typeof resizeWorld === "undefined") { resizeWorld = true; }
- if (typeof tileWidth === "undefined") { tileWidth = 0; }
- if (typeof tileHeight === "undefined") { tileHeight = 0; }
- return this._world.group.add(new Phaser.Tilemap(this.game, key, mapData, format, resizeWorld, tileWidth, tileHeight));
- };
- GameObjectFactory.prototype.tween = function (obj, localReference) {
- if (typeof localReference === "undefined") { localReference = false; }
- return this.game.tweens.create(obj, localReference);
- };
- GameObjectFactory.prototype.existingSprite = function (sprite) {
- return this._world.group.add(sprite);
- };
- GameObjectFactory.prototype.existingGroup = function (group) {
- return this._world.group.add(group);
- };
- GameObjectFactory.prototype.existingButton = function (button) {
- return this._world.group.add(button);
- };
- GameObjectFactory.prototype.existingScrollZone = function (scrollZone) {
- return this._world.group.add(scrollZone);
- };
- GameObjectFactory.prototype.existingTilemap = function (tilemap) {
- return this._world.group.add(tilemap);
- };
- GameObjectFactory.prototype.existingTween = function (tween) {
- return this.game.tweens.add(tween);
- };
- return GameObjectFactory;
- })();
- Phaser.GameObjectFactory = GameObjectFactory;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (UI) {
- var Button = (function (_super) {
- __extends(Button, _super);
- function Button(game, x, y, key, callback, callbackContext, overFrame, outFrame, downFrame) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- if (typeof key === "undefined") { key = null; }
- if (typeof callback === "undefined") { callback = null; }
- if (typeof callbackContext === "undefined") { callbackContext = null; }
- if (typeof overFrame === "undefined") { overFrame = null; }
- if (typeof outFrame === "undefined") { outFrame = null; }
- if (typeof downFrame === "undefined") { downFrame = null; }
- _super.call(this, game, x, y, key, outFrame);
- this._onOverFrameName = null;
- this._onOutFrameName = null;
- this._onDownFrameName = null;
- this._onUpFrameName = null;
- this._onOverFrameID = null;
- this._onOutFrameID = null;
- this._onDownFrameID = null;
- this._onUpFrameID = null;
- this.type = Phaser.Types.BUTTON;
- if(typeof overFrame == 'string') {
- this._onOverFrameName = overFrame;
- } else {
- this._onOverFrameID = overFrame;
- }
- if(typeof outFrame == 'string') {
- this._onOutFrameName = outFrame;
- this._onUpFrameName = outFrame;
- } else {
- this._onOutFrameID = outFrame;
- this._onUpFrameID = outFrame;
- }
- if(typeof downFrame == 'string') {
- this._onDownFrameName = downFrame;
- } else {
- this._onDownFrameID = downFrame;
- }
- this.onInputOver = new Phaser.Signal();
- this.onInputOut = new Phaser.Signal();
- this.onInputDown = new Phaser.Signal();
- this.onInputUp = new Phaser.Signal();
- if(callback) {
- this.onInputUp.add(callback, callbackContext);
- }
- this.input.start(0, false, true);
- this.events.onInputOver.add(this.onInputOverHandler, this);
- this.events.onInputOut.add(this.onInputOutHandler, this);
- this.events.onInputDown.add(this.onInputDownHandler, this);
- this.events.onInputUp.add(this.onInputUpHandler, this);
- }
- Button.prototype.onInputOverHandler = function (pointer) {
- if(this._onOverFrameName != null) {
- this.frameName = this._onOverFrameName;
- } else if(this._onOverFrameID != null) {
- this.frame = this._onOverFrameID;
- }
- if(this.onInputOver) {
- this.onInputOver.dispatch(this, pointer);
- }
- };
- Button.prototype.onInputOutHandler = function (pointer) {
- if(this._onOutFrameName != null) {
- this.frameName = this._onOutFrameName;
- } else if(this._onOutFrameID != null) {
- this.frame = this._onOutFrameID;
- }
- if(this.onInputOut) {
- this.onInputOut.dispatch(this, pointer);
- }
- };
- Button.prototype.onInputDownHandler = function (pointer) {
- if(this._onDownFrameName != null) {
- this.frameName = this._onDownFrameName;
- } else if(this._onDownFrameID != null) {
- this.frame = this._onDownFrameID;
- }
- if(this.onInputDown) {
- this.onInputDown.dispatch(this, pointer);
- }
- };
- Button.prototype.onInputUpHandler = function (pointer) {
- if(this._onUpFrameName != null) {
- this.frameName = this._onUpFrameName;
- } else if(this._onUpFrameID != null) {
- this.frame = this._onUpFrameID;
- }
- if(this.onInputUp) {
- this.onInputUp.dispatch(this, pointer);
- }
- };
- Object.defineProperty(Button.prototype, "priorityID", {
- get: function () {
- return this.input.priorityID;
- },
- set: function (value) {
- this.input.priorityID = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Button.prototype, "useHandCursor", {
- get: function () {
- return this.input.useHandCursor;
- },
- set: function (value) {
- this.input.useHandCursor = value;
- },
- enumerable: true,
- configurable: true
- });
- return Button;
- })(Phaser.Sprite);
- UI.Button = Button;
- })(Phaser.UI || (Phaser.UI = {}));
- var UI = Phaser.UI;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var CanvasUtils = (function () {
- function CanvasUtils() { }
- CanvasUtils.getAspectRatio = function getAspectRatio(canvas) {
- return canvas.width / canvas.height;
- };
- CanvasUtils.setBackgroundColor = function setBackgroundColor(canvas, color) {
- if (typeof color === "undefined") { color = 'rgb(0,0,0)'; }
- canvas.style.backgroundColor = color;
- return canvas;
- };
- CanvasUtils.setTouchAction = function setTouchAction(canvas, value) {
- if (typeof value === "undefined") { value = 'none'; }
- canvas.style.msTouchAction = value;
- canvas.style['ms-touch-action'] = value;
- canvas.style['touch-action'] = value;
- return canvas;
- };
- CanvasUtils.addToDOM = function addToDOM(canvas, parent, overflowHidden) {
- if (typeof parent === "undefined") { parent = ''; }
- if (typeof overflowHidden === "undefined") { overflowHidden = true; }
- if((parent !== '' || parent !== null) && document.getElementById(parent)) {
- document.getElementById(parent).appendChild(canvas);
- if(overflowHidden) {
- document.getElementById(parent).style.overflow = 'hidden';
- }
- } else {
- document.body.appendChild(canvas);
- }
- return canvas;
- };
- CanvasUtils.setTransform = function setTransform(context, translateX, translateY, scaleX, scaleY, skewX, skewY) {
- context.setTransform(scaleX, skewX, skewY, scaleY, translateX, translateY);
- return context;
- };
- CanvasUtils.setSmoothingEnabled = function setSmoothingEnabled(context, value) {
- context['imageSmoothingEnabled'] = value;
- context['mozImageSmoothingEnabled'] = value;
- context['oImageSmoothingEnabled'] = value;
- context['webkitImageSmoothingEnabled'] = value;
- context['msImageSmoothingEnabled'] = value;
- return context;
- };
- CanvasUtils.setImageRenderingCrisp = function setImageRenderingCrisp(canvas) {
- canvas.style['image-rendering'] = 'crisp-edges';
- canvas.style['image-rendering'] = '-moz-crisp-edges';
- canvas.style['image-rendering'] = '-webkit-optimize-contrast';
- canvas.style.msInterpolationMode = 'nearest-neighbor';
- return canvas;
- };
- CanvasUtils.setImageRenderingBicubic = function setImageRenderingBicubic(canvas) {
- canvas.style['image-rendering'] = 'auto';
- canvas.style.msInterpolationMode = 'bicubic';
- return canvas;
- };
- return CanvasUtils;
- })();
- Phaser.CanvasUtils = CanvasUtils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var CircleUtils = (function () {
- function CircleUtils() { }
- CircleUtils.clone = function clone(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Circle(); }
- return out.setTo(a.x, a.y, a.diameter);
- };
- CircleUtils.contains = function contains(a, x, y) {
- if(x >= a.left && x <= a.right && y >= a.top && y <= a.bottom) {
- var dx = (a.x - x) * (a.x - x);
- var dy = (a.y - y) * (a.y - y);
- return (dx + dy) <= (a.radius * a.radius);
- }
- return false;
- };
- CircleUtils.containsPoint = function containsPoint(a, point) {
- return CircleUtils.contains(a, point.x, point.y);
- };
- CircleUtils.containsCircle = function containsCircle(a, b) {
- return true;
- };
- CircleUtils.distanceBetween = function distanceBetween(a, target, round) {
- if (typeof round === "undefined") { round = false; }
- var dx = a.x - target.x;
- var dy = a.y - target.y;
- if(round === true) {
- return Math.round(Math.sqrt(dx * dx + dy * dy));
- } else {
- return Math.sqrt(dx * dx + dy * dy);
- }
- };
- CircleUtils.equals = function equals(a, b) {
- return (a.x == b.x && a.y == b.y && a.diameter == b.diameter);
- };
- CircleUtils.intersects = function intersects(a, b) {
- return (Phaser.CircleUtils.distanceBetween(a, b) <= (a.radius + b.radius));
- };
- CircleUtils.circumferencePoint = function circumferencePoint(a, angle, asDegrees, out) {
- if (typeof asDegrees === "undefined") { asDegrees = false; }
- if (typeof out === "undefined") { out = new Phaser.Point(); }
- if(asDegrees === true) {
- angle = angle * Phaser.GameMath.DEG_TO_RAD;
- }
- return out.setTo(a.x + a.radius * Math.cos(angle), a.y + a.radius * Math.sin(angle));
- };
- CircleUtils.intersectsRectangle = function intersectsRectangle(c, r) {
- var cx = Math.abs(c.x - r.x - r.halfWidth);
- var xDist = r.halfWidth + c.radius;
- if(cx > xDist) {
- return false;
- }
- var cy = Math.abs(c.y - r.y - r.halfHeight);
- var yDist = r.halfHeight + c.radius;
- if(cy > yDist) {
- return false;
- }
- if(cx <= r.halfWidth || cy <= r.halfHeight) {
- return true;
- }
- var xCornerDist = cx - r.halfWidth;
- var yCornerDist = cy - r.halfHeight;
- var xCornerDistSq = xCornerDist * xCornerDist;
- var yCornerDistSq = yCornerDist * yCornerDist;
- var maxCornerDistSq = c.radius * c.radius;
- return xCornerDistSq + yCornerDistSq <= maxCornerDistSq;
- };
- return CircleUtils;
- })();
- Phaser.CircleUtils = CircleUtils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var ColorUtils = (function () {
- function ColorUtils() { }
- ColorUtils.getColor32 = function getColor32(alpha, red, green, blue) {
- return alpha << 24 | red << 16 | green << 8 | blue;
- };
- ColorUtils.getColor = function getColor(red, green, blue) {
- return red << 16 | green << 8 | blue;
- };
- ColorUtils.getHSVColorWheel = function getHSVColorWheel(alpha) {
- if (typeof alpha === "undefined") { alpha = 255; }
- var colors = [];
- for(var c = 0; c <= 359; c++) {
- colors[c] = Phaser.ColorUtils.getWebRGB(Phaser.ColorUtils.HSVtoRGB(c, 1.0, 1.0, alpha));
- }
- return colors;
- };
- ColorUtils.hexToRGB = function hexToRGB(h) {
- var hex16 = (h.charAt(0) == "#") ? h.substring(1, 7) : h;
- var r = parseInt(hex16.substring(0, 2), 16);
- var g = parseInt(hex16.substring(2, 4), 16);
- var b = parseInt(hex16.substring(4, 6), 16);
- return {
- r: r,
- g: g,
- b: b
- };
- };
- ColorUtils.getComplementHarmony = function getComplementHarmony(color) {
- var hsv = Phaser.ColorUtils.RGBtoHSV(color);
- var opposite = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 180, 359);
- return Phaser.ColorUtils.HSVtoRGB(opposite, 1.0, 1.0);
- };
- ColorUtils.getAnalogousHarmony = function getAnalogousHarmony(color, threshold) {
- if (typeof threshold === "undefined") { threshold = 30; }
- var hsv = Phaser.ColorUtils.RGBtoHSV(color);
- if(threshold > 359 || threshold < 0) {
- throw Error("Color Warning: Invalid threshold given to getAnalogousHarmony()");
- }
- var warmer = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 359 - threshold, 359);
- var colder = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, threshold, 359);
- return {
- color1: color,
- color2: Phaser.ColorUtils.HSVtoRGB(warmer, 1.0, 1.0),
- color3: Phaser.ColorUtils.HSVtoRGB(colder, 1.0, 1.0),
- hue1: hsv.hue,
- hue2: warmer,
- hue3: colder
- };
- };
- ColorUtils.getSplitComplementHarmony = function getSplitComplementHarmony(color, threshold) {
- if (typeof threshold === "undefined") { threshold = 30; }
- var hsv = Phaser.ColorUtils.RGBtoHSV(color);
- if(threshold >= 359 || threshold <= 0) {
- throw Error("Phaser.ColorUtils Warning: Invalid threshold given to getSplitComplementHarmony()");
- }
- var opposite = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 180, 359);
- var warmer = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, opposite - threshold, 359);
- var colder = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, opposite + threshold, 359);
- return {
- color1: color,
- color2: Phaser.ColorUtils.HSVtoRGB(warmer, hsv.saturation, hsv.value),
- color3: Phaser.ColorUtils.HSVtoRGB(colder, hsv.saturation, hsv.value),
- hue1: hsv.hue,
- hue2: warmer,
- hue3: colder
- };
- };
- ColorUtils.getTriadicHarmony = function getTriadicHarmony(color) {
- var hsv = Phaser.ColorUtils.RGBtoHSV(color);
- var triadic1 = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 120, 359);
- var triadic2 = Phaser.ColorUtils.game.math.wrapValue(triadic1, 120, 359);
- return {
- color1: color,
- color2: Phaser.ColorUtils.HSVtoRGB(triadic1, 1.0, 1.0),
- color3: Phaser.ColorUtils.HSVtoRGB(triadic2, 1.0, 1.0)
- };
- };
- ColorUtils.getColorInfo = function getColorInfo(color) {
- var argb = Phaser.ColorUtils.getRGB(color);
- var hsl = Phaser.ColorUtils.RGBtoHSV(color);
- var result = Phaser.ColorUtils.RGBtoHexstring(color) + "\n";
- result = result.concat("Alpha: " + argb.alpha + " Red: " + argb.red + " Green: " + argb.green + " Blue: " + argb.blue) + "\n";
- result = result.concat("Hue: " + hsl.hue + " Saturation: " + hsl.saturation + " Lightnes: " + hsl.lightness);
- return result;
- };
- ColorUtils.RGBtoHexstring = function RGBtoHexstring(color) {
- var argb = Phaser.ColorUtils.getRGB(color);
- return "0x" + Phaser.ColorUtils.colorToHexstring(argb.alpha) + Phaser.ColorUtils.colorToHexstring(argb.red) + Phaser.ColorUtils.colorToHexstring(argb.green) + Phaser.ColorUtils.colorToHexstring(argb.blue);
- };
- ColorUtils.RGBtoWebstring = function RGBtoWebstring(color) {
- var argb = Phaser.ColorUtils.getRGB(color);
- return "#" + Phaser.ColorUtils.colorToHexstring(argb.red) + Phaser.ColorUtils.colorToHexstring(argb.green) + Phaser.ColorUtils.colorToHexstring(argb.blue);
- };
- ColorUtils.colorToHexstring = function colorToHexstring(color) {
- var digits = "0123456789ABCDEF";
- var lsd = color % 16;
- var msd = (color - lsd) / 16;
- var hexified = digits.charAt(msd) + digits.charAt(lsd);
- return hexified;
- };
- ColorUtils.HSVtoRGB = function HSVtoRGB(h, s, v, alpha) {
- if (typeof alpha === "undefined") { alpha = 255; }
- var result;
- if(s == 0.0) {
- result = Phaser.ColorUtils.getColor32(alpha, v * 255, v * 255, v * 255);
- } else {
- h = h / 60.0;
- var f = h - Math.floor(h);
- var p = v * (1.0 - s);
- var q = v * (1.0 - s * f);
- var t = v * (1.0 - s * (1.0 - f));
- switch(Math.floor(h)) {
- case 0:
- result = Phaser.ColorUtils.getColor32(alpha, v * 255, t * 255, p * 255);
- break;
- case 1:
- result = Phaser.ColorUtils.getColor32(alpha, q * 255, v * 255, p * 255);
- break;
- case 2:
- result = Phaser.ColorUtils.getColor32(alpha, p * 255, v * 255, t * 255);
- break;
- case 3:
- result = Phaser.ColorUtils.getColor32(alpha, p * 255, q * 255, v * 255);
- break;
- case 4:
- result = Phaser.ColorUtils.getColor32(alpha, t * 255, p * 255, v * 255);
- break;
- case 5:
- result = Phaser.ColorUtils.getColor32(alpha, v * 255, p * 255, q * 255);
- break;
- default:
- throw new Error("Phaser.ColorUtils.HSVtoRGB : Unknown color");
- }
- }
- return result;
- };
- ColorUtils.RGBtoHSV = function RGBtoHSV(color) {
- var rgb = Phaser.ColorUtils.getRGB(color);
- var red = rgb.red / 255;
- var green = rgb.green / 255;
- var blue = rgb.blue / 255;
- var min = Math.min(red, green, blue);
- var max = Math.max(red, green, blue);
- var delta = max - min;
- var lightness = (max + min) / 2;
- var hue;
- var saturation;
- if(delta == 0) {
- hue = 0;
- saturation = 0;
- } else {
- if(lightness < 0.5) {
- saturation = delta / (max + min);
- } else {
- saturation = delta / (2 - max - min);
- }
- var delta_r = (((max - red) / 6) + (delta / 2)) / delta;
- var delta_g = (((max - green) / 6) + (delta / 2)) / delta;
- var delta_b = (((max - blue) / 6) + (delta / 2)) / delta;
- if(red == max) {
- hue = delta_b - delta_g;
- } else if(green == max) {
- hue = (1 / 3) + delta_r - delta_b;
- } else if(blue == max) {
- hue = (2 / 3) + delta_g - delta_r;
- }
- if(hue < 0) {
- hue += 1;
- }
- if(hue > 1) {
- hue -= 1;
- }
- }
- hue *= 360;
- hue = Math.round(hue);
- return {
- hue: hue,
- saturation: saturation,
- lightness: lightness,
- value: lightness
- };
- };
- ColorUtils.interpolateColor = function interpolateColor(color1, color2, steps, currentStep, alpha) {
- if (typeof alpha === "undefined") { alpha = 255; }
- var src1 = Phaser.ColorUtils.getRGB(color1);
- var src2 = Phaser.ColorUtils.getRGB(color2);
- var r = (((src2.red - src1.red) * currentStep) / steps) + src1.red;
- var g = (((src2.green - src1.green) * currentStep) / steps) + src1.green;
- var b = (((src2.blue - src1.blue) * currentStep) / steps) + src1.blue;
- return Phaser.ColorUtils.getColor32(alpha, r, g, b);
- };
- ColorUtils.interpolateColorWithRGB = function interpolateColorWithRGB(color, r, g, b, steps, currentStep) {
- var src = Phaser.ColorUtils.getRGB(color);
- var or = (((r - src.red) * currentStep) / steps) + src.red;
- var og = (((g - src.green) * currentStep) / steps) + src.green;
- var ob = (((b - src.blue) * currentStep) / steps) + src.blue;
- return Phaser.ColorUtils.getColor(or, og, ob);
- };
- ColorUtils.interpolateRGB = function interpolateRGB(r1, g1, b1, r2, g2, b2, steps, currentStep) {
- var r = (((r2 - r1) * currentStep) / steps) + r1;
- var g = (((g2 - g1) * currentStep) / steps) + g1;
- var b = (((b2 - b1) * currentStep) / steps) + b1;
- return Phaser.ColorUtils.getColor(r, g, b);
- };
- ColorUtils.getRandomColor = function getRandomColor(min, max, alpha) {
- if (typeof min === "undefined") { min = 0; }
- if (typeof max === "undefined") { max = 255; }
- if (typeof alpha === "undefined") { alpha = 255; }
- if(max > 255) {
- return Phaser.ColorUtils.getColor(255, 255, 255);
- }
- if(min > max) {
- return Phaser.ColorUtils.getColor(255, 255, 255);
- }
- var red = min + Math.round(Math.random() * (max - min));
- var green = min + Math.round(Math.random() * (max - min));
- var blue = min + Math.round(Math.random() * (max - min));
- return Phaser.ColorUtils.getColor32(alpha, red, green, blue);
- };
- ColorUtils.getRGB = function getRGB(color) {
- return {
- alpha: color >>> 24,
- red: color >> 16 & 0xFF,
- green: color >> 8 & 0xFF,
- blue: color & 0xFF
- };
- };
- ColorUtils.getWebRGB = function getWebRGB(color) {
- var alpha = (color >>> 24) / 255;
- var red = color >> 16 & 0xFF;
- var green = color >> 8 & 0xFF;
- var blue = color & 0xFF;
- return 'rgba(' + red.toString() + ',' + green.toString() + ',' + blue.toString() + ',' + alpha.toString() + ')';
- };
- ColorUtils.getAlpha = function getAlpha(color) {
- return color >>> 24;
- };
- ColorUtils.getAlphaFloat = function getAlphaFloat(color) {
- return (color >>> 24) / 255;
- };
- ColorUtils.getRed = function getRed(color) {
- return color >> 16 & 0xFF;
- };
- ColorUtils.getGreen = function getGreen(color) {
- return color >> 8 & 0xFF;
- };
- ColorUtils.getBlue = function getBlue(color) {
- return color & 0xFF;
- };
- return ColorUtils;
- })();
- Phaser.ColorUtils = ColorUtils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var PointUtils = (function () {
- function PointUtils() { }
- PointUtils.add = function add(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Point(); }
- return out.setTo(a.x + b.x, a.y + b.y);
- };
- PointUtils.subtract = function subtract(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Point(); }
- return out.setTo(a.x - b.x, a.y - b.y);
- };
- PointUtils.multiply = function multiply(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Point(); }
- return out.setTo(a.x * b.x, a.y * b.y);
- };
- PointUtils.divide = function divide(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Point(); }
- return out.setTo(a.x / b.x, a.y / b.y);
- };
- PointUtils.clamp = function clamp(a, min, max) {
- Phaser.PointUtils.clampX(a, min, max);
- Phaser.PointUtils.clampY(a, min, max);
- return a;
- };
- PointUtils.clampX = function clampX(a, min, max) {
- a.x = Math.max(Math.min(a.x, max), min);
- return a;
- };
- PointUtils.clampY = function clampY(a, min, max) {
- a.y = Math.max(Math.min(a.y, max), min);
- return a;
- };
- PointUtils.clone = function clone(a, output) {
- if (typeof output === "undefined") { output = new Phaser.Point(); }
- return output.setTo(a.x, a.y);
- };
- PointUtils.distanceBetween = function distanceBetween(a, b, round) {
- if (typeof round === "undefined") { round = false; }
- var dx = a.x - b.x;
- var dy = a.y - b.y;
- if(round === true) {
- return Math.round(Math.sqrt(dx * dx + dy * dy));
- } else {
- return Math.sqrt(dx * dx + dy * dy);
- }
- };
- PointUtils.equals = function equals(a, b) {
- return (a.x == b.x && a.y == b.y);
- };
- PointUtils.rotate = function rotate(a, x, y, angle, asDegrees, distance) {
- if (typeof asDegrees === "undefined") { asDegrees = false; }
- if (typeof distance === "undefined") { distance = null; }
- if(asDegrees) {
- angle = angle * Phaser.GameMath.DEG_TO_RAD;
- }
- if(distance === null) {
- distance = Math.sqrt(((x - a.x) * (x - a.x)) + ((y - a.y) * (y - a.y)));
- }
- return a.setTo(x + distance * Math.cos(angle), y + distance * Math.sin(angle));
- };
- PointUtils.rotateAroundPoint = function rotateAroundPoint(a, b, angle, asDegrees, distance) {
- if (typeof asDegrees === "undefined") { asDegrees = false; }
- if (typeof distance === "undefined") { distance = null; }
- return Phaser.PointUtils.rotate(a, b.x, b.y, angle, asDegrees, distance);
- };
- return PointUtils;
- })();
- Phaser.PointUtils = PointUtils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var RectangleUtils = (function () {
- function RectangleUtils() { }
- RectangleUtils.getTopLeftAsPoint = function getTopLeftAsPoint(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Point(); }
- return out.setTo(a.x, a.y);
- };
- RectangleUtils.getBottomRightAsPoint = function getBottomRightAsPoint(a, out) {
- if (typeof out === "undefined") { out = new Phaser.Point(); }
- return out.setTo(a.right, a.bottom);
- };
- RectangleUtils.inflate = function inflate(a, dx, dy) {
- a.x -= dx;
- a.width += 2 * dx;
- a.y -= dy;
- a.height += 2 * dy;
- return a;
- };
- RectangleUtils.inflatePoint = function inflatePoint(a, point) {
- return Phaser.RectangleUtils.inflate(a, point.x, point.y);
- };
- RectangleUtils.size = function size(a, output) {
- if (typeof output === "undefined") { output = new Phaser.Point(); }
- return output.setTo(a.width, a.height);
- };
- RectangleUtils.clone = function clone(a, output) {
- if (typeof output === "undefined") { output = new Phaser.Rectangle(); }
- return output.setTo(a.x, a.y, a.width, a.height);
- };
- RectangleUtils.contains = function contains(a, x, y) {
- return (x >= a.x && x <= a.right && y >= a.y && y <= a.bottom);
- };
- RectangleUtils.containsPoint = function containsPoint(a, point) {
- return Phaser.RectangleUtils.contains(a, point.x, point.y);
- };
- RectangleUtils.containsRect = function containsRect(a, b) {
- if(a.volume > b.volume) {
- return false;
- }
- return (a.x >= b.x && a.y >= b.y && a.right <= b.right && a.bottom <= b.bottom);
- };
- RectangleUtils.equals = function equals(a, b) {
- return (a.x == b.x && a.y == b.y && a.width == b.width && a.height == b.height);
- };
- RectangleUtils.intersection = function intersection(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Rectangle(); }
- if(Phaser.RectangleUtils.intersects(a, b)) {
- out.x = Math.max(a.x, b.x);
- out.y = Math.max(a.y, b.y);
- out.width = Math.min(a.right, b.right) - out.x;
- out.height = Math.min(a.bottom, b.bottom) - out.y;
- }
- return out;
- };
- RectangleUtils.intersects = function intersects(a, b, tolerance) {
- if (typeof tolerance === "undefined") { tolerance = 0; }
- return !(a.left > b.right + tolerance || a.right < b.left - tolerance || a.top > b.bottom + tolerance || a.bottom < b.top - tolerance);
- };
- RectangleUtils.intersectsRaw = function intersectsRaw(a, left, right, top, bottom, tolerance) {
- if (typeof tolerance === "undefined") { tolerance = 0; }
- return !(left > a.right + tolerance || right < a.left - tolerance || top > a.bottom + tolerance || bottom < a.top - tolerance);
- };
- RectangleUtils.union = function union(a, b, out) {
- if (typeof out === "undefined") { out = new Phaser.Rectangle(); }
- return out.setTo(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.max(a.right, b.right), Math.max(a.bottom, b.bottom));
- };
- return RectangleUtils;
- })();
- Phaser.RectangleUtils = RectangleUtils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var SpriteUtils = (function () {
- function SpriteUtils() { }
- SpriteUtils.updateCameraView = function updateCameraView(camera, sprite) {
- if(sprite.rotation == 0 || sprite.texture.renderRotation == false) {
- sprite.cameraView.x = Math.floor(sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x) - (sprite.width * sprite.transform.origin.x));
- sprite.cameraView.y = Math.floor(sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y) - (sprite.height * sprite.transform.origin.y));
- sprite.cameraView.width = sprite.width;
- sprite.cameraView.height = sprite.height;
- } else {
- if(sprite.transform.origin.x == 0.5 && sprite.transform.origin.y == 0.5) {
- Phaser.SpriteUtils._sin = sprite.transform.sin;
- Phaser.SpriteUtils._cos = sprite.transform.cos;
- if(Phaser.SpriteUtils._sin < 0) {
- Phaser.SpriteUtils._sin = -Phaser.SpriteUtils._sin;
- }
- if(Phaser.SpriteUtils._cos < 0) {
- Phaser.SpriteUtils._cos = -Phaser.SpriteUtils._cos;
- }
- sprite.cameraView.width = Math.round(sprite.height * Phaser.SpriteUtils._sin + sprite.width * Phaser.SpriteUtils._cos);
- sprite.cameraView.height = Math.round(sprite.height * Phaser.SpriteUtils._cos + sprite.width * Phaser.SpriteUtils._sin);
- sprite.cameraView.x = Math.round(sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x) - (sprite.cameraView.width * sprite.transform.origin.x));
- sprite.cameraView.y = Math.round(sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y) - (sprite.cameraView.height * sprite.transform.origin.y));
- } else {
- sprite.cameraView.x = Math.min(sprite.transform.upperLeft.x, sprite.transform.upperRight.x, sprite.transform.bottomLeft.x, sprite.transform.bottomRight.x);
- sprite.cameraView.y = Math.min(sprite.transform.upperLeft.y, sprite.transform.upperRight.y, sprite.transform.bottomLeft.y, sprite.transform.bottomRight.y);
- sprite.cameraView.width = Math.max(sprite.transform.upperLeft.x, sprite.transform.upperRight.x, sprite.transform.bottomLeft.x, sprite.transform.bottomRight.x) - sprite.cameraView.x;
- sprite.cameraView.height = Math.max(sprite.transform.upperLeft.y, sprite.transform.upperRight.y, sprite.transform.bottomLeft.y, sprite.transform.bottomRight.y) - sprite.cameraView.y;
- }
- }
- return sprite.cameraView;
- };
- SpriteUtils.getAsPoints = function getAsPoints(sprite) {
- var out = [];
- out.push(new Phaser.Point(sprite.x, sprite.y));
- out.push(new Phaser.Point(sprite.x + sprite.width, sprite.y));
- out.push(new Phaser.Point(sprite.x + sprite.width, sprite.y + sprite.height));
- out.push(new Phaser.Point(sprite.x, sprite.y + sprite.height));
- return out;
- };
- SpriteUtils.overlapsPointer = function overlapsPointer(sprite, pointer) {
- if(sprite.transform.scrollFactor.equals(1)) {
- return Phaser.SpriteUtils.overlapsXY(sprite, pointer.worldX, pointer.worldY);
- } else if(sprite.transform.scrollFactor.equals(0)) {
- return Phaser.SpriteUtils.overlapsXY(sprite, pointer.x, pointer.y);
- } else {
- var px = pointer.worldX * sprite.transform.scrollFactor.x;
- var py = pointer.worldY * sprite.transform.scrollFactor.y;
- return Phaser.SpriteUtils.overlapsXY(sprite, px, py);
- }
- };
- SpriteUtils.overlapsXY = function overlapsXY(sprite, x, y) {
- if((x - sprite.transform.upperLeft.x) * (sprite.transform.upperRight.x - sprite.transform.upperLeft.x) + (y - sprite.transform.upperLeft.y) * (sprite.transform.upperRight.y - sprite.transform.upperLeft.y) < 0) {
- return false;
- }
- if((x - sprite.transform.upperRight.x) * (sprite.transform.upperRight.x - sprite.transform.upperLeft.x) + (y - sprite.transform.upperRight.y) * (sprite.transform.upperRight.y - sprite.transform.upperLeft.y) > 0) {
- return false;
- }
- if((x - sprite.transform.upperLeft.x) * (sprite.transform.bottomLeft.x - sprite.transform.upperLeft.x) + (y - sprite.transform.upperLeft.y) * (sprite.transform.bottomLeft.y - sprite.transform.upperLeft.y) < 0) {
- return false;
- }
- if((x - sprite.transform.bottomLeft.x) * (sprite.transform.bottomLeft.x - sprite.transform.upperLeft.x) + (y - sprite.transform.bottomLeft.y) * (sprite.transform.bottomLeft.y - sprite.transform.upperLeft.y) > 0) {
- return false;
- }
- return true;
- };
- SpriteUtils.overlapsPoint = function overlapsPoint(sprite, point) {
- return Phaser.SpriteUtils.overlapsXY(sprite, point.x, point.y);
- };
- SpriteUtils.onScreen = function onScreen(sprite, camera) {
- if (typeof camera === "undefined") { camera = null; }
- if(camera == null) {
- camera = sprite.game.camera;
- }
- Phaser.SpriteUtils.getScreenXY(sprite, SpriteUtils._tempPoint, camera);
- return (Phaser.SpriteUtils._tempPoint.x + sprite.width > 0) && (Phaser.SpriteUtils._tempPoint.x < camera.width) && (Phaser.SpriteUtils._tempPoint.y + sprite.height > 0) && (Phaser.SpriteUtils._tempPoint.y < camera.height);
- };
- SpriteUtils.getScreenXY = function getScreenXY(sprite, point, camera) {
- if (typeof point === "undefined") { point = null; }
- if (typeof camera === "undefined") { camera = null; }
- if(point == null) {
- point = new Phaser.Point();
- }
- if(camera == null) {
- camera = sprite.game.camera;
- }
- point.x = sprite.x - camera.x * sprite.transform.scrollFactor.x;
- point.y = sprite.y - camera.y * sprite.transform.scrollFactor.y;
- point.x += (point.x > 0) ? 0.0000001 : -0.0000001;
- point.y += (point.y > 0) ? 0.0000001 : -0.0000001;
- return point;
- };
- SpriteUtils.reset = function reset(sprite, x, y) {
- sprite.revive();
- sprite.x = x;
- sprite.y = y;
- return sprite;
- };
- SpriteUtils.setBounds = function setBounds(x, y, width, height) {
- };
- return SpriteUtils;
- })();
- Phaser.SpriteUtils = SpriteUtils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var DebugUtils = (function () {
- function DebugUtils() { }
- DebugUtils.font = '14px Courier';
- DebugUtils.lineHeight = 16;
- DebugUtils.renderShadow = true;
- DebugUtils.start = function start(x, y, color) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- Phaser.DebugUtils.currentX = x;
- Phaser.DebugUtils.currentY = y;
- Phaser.DebugUtils.currentColor = color;
- Phaser.DebugUtils.context.fillStyle = color;
- Phaser.DebugUtils.context.font = Phaser.DebugUtils.font;
- };
- DebugUtils.line = function line(text, x, y) {
- if (typeof x === "undefined") { x = null; }
- if (typeof y === "undefined") { y = null; }
- if(x !== null) {
- Phaser.DebugUtils.currentX = x;
- }
- if(y !== null) {
- Phaser.DebugUtils.currentY = y;
- }
- if(Phaser.DebugUtils.renderShadow) {
- Phaser.DebugUtils.context.fillStyle = 'rgb(0,0,0)';
- Phaser.DebugUtils.context.fillText(text, Phaser.DebugUtils.currentX + 1, Phaser.DebugUtils.currentY + 1);
- Phaser.DebugUtils.context.fillStyle = Phaser.DebugUtils.currentColor;
- }
- Phaser.DebugUtils.context.fillText(text, Phaser.DebugUtils.currentX, Phaser.DebugUtils.currentY);
- Phaser.DebugUtils.currentY += Phaser.DebugUtils.lineHeight;
- };
- DebugUtils.renderSpriteCorners = function renderSpriteCorners(sprite, color) {
- if (typeof color === "undefined") { color = 'rgb(255,0,255)'; }
- Phaser.DebugUtils.start(0, 0, color);
- Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.upperLeft.x) + ' y: ' + Math.floor(sprite.transform.upperLeft.y), sprite.transform.upperLeft.x, sprite.transform.upperLeft.y);
- Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.upperRight.x) + ' y: ' + Math.floor(sprite.transform.upperRight.y), sprite.transform.upperRight.x, sprite.transform.upperRight.y);
- Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.bottomLeft.x) + ' y: ' + Math.floor(sprite.transform.bottomLeft.y), sprite.transform.bottomLeft.x, sprite.transform.bottomLeft.y);
- Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.bottomRight.x) + ' y: ' + Math.floor(sprite.transform.bottomRight.y), sprite.transform.bottomRight.x, sprite.transform.bottomRight.y);
- };
- DebugUtils.renderSoundInfo = function renderSoundInfo(sound, x, y, color) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- Phaser.DebugUtils.start(x, y, color);
- Phaser.DebugUtils.line('Sound: ' + sound.key + ' Locked: ' + sound.game.sound.touchLocked + ' Pending Playback: ' + sound.pendingPlayback);
- Phaser.DebugUtils.line('Decoded: ' + sound.isDecoded + ' Decoding: ' + sound.isDecoding);
- Phaser.DebugUtils.line('Total Duration: ' + sound.totalDuration + ' Playing: ' + sound.isPlaying);
- Phaser.DebugUtils.line('Time: ' + sound.currentTime);
- Phaser.DebugUtils.line('Volume: ' + sound.volume + ' Muted: ' + sound.mute);
- Phaser.DebugUtils.line('WebAudio: ' + sound.usingWebAudio + ' Audio: ' + sound.usingAudioTag);
- if(sound.currentMarker !== '') {
- Phaser.DebugUtils.line('Marker: ' + sound.currentMarker + ' Duration: ' + sound.duration);
- Phaser.DebugUtils.line('Start: ' + sound.markers[sound.currentMarker].start + ' Stop: ' + sound.markers[sound.currentMarker].stop);
- Phaser.DebugUtils.line('Position: ' + sound.position);
- }
- };
- DebugUtils.renderCameraInfo = function renderCameraInfo(camera, x, y, color) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- Phaser.DebugUtils.start(x, y, color);
- Phaser.DebugUtils.line('Camera ID: ' + camera.ID + ' (' + camera.screenView.width + ' x ' + camera.screenView.height + ')');
- Phaser.DebugUtils.line('X: ' + camera.x + ' Y: ' + camera.y + ' Rotation: ' + camera.transform.rotation);
- Phaser.DebugUtils.line('WorldView X: ' + camera.worldView.x + ' Y: ' + camera.worldView.y + ' W: ' + camera.worldView.width + ' H: ' + camera.worldView.height);
- Phaser.DebugUtils.line('ScreenView X: ' + camera.screenView.x + ' Y: ' + camera.screenView.y + ' W: ' + camera.screenView.width + ' H: ' + camera.screenView.height);
- if(camera.worldBounds) {
- Phaser.DebugUtils.line('Bounds: ' + camera.worldBounds.width + ' x ' + camera.worldBounds.height);
- }
- };
- DebugUtils.renderPointer = function renderPointer(pointer, hideIfUp, downColor, upColor, color) {
- if (typeof hideIfUp === "undefined") { hideIfUp = false; }
- if (typeof downColor === "undefined") { downColor = 'rgba(0,255,0,0.5)'; }
- if (typeof upColor === "undefined") { upColor = 'rgba(255,0,0,0.5)'; }
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- if(hideIfUp == true && pointer.isUp == true) {
- return;
- }
- Phaser.DebugUtils.context.beginPath();
- Phaser.DebugUtils.context.arc(pointer.x, pointer.y, pointer.circle.radius, 0, Math.PI * 2);
- if(pointer.active) {
- Phaser.DebugUtils.context.fillStyle = downColor;
- } else {
- Phaser.DebugUtils.context.fillStyle = upColor;
- }
- Phaser.DebugUtils.context.fill();
- Phaser.DebugUtils.context.closePath();
- Phaser.DebugUtils.context.beginPath();
- Phaser.DebugUtils.context.moveTo(pointer.positionDown.x, pointer.positionDown.y);
- Phaser.DebugUtils.context.lineTo(pointer.position.x, pointer.position.y);
- Phaser.DebugUtils.context.lineWidth = 2;
- Phaser.DebugUtils.context.stroke();
- Phaser.DebugUtils.context.closePath();
- Phaser.DebugUtils.start(pointer.x, pointer.y - 100, color);
- Phaser.DebugUtils.line('ID: ' + pointer.id + " Active: " + pointer.active);
- Phaser.DebugUtils.line('World X: ' + pointer.worldX + " World Y: " + pointer.worldY);
- Phaser.DebugUtils.line('Screen X: ' + pointer.x + " Screen Y: " + pointer.y);
- Phaser.DebugUtils.line('Duration: ' + pointer.duration + " ms");
- };
- DebugUtils.renderSpriteInputInfo = function renderSpriteInputInfo(sprite, x, y, color) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- Phaser.DebugUtils.start(x, y, color);
- Phaser.DebugUtils.line('Sprite Input: (' + sprite.width + ' x ' + sprite.height + ')');
- Phaser.DebugUtils.line('x: ' + sprite.input.pointerX().toFixed(1) + ' y: ' + sprite.input.pointerY().toFixed(1));
- Phaser.DebugUtils.line('over: ' + sprite.input.pointerOver() + ' duration: ' + sprite.input.overDuration().toFixed(0));
- Phaser.DebugUtils.line('down: ' + sprite.input.pointerDown() + ' duration: ' + sprite.input.downDuration().toFixed(0));
- Phaser.DebugUtils.line('just over: ' + sprite.input.justOver() + ' just out: ' + sprite.input.justOut());
- };
- DebugUtils.renderInputInfo = function renderInputInfo(x, y, color) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- Phaser.DebugUtils.start(x, y, color);
- if(Phaser.DebugUtils.game.input.camera) {
- Phaser.DebugUtils.line('Input - Camera: ' + Phaser.DebugUtils.game.input.camera.ID);
- } else {
- Phaser.DebugUtils.line('Input - Camera: null');
- }
- Phaser.DebugUtils.line('X: ' + Phaser.DebugUtils.game.input.x + ' Y: ' + Phaser.DebugUtils.game.input.y);
- Phaser.DebugUtils.line('World X: ' + Phaser.DebugUtils.game.input.worldX + ' World Y: ' + Phaser.DebugUtils.game.input.worldY);
- Phaser.DebugUtils.line('Scale X: ' + Phaser.DebugUtils.game.input.scale.x.toFixed(1) + ' Scale Y: ' + Phaser.DebugUtils.game.input.scale.x.toFixed(1));
- Phaser.DebugUtils.line('Screen X: ' + Phaser.DebugUtils.game.input.activePointer.screenX + ' Screen Y: ' + Phaser.DebugUtils.game.input.activePointer.screenY);
- };
- DebugUtils.renderSpriteWorldView = function renderSpriteWorldView(sprite, x, y, color) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- Phaser.DebugUtils.start(x, y, color);
- Phaser.DebugUtils.line('Sprite World Coords (' + sprite.width + ' x ' + sprite.height + ')');
- Phaser.DebugUtils.line('x: ' + sprite.worldView.x + ' y: ' + sprite.worldView.y);
- Phaser.DebugUtils.line('bottom: ' + sprite.worldView.bottom + ' right: ' + sprite.worldView.right.toFixed(1));
- };
- DebugUtils.renderSpriteWorldViewBounds = function renderSpriteWorldViewBounds(sprite, color) {
- if (typeof color === "undefined") { color = 'rgba(0,255,0,0.3)'; }
- Phaser.DebugUtils.renderRectangle(sprite.worldView, color);
- };
- DebugUtils.renderSpriteInfo = function renderSpriteInfo(sprite, x, y, color) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- Phaser.DebugUtils.start(x, y, color);
- Phaser.DebugUtils.line('Sprite: ' + ' (' + sprite.width + ' x ' + sprite.height + ') origin: ' + sprite.transform.origin.x + ' x ' + sprite.transform.origin.y);
- Phaser.DebugUtils.line('x: ' + sprite.x.toFixed(1) + ' y: ' + sprite.y.toFixed(1) + ' rotation: ' + sprite.rotation.toFixed(1));
- Phaser.DebugUtils.line('wx: ' + sprite.worldView.x + ' wy: ' + sprite.worldView.y + ' ww: ' + sprite.worldView.width.toFixed(1) + ' wh: ' + sprite.worldView.height.toFixed(1) + ' wb: ' + sprite.worldView.bottom + ' wr: ' + sprite.worldView.right);
- Phaser.DebugUtils.line('sx: ' + sprite.transform.scale.x.toFixed(1) + ' sy: ' + sprite.transform.scale.y.toFixed(1));
- Phaser.DebugUtils.line('tx: ' + sprite.texture.width.toFixed(1) + ' ty: ' + sprite.texture.height.toFixed(1));
- Phaser.DebugUtils.line('center x: ' + sprite.transform.center.x + ' y: ' + sprite.transform.center.y);
- Phaser.DebugUtils.line('cameraView x: ' + sprite.cameraView.x + ' y: ' + sprite.cameraView.y + ' width: ' + sprite.cameraView.width + ' height: ' + sprite.cameraView.height);
- Phaser.DebugUtils.line('inCamera: ' + Phaser.DebugUtils.game.renderer.spriteRenderer.inCamera(Phaser.DebugUtils.game.camera, sprite));
- };
- DebugUtils.renderSpriteBounds = function renderSpriteBounds(sprite, camera, color) {
- if (typeof camera === "undefined") { camera = null; }
- if (typeof color === "undefined") { color = 'rgba(0,255,0,0.2)'; }
- if(camera == null) {
- camera = Phaser.DebugUtils.game.camera;
- }
- var dx = sprite.worldView.x;
- var dy = sprite.worldView.y;
- Phaser.DebugUtils.context.fillStyle = color;
- Phaser.DebugUtils.context.fillRect(dx, dy, sprite.width, sprite.height);
- };
- DebugUtils.renderPixel = function renderPixel(x, y, fillStyle) {
- if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,1)'; }
- Phaser.DebugUtils.context.fillStyle = fillStyle;
- Phaser.DebugUtils.context.fillRect(x, y, 1, 1);
- };
- DebugUtils.renderPoint = function renderPoint(point, fillStyle) {
- if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,1)'; }
- Phaser.DebugUtils.context.fillStyle = fillStyle;
- Phaser.DebugUtils.context.fillRect(point.x, point.y, 1, 1);
- };
- DebugUtils.renderRectangle = function renderRectangle(rect, fillStyle) {
- if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,0.3)'; }
- Phaser.DebugUtils.context.fillStyle = fillStyle;
- Phaser.DebugUtils.context.fillRect(rect.x, rect.y, rect.width, rect.height);
- };
- DebugUtils.renderCircle = function renderCircle(circle, fillStyle) {
- if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,0.3)'; }
- Phaser.DebugUtils.context.fillStyle = fillStyle;
- Phaser.DebugUtils.context.arc(circle.x, circle.y, circle.radius, 0, Math.PI * 2, false);
- Phaser.DebugUtils.context.fill();
- };
- DebugUtils.renderText = function renderText(text, x, y, color, font) {
- if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
- if (typeof font === "undefined") { font = '16px Courier'; }
- Phaser.DebugUtils.context.font = font;
- Phaser.DebugUtils.context.fillStyle = color;
- Phaser.DebugUtils.context.fillText(text, x, y);
- };
- return DebugUtils;
- })();
- Phaser.DebugUtils = DebugUtils;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Headless) {
- var HeadlessRenderer = (function () {
- function HeadlessRenderer(game) {
- this.game = game;
- }
- HeadlessRenderer.prototype.render = function () {
- };
- HeadlessRenderer.prototype.renderGameObject = function (camera, object) {
- };
- return HeadlessRenderer;
- })();
- Headless.HeadlessRenderer = HeadlessRenderer;
- })(Renderer.Headless || (Renderer.Headless = {}));
- var Headless = Renderer.Headless;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Canvas) {
- var CameraRenderer = (function () {
- function CameraRenderer(game) {
- this._ga = 1;
- this._sx = 0;
- this._sy = 0;
- this._sw = 0;
- this._sh = 0;
- this._dx = 0;
- this._dy = 0;
- this._dw = 0;
- this._dh = 0;
- this._fx = 1;
- this._fy = 1;
- this._tx = 0;
- this._ty = 0;
- this._gac = 1;
- this._sin = 0;
- this._cos = 1;
- this.game = game;
- }
- CameraRenderer.prototype.preRender = function (camera) {
- if(camera.visible == false || camera.transform.scale.x == 0 || camera.transform.scale.y == 0 || camera.texture.alpha < 0.1) {
- return false;
- }
- if(this.game.device.patchAndroidClearRectBug) {
- camera.texture.context.fillStyle = 'rgb(0,0,0)';
- camera.texture.context.fillRect(0, 0, camera.width, camera.height);
- } else {
- camera.texture.context.clearRect(0, 0, camera.width, camera.height);
- }
- if(camera.texture.alpha !== 1 && camera.texture.context.globalAlpha != camera.texture.alpha) {
- this._ga = camera.texture.context.globalAlpha;
- camera.texture.context.globalAlpha = camera.texture.alpha;
- }
- if(camera.texture.opaque) {
- camera.texture.context.fillStyle = camera.texture.backgroundColor;
- camera.texture.context.fillRect(0, 0, camera.width, camera.height);
- }
- if(camera.texture.globalCompositeOperation) {
- camera.texture.context.globalCompositeOperation = camera.texture.globalCompositeOperation;
- }
- camera.plugins.preRender();
- };
- CameraRenderer.prototype.postRender = function (camera) {
- if(this._ga > -1) {
- camera.texture.context.globalAlpha = this._ga;
- }
- camera.plugins.postRender();
- this._ga = -1;
- this._sx = 0;
- this._sy = 0;
- this._sw = camera.width;
- this._sh = camera.height;
- this._fx = camera.transform.scale.x;
- this._fy = camera.transform.scale.y;
- this._sin = 0;
- this._cos = 1;
- this._dx = camera.screenView.x;
- this._dy = camera.screenView.y;
- this._dw = camera.width;
- this._dh = camera.height;
- this.game.stage.context.save();
- if(camera.texture.flippedX) {
- this._fx = -camera.transform.scale.x;
- }
- if(camera.texture.flippedY) {
- this._fy = -camera.transform.scale.y;
- }
- if(camera.modified) {
- if(camera.transform.rotation !== 0 || camera.transform.rotationOffset !== 0) {
- this._sin = Math.sin(camera.game.math.degreesToRadians(camera.transform.rotationOffset + camera.transform.rotation));
- this._cos = Math.cos(camera.game.math.degreesToRadians(camera.transform.rotationOffset + camera.transform.rotation));
- }
- this.game.stage.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + camera.transform.skew.x, -(this._sin * this._fy) + camera.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
- this._dx = camera.transform.origin.x * -this._dw;
- this._dy = camera.transform.origin.y * -this._dh;
- } else {
- this._dx -= (this._dw * camera.transform.origin.x);
- this._dy -= (this._dh * camera.transform.origin.y);
- }
- this._sx = Math.floor(this._sx);
- this._sy = Math.floor(this._sy);
- this._sw = Math.floor(this._sw);
- this._sh = Math.floor(this._sh);
- this._dx = Math.floor(this._dx);
- this._dy = Math.floor(this._dy);
- this._dw = Math.floor(this._dw);
- this._dh = Math.floor(this._dh);
- if(this._sw <= 0 || this._sh <= 0 || this._dw <= 0 || this._dh <= 0) {
- this.game.stage.context.restore();
- return false;
- }
- this.game.stage.context.drawImage(camera.texture.canvas, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
- this.game.stage.context.restore();
- };
- return CameraRenderer;
- })();
- Canvas.CameraRenderer = CameraRenderer;
- })(Renderer.Canvas || (Renderer.Canvas = {}));
- var Canvas = Renderer.Canvas;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Canvas) {
- var GeometryRenderer = (function () {
- function GeometryRenderer(game) {
- this._ga = 1;
- this._sx = 0;
- this._sy = 0;
- this._sw = 0;
- this._sh = 0;
- this._dx = 0;
- this._dy = 0;
- this._dw = 0;
- this._dh = 0;
- this._fx = 1;
- this._fy = 1;
- this._sin = 0;
- this._cos = 1;
- this.game = game;
- }
- GeometryRenderer.prototype.renderCircle = function (camera, circle, context, outline, fill, lineColor, fillColor, lineWidth) {
- if (typeof outline === "undefined") { outline = false; }
- if (typeof fill === "undefined") { fill = true; }
- if (typeof lineColor === "undefined") { lineColor = 'rgb(0,255,0)'; }
- if (typeof fillColor === "undefined") { fillColor = 'rgba(0,100,0.0.3)'; }
- if (typeof lineWidth === "undefined") { lineWidth = 1; }
- this._sx = 0;
- this._sy = 0;
- this._sw = circle.diameter;
- this._sh = circle.diameter;
- this._fx = 1;
- this._fy = 1;
- this._sin = 0;
- this._cos = 1;
- this._dx = camera.screenView.x + circle.x - camera.worldView.x;
- this._dy = camera.screenView.y + circle.y - camera.worldView.y;
- this._dw = circle.diameter;
- this._dh = circle.diameter;
- this._sx = Math.floor(this._sx);
- this._sy = Math.floor(this._sy);
- this._sw = Math.floor(this._sw);
- this._sh = Math.floor(this._sh);
- this._dx = Math.floor(this._dx);
- this._dy = Math.floor(this._dy);
- this._dw = Math.floor(this._dw);
- this._dh = Math.floor(this._dh);
- this.game.stage.saveCanvasValues();
- context.save();
- context.lineWidth = lineWidth;
- context.strokeStyle = lineColor;
- context.fillStyle = fillColor;
- context.beginPath();
- context.arc(this._dx, this._dy, circle.radius, 0, Math.PI * 2);
- context.closePath();
- if(outline) {
- }
- if(fill) {
- context.fill();
- }
- context.restore();
- this.game.stage.restoreCanvasValues();
- return true;
- };
- return GeometryRenderer;
- })();
- Canvas.GeometryRenderer = GeometryRenderer;
- })(Renderer.Canvas || (Renderer.Canvas = {}));
- var Canvas = Renderer.Canvas;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Canvas) {
- var GroupRenderer = (function () {
- function GroupRenderer(game) {
- this._ga = 1;
- this._sx = 0;
- this._sy = 0;
- this._sw = 0;
- this._sh = 0;
- this._dx = 0;
- this._dy = 0;
- this._dw = 0;
- this._dh = 0;
- this._fx = 1;
- this._fy = 1;
- this._sin = 0;
- this._cos = 1;
- this.game = game;
- }
- GroupRenderer.prototype.preRender = function (camera, group) {
- if(group.visible == false || camera.transform.scale.x == 0 || camera.transform.scale.y == 0 || camera.texture.alpha < 0.1) {
- return false;
- }
- this._ga = -1;
- this._sx = 0;
- this._sy = 0;
- this._sw = group.texture.width;
- this._sh = group.texture.height;
- this._fx = group.transform.scale.x;
- this._fy = group.transform.scale.y;
- this._sin = 0;
- this._cos = 1;
- this._dx = 0;
- this._dy = 0;
- this._dw = group.texture.width;
- this._dh = group.texture.height;
- if(group.texture.globalCompositeOperation) {
- group.texture.context.save();
- group.texture.context.globalCompositeOperation = group.texture.globalCompositeOperation;
- }
- if(group.texture.alpha !== 1 && group.texture.context.globalAlpha !== group.texture.alpha) {
- this._ga = group.texture.context.globalAlpha;
- group.texture.context.globalAlpha = group.texture.alpha;
- }
- if(group.texture.flippedX) {
- this._fx = -group.transform.scale.x;
- }
- if(group.texture.flippedY) {
- this._fy = -group.transform.scale.y;
- }
- if(group.modified) {
- if(group.transform.rotation !== 0 || group.transform.rotationOffset !== 0) {
- this._sin = Math.sin(group.game.math.degreesToRadians(group.transform.rotationOffset + group.transform.rotation));
- this._cos = Math.cos(group.game.math.degreesToRadians(group.transform.rotationOffset + group.transform.rotation));
- }
- group.texture.context.save();
- group.texture.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + group.transform.skew.x, -(this._sin * this._fy) + group.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
- this._dx = -group.transform.origin.x;
- this._dy = -group.transform.origin.y;
- } else {
- if(!group.transform.origin.equals(0)) {
- this._dx -= group.transform.origin.x;
- this._dy -= group.transform.origin.y;
- }
- }
- this._sx = Math.floor(this._sx);
- this._sy = Math.floor(this._sy);
- this._sw = Math.floor(this._sw);
- this._sh = Math.floor(this._sh);
- this._dx = Math.floor(this._dx);
- this._dy = Math.floor(this._dy);
- this._dw = Math.floor(this._dw);
- this._dh = Math.floor(this._dh);
- if(group.texture.opaque) {
- group.texture.context.fillStyle = group.texture.backgroundColor;
- group.texture.context.fillRect(this._dx, this._dy, this._dw, this._dh);
- }
- if(group.texture.loaded) {
- group.texture.context.drawImage(group.texture.texture, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
- }
- return true;
- };
- GroupRenderer.prototype.postRender = function (camera, group) {
- if(group.modified || group.texture.globalCompositeOperation) {
- group.texture.context.restore();
- }
- if(this._ga > -1) {
- group.texture.context.globalAlpha = this._ga;
- }
- };
- return GroupRenderer;
- })();
- Canvas.GroupRenderer = GroupRenderer;
- })(Renderer.Canvas || (Renderer.Canvas = {}));
- var Canvas = Renderer.Canvas;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Canvas) {
- var ScrollZoneRenderer = (function () {
- function ScrollZoneRenderer(game) {
- this._ga = 1;
- this._sx = 0;
- this._sy = 0;
- this._sw = 0;
- this._sh = 0;
- this._dx = 0;
- this._dy = 0;
- this._dw = 0;
- this._dh = 0;
- this._fx = 1;
- this._fy = 1;
- this._sin = 0;
- this._cos = 1;
- this.game = game;
- }
- ScrollZoneRenderer.prototype.inCamera = function (camera, scrollZone) {
- if(scrollZone.transform.scrollFactor.equals(0)) {
- return true;
- }
- return true;
- };
- ScrollZoneRenderer.prototype.render = function (camera, scrollZone) {
- if(scrollZone.transform.scale.x == 0 || scrollZone.transform.scale.y == 0 || scrollZone.texture.alpha < 0.1 || this.inCamera(camera, scrollZone) == false) {
- return false;
- }
- this._ga = -1;
- this._sx = 0;
- this._sy = 0;
- this._sw = scrollZone.width;
- this._sh = scrollZone.height;
- this._fx = scrollZone.transform.scale.x;
- this._fy = scrollZone.transform.scale.y;
- this._sin = 0;
- this._cos = 1;
- this._dx = (camera.screenView.x * scrollZone.transform.scrollFactor.x) + scrollZone.x - (camera.worldView.x * scrollZone.transform.scrollFactor.x);
- this._dy = (camera.screenView.y * scrollZone.transform.scrollFactor.y) + scrollZone.y - (camera.worldView.y * scrollZone.transform.scrollFactor.y);
- this._dw = scrollZone.width;
- this._dh = scrollZone.height;
- if(scrollZone.texture.alpha !== 1) {
- this._ga = scrollZone.texture.context.globalAlpha;
- scrollZone.texture.context.globalAlpha = scrollZone.texture.alpha;
- }
- if(scrollZone.texture.flippedX) {
- this._fx = -scrollZone.transform.scale.x;
- }
- if(scrollZone.texture.flippedY) {
- this._fy = -scrollZone.transform.scale.y;
- }
- if(scrollZone.modified) {
- if(scrollZone.texture.renderRotation == true && (scrollZone.rotation !== 0 || scrollZone.transform.rotationOffset !== 0)) {
- this._sin = Math.sin(scrollZone.game.math.degreesToRadians(scrollZone.transform.rotationOffset + scrollZone.rotation));
- this._cos = Math.cos(scrollZone.game.math.degreesToRadians(scrollZone.transform.rotationOffset + scrollZone.rotation));
- }
- scrollZone.texture.context.save();
- scrollZone.texture.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + scrollZone.transform.skew.x, -(this._sin * this._fy) + scrollZone.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
- this._dx = -scrollZone.transform.origin.x;
- this._dy = -scrollZone.transform.origin.y;
- } else {
- if(!scrollZone.transform.origin.equals(0)) {
- this._dx -= scrollZone.transform.origin.x;
- this._dy -= scrollZone.transform.origin.y;
- }
- }
- this._sx = Math.floor(this._sx);
- this._sy = Math.floor(this._sy);
- this._sw = Math.floor(this._sw);
- this._sh = Math.floor(this._sh);
- this._dx = Math.floor(this._dx);
- this._dy = Math.floor(this._dy);
- this._dw = Math.floor(this._dw);
- this._dh = Math.floor(this._dh);
- for(var i = 0; i < scrollZone.regions.length; i++) {
- if(scrollZone.texture.isDynamic) {
- scrollZone.regions[i].render(scrollZone.texture.context, scrollZone.texture.texture, this._dx, this._dy, this._dw, this._dh);
- } else {
- scrollZone.regions[i].render(scrollZone.texture.context, scrollZone.texture.texture, this._dx, this._dy, this._dw, this._dh);
- }
- }
- if(scrollZone.modified) {
- scrollZone.texture.context.restore();
- }
- if(this._ga > -1) {
- scrollZone.texture.context.globalAlpha = this._ga;
- }
- this.game.renderer.renderCount++;
- return true;
- };
- return ScrollZoneRenderer;
- })();
- Canvas.ScrollZoneRenderer = ScrollZoneRenderer;
- })(Renderer.Canvas || (Renderer.Canvas = {}));
- var Canvas = Renderer.Canvas;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Canvas) {
- var SpriteRenderer = (function () {
- function SpriteRenderer(game) {
- this._ga = 1;
- this._sx = 0;
- this._sy = 0;
- this._sw = 0;
- this._sh = 0;
- this._dx = 0;
- this._dy = 0;
- this._dw = 0;
- this._dh = 0;
- this.game = game;
- }
- SpriteRenderer.prototype.inCamera = function (camera, sprite) {
- if(sprite.transform.scrollFactor.equals(0)) {
- return true;
- }
- return Phaser.RectangleUtils.intersects(sprite.cameraView, camera.screenView);
- };
- SpriteRenderer.prototype.render = function (camera, sprite) {
- Phaser.SpriteUtils.updateCameraView(camera, sprite);
- if(sprite.transform.scale.x == 0 || sprite.transform.scale.y == 0 || sprite.texture.alpha < 0.1 || this.inCamera(camera, sprite) == false) {
- return false;
- }
- this._ga = -1;
- this._sx = 0;
- this._sy = 0;
- this._sw = sprite.texture.width;
- this._sh = sprite.texture.height;
- this._dx = sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
- this._dy = sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
- this._dw = sprite.texture.width;
- this._dh = sprite.texture.height;
- if(sprite.animations.currentFrame !== null) {
- this._sx = sprite.animations.currentFrame.x;
- this._sy = sprite.animations.currentFrame.y;
- if(sprite.animations.currentFrame.trimmed) {
- this._dx += sprite.animations.currentFrame.spriteSourceSizeX;
- this._dy += sprite.animations.currentFrame.spriteSourceSizeY;
- this._sw = sprite.animations.currentFrame.spriteSourceSizeW;
- this._sh = sprite.animations.currentFrame.spriteSourceSizeH;
- this._dw = sprite.animations.currentFrame.spriteSourceSizeW;
- this._dh = sprite.animations.currentFrame.spriteSourceSizeH;
- }
- }
- if(sprite.modified) {
- camera.texture.context.save();
- camera.texture.context.setTransform(sprite.transform.local.data[0], sprite.transform.local.data[3], sprite.transform.local.data[1], sprite.transform.local.data[4], this._dx, this._dy);
- this._dx = sprite.transform.origin.x * -this._dw;
- this._dy = sprite.transform.origin.y * -this._dh;
- } else {
- this._dx -= (this._dw * sprite.transform.origin.x);
- this._dy -= (this._dh * sprite.transform.origin.y);
- }
- if(sprite.crop) {
- this._sx += sprite.crop.x * sprite.transform.scale.x;
- this._sy += sprite.crop.y * sprite.transform.scale.y;
- this._sw = sprite.crop.width * sprite.transform.scale.x;
- this._sh = sprite.crop.height * sprite.transform.scale.y;
- this._dx += sprite.crop.x * sprite.transform.scale.x;
- this._dy += sprite.crop.y * sprite.transform.scale.y;
- this._dw = sprite.crop.width * sprite.transform.scale.x;
- this._dh = sprite.crop.height * sprite.transform.scale.y;
- }
- this._sx = Math.floor(this._sx);
- this._sy = Math.floor(this._sy);
- this._sw = Math.floor(this._sw);
- this._sh = Math.floor(this._sh);
- this._dx = Math.floor(this._dx);
- this._dy = Math.floor(this._dy);
- this._dw = Math.floor(this._dw);
- this._dh = Math.floor(this._dh);
- if(this._sw <= 0 || this._sh <= 0 || this._dw <= 0 || this._dh <= 0) {
- return false;
- }
- if(sprite.texture.globalCompositeOperation) {
- camera.texture.context.save();
- camera.texture.context.globalCompositeOperation = sprite.texture.globalCompositeOperation;
- }
- if(sprite.texture.alpha !== 1 && camera.texture.context.globalAlpha != sprite.texture.alpha) {
- this._ga = sprite.texture.context.globalAlpha;
- camera.texture.context.globalAlpha = sprite.texture.alpha;
- }
- if(sprite.texture.opaque) {
- camera.texture.context.fillStyle = sprite.texture.backgroundColor;
- camera.texture.context.fillRect(this._dx, this._dy, this._dw, this._dh);
- }
- if(sprite.texture.loaded) {
- camera.texture.context.drawImage(sprite.texture.texture, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
- }
- if(sprite.modified || sprite.texture.globalCompositeOperation) {
- camera.texture.context.restore();
- }
- if(this._ga > -1) {
- camera.texture.context.globalAlpha = this._ga;
- }
- sprite.renderOrderID = this.game.renderer.renderCount;
- this.game.renderer.renderCount++;
- return true;
- };
- return SpriteRenderer;
- })();
- Canvas.SpriteRenderer = SpriteRenderer;
- })(Renderer.Canvas || (Renderer.Canvas = {}));
- var Canvas = Renderer.Canvas;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Canvas) {
- var TilemapRenderer = (function () {
- function TilemapRenderer(game) {
- this._ga = 1;
- this._dx = 0;
- this._dy = 0;
- this._dw = 0;
- this._dh = 0;
- this._tx = 0;
- this._ty = 0;
- this._tl = 0;
- this._maxX = 0;
- this._maxY = 0;
- this._startX = 0;
- this._startY = 0;
- this.game = game;
- }
- TilemapRenderer.prototype.render = function (camera, tilemap) {
- this._tl = tilemap.layers.length;
- for(var i = 0; i < this._tl; i++) {
- if(tilemap.layers[i].visible == false || tilemap.layers[i].alpha < 0.1) {
- continue;
- }
- var layer = tilemap.layers[i];
- this._maxX = this.game.math.ceil(camera.width / layer.tileWidth) + 1;
- this._maxY = this.game.math.ceil(camera.height / layer.tileHeight) + 1;
- this._startX = this.game.math.floor(camera.worldView.x / layer.tileWidth);
- this._startY = this.game.math.floor(camera.worldView.y / layer.tileHeight);
- if(this._startX < 0) {
- this._startX = 0;
- }
- if(this._startY < 0) {
- this._startY = 0;
- }
- if(this._maxX > layer.widthInTiles) {
- this._maxX = layer.widthInTiles;
- }
- if(this._maxY > layer.heightInTiles) {
- this._maxY = layer.heightInTiles;
- }
- if(this._startX + this._maxX > layer.widthInTiles) {
- this._startX = layer.widthInTiles - this._maxX;
- }
- if(this._startY + this._maxY > layer.heightInTiles) {
- this._startY = layer.heightInTiles - this._maxY;
- }
- this._dx = 0;
- this._dy = 0;
- this._dx += -(camera.worldView.x - (this._startX * layer.tileWidth));
- this._dy += -(camera.worldView.y - (this._startY * layer.tileHeight));
- this._tx = this._dx;
- this._ty = this._dy;
- if(layer.texture.alpha !== 1) {
- this._ga = layer.texture.context.globalAlpha;
- layer.texture.context.globalAlpha = layer.texture.alpha;
- }
- for(var row = this._startY; row < this._startY + this._maxY; row++) {
- this._columnData = layer.mapData[row];
- for(var tile = this._startX; tile < this._startX + this._maxX; tile++) {
- if(layer.tileOffsets[this._columnData[tile]]) {
- layer.texture.context.drawImage(layer.texture.texture, layer.tileOffsets[this._columnData[tile]].x, layer.tileOffsets[this._columnData[tile]].y, layer.tileWidth, layer.tileHeight, this._tx, this._ty, layer.tileWidth, layer.tileHeight);
- }
- this._tx += layer.tileWidth;
- }
- this._tx = this._dx;
- this._ty += layer.tileHeight;
- }
- if(this._ga > -1) {
- layer.texture.context.globalAlpha = this._ga;
- }
- }
- return true;
- };
- return TilemapRenderer;
- })();
- Canvas.TilemapRenderer = TilemapRenderer;
- })(Renderer.Canvas || (Renderer.Canvas = {}));
- var Canvas = Renderer.Canvas;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Renderer) {
- (function (Canvas) {
- var CanvasRenderer = (function () {
- function CanvasRenderer(game) {
- this._c = 0;
- this.game = game;
- this.cameraRenderer = new Phaser.Renderer.Canvas.CameraRenderer(game);
- this.groupRenderer = new Phaser.Renderer.Canvas.GroupRenderer(game);
- this.spriteRenderer = new Phaser.Renderer.Canvas.SpriteRenderer(game);
- this.geometryRenderer = new Phaser.Renderer.Canvas.GeometryRenderer(game);
- this.scrollZoneRenderer = new Phaser.Renderer.Canvas.ScrollZoneRenderer(game);
- this.tilemapRenderer = new Phaser.Renderer.Canvas.TilemapRenderer(game);
- }
- CanvasRenderer.prototype.render = function () {
- this._cameraList = this.game.world.getAllCameras();
- this.renderCount = 0;
- for(this._c = 0; this._c < this._cameraList.length; this._c++) {
- if(this._cameraList[this._c].visible) {
- this.cameraRenderer.preRender(this._cameraList[this._c]);
- this.game.world.group.render(this._cameraList[this._c]);
- this.cameraRenderer.postRender(this._cameraList[this._c]);
- }
- }
- this.renderTotal = this.renderCount;
- };
- CanvasRenderer.prototype.renderGameObject = function (camera, object) {
- if(object.type == Phaser.Types.SPRITE || object.type == Phaser.Types.BUTTON) {
- this.spriteRenderer.render(camera, object);
- } else if(object.type == Phaser.Types.SCROLLZONE) {
- this.scrollZoneRenderer.render(camera, object);
- } else if(object.type == Phaser.Types.TILEMAP) {
- this.tilemapRenderer.render(camera, object);
- }
- };
- return CanvasRenderer;
- })();
- Canvas.CanvasRenderer = CanvasRenderer;
- })(Renderer.Canvas || (Renderer.Canvas = {}));
- var Canvas = Renderer.Canvas;
- })(Phaser.Renderer || (Phaser.Renderer = {}));
- var Renderer = Phaser.Renderer;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var ParticleManager = (function () {
- function ParticleManager(proParticleCount, integrationType) {
- this.PARTICLE_CREATED = 'partilcleCreated';
- this.PARTICLE_UPDATE = 'partilcleUpdate';
- this.PARTICLE_SLEEP = 'particleSleep';
- this.PARTICLE_DEAD = 'partilcleDead';
- this.PROTON_UPDATE = 'protonUpdate';
- this.PROTON_UPDATE_AFTER = 'protonUpdateAfter';
- this.EMITTER_ADDED = 'emitterAdded';
- this.EMITTER_REMOVED = 'emitterRemoved';
- this.emitters = [];
- this.renderers = [];
- this.time = 0;
- this.oldTime = 0;
- this.amendChangeTabsBug = true;
- this.TextureBuffer = {
- };
- this.TextureCanvasBuffer = {
- };
- this.proParticleCount = Particles.ParticleUtils.initValue(proParticleCount, ParticleManager.POOL_MAX);
- this.integrationType = Particles.ParticleUtils.initValue(integrationType, ParticleManager.EULER);
- this.emitters = [];
- this.renderers = [];
- this.time = 0;
- this.oldTime = 0;
- ParticleManager.pool = new Phaser.Particles.ParticlePool(proParticleCount);
- ParticleManager.integrator = new Phaser.Particles.NumericalIntegration(this.integrationType);
- }
- ParticleManager.POOL_MAX = 1000;
- ParticleManager.TIME_STEP = 60;
- ParticleManager.MEASURE = 100;
- ParticleManager.EULER = 'euler';
- ParticleManager.RK2 = 'runge-kutta2';
- ParticleManager.RK4 = 'runge-kutta4';
- ParticleManager.VERLET = 'verlet';
- ParticleManager.prototype.addRender = function (render) {
- render.proton = this;
- this.renderers.push(render.proton);
- };
- ParticleManager.prototype.addEmitter = function (emitter) {
- this.emitters.push(emitter);
- emitter.parent = this;
- };
- ParticleManager.prototype.removeEmitter = function (emitter) {
- var index = this.emitters.indexOf(emitter);
- this.emitters.splice(index, 1);
- emitter.parent = null;
- };
- ParticleManager.prototype.update = function () {
- if(!this.oldTime) {
- this.oldTime = new Date().getTime();
- }
- var time = new Date().getTime();
- this.elapsed = (time - this.oldTime) / 1000;
- this.oldTime = time;
- if(this.elapsed > 0) {
- for(var i = 0; i < this.emitters.length; i++) {
- this.emitters[i].update(this.elapsed);
- }
- }
- };
- ParticleManager.prototype.amendChangeTabsBugHandler = function () {
- if(this.elapsed > .5) {
- this.oldTime = new Date().getTime();
- this.elapsed = 0;
- }
- };
- ParticleManager.prototype.getParticleNumber = function () {
- var total = 0;
- for(var i = 0; i < this.emitters.length; i++) {
- total += this.emitters[i].particles.length;
- }
- return total;
- };
- ParticleManager.prototype.destroy = function () {
- for(var i = 0; i < this.emitters.length; i++) {
- this.emitters[i].destory();
- delete this.emitters[i];
- }
- this.emitters = [];
- this.time = 0;
- this.oldTime = 0;
- ParticleManager.pool.release();
- };
- return ParticleManager;
- })();
- Particles.ParticleManager = ParticleManager;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var Particle = (function () {
- function Particle() {
- this.life = Infinity;
- this.age = 0;
- this.energy = 1;
- this.dead = false;
- this.sleep = false;
- this.target = null;
- this.sprite = null;
- this.parent = null;
- this.mass = 1;
- this.radius = 10;
- this.alpha = 1;
- this.scale = 1;
- this.rotation = 0;
- this.color = null;
- this.easing = Phaser.Easing.Linear.None;
- this.p = new Phaser.Vec2();
- this.v = new Phaser.Vec2();
- this.a = new Phaser.Vec2();
- this.old = {
- p: new Phaser.Vec2(),
- v: new Phaser.Vec2(),
- a: new Phaser.Vec2()
- };
- this.behaviours = [];
- this.id = 'particle_' + Particle.ID++;
- this.reset(true);
- }
- Particle.ID = 0;
- Particle.prototype.getDirection = function () {
- return Math.atan2(this.v.x, -this.v.y) * (180 / Math.PI);
- };
- Particle.prototype.reset = function (init) {
- this.life = Infinity;
- this.age = 0;
- this.energy = 1;
- this.dead = false;
- this.sleep = false;
- this.target = null;
- this.sprite = null;
- this.parent = null;
- this.mass = 1;
- this.radius = 10;
- this.alpha = 1;
- this.scale = 1;
- this.rotation = 0;
- this.color = null;
- this.easing = Phaser.Easing.Linear.None;
- if(init) {
- this.transform = {
- };
- this.p = new Phaser.Vec2();
- this.v = new Phaser.Vec2();
- this.a = new Phaser.Vec2();
- this.old = {
- p: new Phaser.Vec2(),
- v: new Phaser.Vec2(),
- a: new Phaser.Vec2()
- };
- this.behaviours = [];
- } else {
- Particles.ParticleUtils.destroyObject(this.transform);
- this.p.setTo(0, 0);
- this.v.setTo(0, 0);
- this.a.setTo(0, 0);
- this.old.p.setTo(0, 0);
- this.old.v.setTo(0, 0);
- this.old.a.setTo(0, 0);
- this.removeAllBehaviours();
- }
- this.transform.rgb = {
- r: 255,
- g: 255,
- b: 255
- };
- return this;
- };
- Particle.prototype.update = function (time, index) {
- if(!this.sleep) {
- this.age += time;
- var length = this.behaviours.length, i;
- for(i = 0; i < length; i++) {
- if(this.behaviours[i]) {
- this.behaviours[i].applyBehaviour(this, time, index);
- }
- }
- }
- if(this.age >= this.life) {
- this.destroy();
- } else {
- var scale = this.easing(this.age / this.life);
- this.energy = Math.max(1 - scale, 0);
- }
- };
- Particle.prototype.addBehaviour = function (behaviour) {
- this.behaviours.push(behaviour);
- if(behaviour.hasOwnProperty('parents')) {
- behaviour.parents.push(this);
- }
- behaviour.initialize(this);
- };
- Particle.prototype.addBehaviours = function (behaviours) {
- var length = behaviours.length, i;
- for(i = 0; i < length; i++) {
- this.addBehaviour(behaviours[i]);
- }
- };
- Particle.prototype.removeBehaviour = function (behaviour) {
- var index = this.behaviours.indexOf(behaviour);
- if(index > -1) {
- var outBehaviour = this.behaviours.splice(index, 1);
- }
- };
- Particle.prototype.removeAllBehaviours = function () {
- Particles.ParticleUtils.destroyArray(this.behaviours);
- };
- Particle.prototype.destroy = function () {
- this.removeAllBehaviours();
- this.energy = 0;
- this.dead = true;
- this.parent = null;
- };
- return Particle;
- })();
- Particles.Particle = Particle;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var Emitter = (function () {
- function Emitter(pObj) {
- this.initializes = [];
- this.particles = [];
- this.behaviours = [];
- this.emitTime = 0;
- this.emitTotalTimes = -1;
- this.initializes = [];
- this.particles = [];
- this.behaviours = [];
- this.emitTime = 0;
- this.emitTotalTimes = -1;
- this.damping = .006;
- this.bindEmitter = true;
- this.rate = new Phaser.Particles.Initializers.Rate(1, .1);
- this.id = 'emitter_' + Emitter.ID++;
- }
- Emitter.ID = 0;
- Emitter.prototype.emit = function (emitTime, life) {
- this.emitTime = 0;
- this.emitTotalTimes = Particles.ParticleUtils.initValue(emitTime, Infinity);
- if(life == true || life == 'life' || life == 'destroy') {
- if(emitTime == 'once') {
- this.life = 1;
- } else {
- this.life = this.emitTotalTimes;
- }
- } else if(!isNaN(life)) {
- this.life = life;
- }
- this.rate.init();
- };
- Emitter.prototype.stopEmit = function () {
- this.emitTotalTimes = -1;
- this.emitTime = 0;
- };
- Emitter.prototype.removeAllParticles = function () {
- for(var i = 0; i < this.particles.length; i++) {
- this.particles[i].dead = true;
- }
- };
- Emitter.prototype.createParticle = function (initialize, behaviour) {
- if (typeof initialize === "undefined") { initialize = null; }
- if (typeof behaviour === "undefined") { behaviour = null; }
- var particle = Particles.ParticleManager.pool.get();
- this.setupParticle(particle, initialize, behaviour);
- return particle;
- };
- Emitter.prototype.addSelfInitialize = function (pObj) {
- if(pObj['init']) {
- pObj.init(this);
- } else {
- }
- };
- Emitter.prototype.addInitialize = function () {
- var length = arguments.length, i;
- for(i = 0; i < length; i++) {
- this.initializes.push(arguments[i]);
- }
- };
- Emitter.prototype.removeInitialize = function (initializer) {
- var index = this.initializes.indexOf(initializer);
- if(index > -1) {
- this.initializes.splice(index, 1);
- }
- };
- Emitter.prototype.removeInitializers = function () {
- Particles.ParticleUtils.destroyArray(this.initializes);
- };
- Emitter.prototype.addBehaviour = function () {
- var length = arguments.length, i;
- for(i = 0; i < length; i++) {
- this.behaviours.push(arguments[i]);
- if(arguments[i].hasOwnProperty("parents")) {
- arguments[i].parents.push(this);
- }
- }
- };
- Emitter.prototype.removeBehaviour = function (behaviour) {
- var index = this.behaviours.indexOf(behaviour);
- if(index > -1) {
- this.behaviours.splice(index, 1);
- }
- };
- Emitter.prototype.removeAllBehaviours = function () {
- Particles.ParticleUtils.destroyArray(this.behaviours);
- };
- Emitter.prototype.integrate = function (time) {
- var damping = 1 - this.damping;
- Particles.ParticleManager.integrator.integrate(this, time, damping);
- var length = this.particles.length, i;
- for(i = 0; i < length; i++) {
- var particle = this.particles[i];
- particle.update(time, i);
- Particles.ParticleManager.integrator.integrate(particle, time, damping);
- }
- };
- Emitter.prototype.emitting = function (time) {
- if(this.emitTotalTimes == 1) {
- var length = this.rate.getValue(99999), i;
- for(i = 0; i < length; i++) {
- this.createParticle();
- }
- this.emitTotalTimes = 0;
- } else if(!isNaN(this.emitTotalTimes)) {
- this.emitTime += time;
- if(this.emitTime < this.emitTotalTimes) {
- var length = this.rate.getValue(time), i;
- for(i = 0; i < length; i++) {
- this.createParticle();
- }
- }
- }
- };
- Emitter.prototype.update = function (time) {
- this.age += time;
- if(this.age >= this.life || this.dead) {
- this.destroy();
- }
- this.emitting(time);
- this.integrate(time);
- var particle;
- var length = this.particles.length, k;
- for(k = length - 1; k >= 0; k--) {
- particle = this.particles[k];
- if(particle.dead) {
- Particles.ParticleManager.pool.set(particle);
- this.particles.splice(k, 1);
- }
- }
- };
- Emitter.prototype.setupParticle = function (particle, initialize, behaviour) {
- var initializes = this.initializes;
- var behaviours = this.behaviours;
- if(initialize) {
- if(initialize instanceof Array) {
- initializes = initialize;
- } else {
- initializes = [
- initialize
- ];
- }
- }
- if(behaviour) {
- if(behaviour instanceof Array) {
- behaviours = behaviour;
- } else {
- behaviours = [
- behaviour
- ];
- }
- }
- particle.addBehaviours(behaviours);
- particle.parent = this;
- this.particles.push(particle);
- };
- Emitter.prototype.destroy = function () {
- this.dead = true;
- this.emitTotalTimes = -1;
- if(this.particles.length == 0) {
- this.removeInitializers();
- this.removeAllBehaviours();
- if(this.parent) {
- this.parent.removeEmitter(this);
- }
- }
- };
- return Emitter;
- })();
- Particles.Emitter = Emitter;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var ParticlePool = (function () {
- function ParticlePool(num, releaseTime) {
- if (typeof releaseTime === "undefined") { releaseTime = 0; }
- this.poolList = [];
- this.timeoutID = 0;
- this.proParticleCount = Particles.ParticleUtils.initValue(num, 0);
- this.releaseTime = Particles.ParticleUtils.initValue(releaseTime, -1);
- this.poolList = [];
- this.timeoutID = 0;
- for(var i = 0; i < this.proParticleCount; i++) {
- this.add();
- }
- if(this.releaseTime > 0) {
- this.timeoutID = setTimeout(this.release, this.releaseTime / 1000);
- }
- }
- ParticlePool.prototype.create = function (newTypeParticleClass) {
- if (typeof newTypeParticleClass === "undefined") { newTypeParticleClass = null; }
- if(newTypeParticleClass) {
- return new newTypeParticleClass();
- } else {
- return new Phaser.Particles.Particle();
- }
- };
- ParticlePool.prototype.getCount = function () {
- return this.poolList.length;
- };
- ParticlePool.prototype.add = function () {
- return this.poolList.push(this.create());
- };
- ParticlePool.prototype.get = function () {
- if(this.poolList.length === 0) {
- return this.create();
- } else {
- return this.poolList.pop().reset();
- }
- };
- ParticlePool.prototype.set = function (particle) {
- if(this.poolList.length < Particles.ParticleManager.POOL_MAX) {
- return this.poolList.push(particle);
- }
- };
- ParticlePool.prototype.release = function () {
- for(var i = 0; i < this.poolList.length; i++) {
- if(this.poolList[i]['destroy']) {
- this.poolList[i].destroy();
- }
- delete this.poolList[i];
- }
- this.poolList = [];
- };
- return ParticlePool;
- })();
- Particles.ParticlePool = ParticlePool;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var ParticleUtils = (function () {
- function ParticleUtils() { }
- ParticleUtils.initValue = function initValue(value, defaults) {
- var value = (value != null && value != undefined) ? value : defaults;
- return value;
- };
- ParticleUtils.isArray = function isArray(value) {
- return typeof value === 'object' && value.hasOwnProperty('length');
- };
- ParticleUtils.destroyArray = function destroyArray(array) {
- array.length = 0;
- };
- ParticleUtils.destroyObject = function destroyObject(obj) {
- for(var o in obj) {
- delete obj[o];
- }
- };
- ParticleUtils.setSpanValue = function setSpanValue(a, b, c) {
- if (typeof b === "undefined") { b = null; }
- if (typeof c === "undefined") { c = null; }
- if(a instanceof Phaser.Particles.Span) {
- return a;
- } else {
- if(!b) {
- return new Phaser.Particles.Span(a);
- } else {
- if(!c) {
- return new Phaser.Particles.Span(a, b);
- } else {
- return new Phaser.Particles.Span(a, b, c);
- }
- }
- }
- };
- ParticleUtils.getSpanValue = function getSpanValue(pan) {
- if(pan instanceof Phaser.Particles.Span) {
- return pan.getValue();
- } else {
- return pan;
- }
- };
- ParticleUtils.randomAToB = function randomAToB(a, b, INT) {
- if (typeof INT === "undefined") { INT = null; }
- if(!INT) {
- return a + Math.random() * (b - a);
- } else {
- return Math.floor(Math.random() * (b - a)) + a;
- }
- };
- ParticleUtils.randomFloating = function randomFloating(center, f, INT) {
- return ParticleUtils.randomAToB(center - f, center + f, INT);
- };
- ParticleUtils.randomZone = function randomZone(display) {
- };
- ParticleUtils.degreeTransform = function degreeTransform(a) {
- return a * Math.PI / 180;
- };
- ParticleUtils.randomColor = function randomColor() {
- return '#' + ('00000' + (Math.random() * 0x1000000 << 0).toString(16)).slice(-6);
- };
- ParticleUtils.setEasingByName = function setEasingByName(name) {
- switch(name) {
- case 'easeLinear':
- return Phaser.Easing.Linear.None;
- break;
- case 'easeInQuad':
- return Phaser.Easing.Quadratic.In;
- break;
- case 'easeOutQuad':
- return Phaser.Easing.Quadratic.Out;
- break;
- case 'easeInOutQuad':
- return Phaser.Easing.Quadratic.InOut;
- break;
- case 'easeInCubic':
- return Phaser.Easing.Cubic.In;
- break;
- case 'easeOutCubic':
- return Phaser.Easing.Cubic.Out;
- break;
- case 'easeInOutCubic':
- return Phaser.Easing.Cubic.InOut;
- break;
- case 'easeInQuart':
- return Phaser.Easing.Quartic.In;
- break;
- case 'easeOutQuart':
- return Phaser.Easing.Quartic.Out;
- break;
- case 'easeInOutQuart':
- return Phaser.Easing.Quartic.InOut;
- break;
- case 'easeInSine':
- return Phaser.Easing.Sinusoidal.In;
- break;
- case 'easeOutSine':
- return Phaser.Easing.Sinusoidal.Out;
- break;
- case 'easeInOutSine':
- return Phaser.Easing.Sinusoidal.InOut;
- break;
- case 'easeInExpo':
- return Phaser.Easing.Exponential.In;
- break;
- case 'easeOutExpo':
- return Phaser.Easing.Exponential.Out;
- break;
- case 'easeInOutExpo':
- return Phaser.Easing.Exponential.InOut;
- break;
- case 'easeInCirc':
- return Phaser.Easing.Circular.In;
- break;
- case 'easeOutCirc':
- return Phaser.Easing.Circular.Out;
- break;
- case 'easeInOutCirc':
- return Phaser.Easing.Circular.InOut;
- break;
- case 'easeInBack':
- return Phaser.Easing.Back.In;
- break;
- case 'easeOutBack':
- return Phaser.Easing.Back.Out;
- break;
- case 'easeInOutBack':
- return Phaser.Easing.Back.InOut;
- break;
- default:
- return Phaser.Easing.Linear.None;
- break;
- }
- };
- return ParticleUtils;
- })();
- Particles.ParticleUtils = ParticleUtils;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var Polar2D = (function () {
- function Polar2D(r, tha) {
- this.r = Math.abs(r) || 0;
- this.tha = tha || 0;
- }
- Polar2D.prototype.set = function (r, tha) {
- this.r = r;
- this.tha = tha;
- return this;
- };
- Polar2D.prototype.setR = function (r) {
- this.r = r;
- return this;
- };
- Polar2D.prototype.setTha = function (tha) {
- this.tha = tha;
- return this;
- };
- Polar2D.prototype.copy = function (p) {
- this.r = p.r;
- this.tha = p.tha;
- return this;
- };
- Polar2D.prototype.toVector = function () {
- return new Phaser.Vec2(this.getX(), this.getY());
- };
- Polar2D.prototype.getX = function () {
- return this.r * Math.sin(this.tha);
- };
- Polar2D.prototype.getY = function () {
- return -this.r * Math.cos(this.tha);
- };
- Polar2D.prototype.normalize = function () {
- this.r = 1;
- return this;
- };
- Polar2D.prototype.equals = function (v) {
- return ((v.r === this.r) && (v.tha === this.tha));
- };
- Polar2D.prototype.toArray = function () {
- return [
- this.r,
- this.tha
- ];
- };
- Polar2D.prototype.clear = function () {
- this.r = 0.0;
- this.tha = 0.0;
- return this;
- };
- Polar2D.prototype.clone = function () {
- return new Polar2D(this.r, this.tha);
- };
- return Polar2D;
- })();
- Particles.Polar2D = Polar2D;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var Span = (function () {
- function Span(a, b, center) {
- if (typeof b === "undefined") { b = null; }
- if (typeof center === "undefined") { center = null; }
- this.isArray = false;
- if(Particles.ParticleUtils.isArray(a)) {
- this.isArray = true;
- this.a = a;
- } else {
- this.a = Particles.ParticleUtils.initValue(a, 1);
- this.b = Particles.ParticleUtils.initValue(b, this.a);
- this.center = Particles.ParticleUtils.initValue(center, false);
- }
- }
- Span.prototype.getValue = function (INT) {
- if (typeof INT === "undefined") { INT = null; }
- if(this.isArray) {
- return this.a[Math.floor(this.a.length * Math.random())];
- } else {
- if(!this.center) {
- return Particles.ParticleUtils.randomAToB(this.a, this.b, INT);
- } else {
- return Particles.ParticleUtils.randomFloating(this.a, this.b, INT);
- }
- }
- };
- Span.getSpan = function getSpan(a, b, center) {
- return new Span(a, b, center);
- };
- return Span;
- })();
- Particles.Span = Span;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- var NumericalIntegration = (function () {
- function NumericalIntegration(type) {
- this.type = Particles.ParticleUtils.initValue(type, Particles.ParticleManager.EULER);
- }
- NumericalIntegration.prototype.integrate = function (particles, time, damping) {
- this.eulerIntegrate(particles, time, damping);
- };
- NumericalIntegration.prototype.eulerIntegrate = function (particle, time, damping) {
- if(!particle.sleep) {
- particle.old.p.copy(particle.p);
- particle.old.v.copy(particle.v);
- particle.a.multiplyScalar(1 / particle.mass);
- particle.v.add(particle.a.multiplyScalar(time));
- particle.p.add(particle.old.v.multiplyScalar(time));
- if(damping) {
- particle.v.multiplyScalar(damping);
- }
- particle.a.clear();
- }
- };
- return NumericalIntegration;
- })();
- Particles.NumericalIntegration = NumericalIntegration;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Behaviours) {
- var Behaviour = (function () {
- function Behaviour(life, easing) {
- this.id = 'Behaviour_' + Behaviour.ID++;
- this.life = Particles.ParticleUtils.initValue(life, Infinity);
- this.easing = Particles.ParticleUtils.setEasingByName(easing);
- this.age = 0;
- this.energy = 1;
- this.dead = false;
- this.parents = [];
- this.name = 'Behaviour';
- }
- Behaviour.prototype.normalizeForce = function (force) {
- return force.multiplyScalar(Particles.ParticleManager.MEASURE);
- };
- Behaviour.prototype.normalizeValue = function (value) {
- return value * Particles.ParticleManager.MEASURE;
- };
- Behaviour.prototype.initialize = function (particle) {
- };
- Behaviour.prototype.applyBehaviour = function (particle, time, index) {
- this.age += time;
- if(this.age >= this.life || this.dead) {
- this.energy = 0;
- this.dead = true;
- this.destroy();
- } else {
- var scale = this.easing(particle.age / particle.life);
- this.energy = Math.max(1 - scale, 0);
- }
- };
- Behaviour.prototype.destroy = function () {
- var index;
- var length = this.parents.length, i;
- for(i = 0; i < length; i++) {
- this.parents[i].removeBehaviour(this);
- }
- this.parents = [];
- };
- return Behaviour;
- })();
- Behaviours.Behaviour = Behaviour;
- })(Particles.Behaviours || (Particles.Behaviours = {}));
- var Behaviours = Particles.Behaviours;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Behaviours) {
- var RandomDrift = (function (_super) {
- __extends(RandomDrift, _super);
- function RandomDrift(driftX, driftY, delay, life, easing) {
- _super.call(this, life, easing);
- this.reset(driftX, driftY, delay);
- this.time = 0;
- this.name = "RandomDrift";
- }
- RandomDrift.prototype.reset = function (driftX, driftY, delay, life, easing) {
- if (typeof life === "undefined") { life = null; }
- if (typeof easing === "undefined") { easing = null; }
- this.panFoce = new Phaser.Vec2(driftX, driftY);
- this.panFoce = this.normalizeForce(this.panFoce);
- this.delay = delay;
- if(life) {
- this.life = Particles.ParticleUtils.initValue(life, Infinity);
- this.easing = Particles.ParticleUtils.initValue(easing, Phaser.Easing.Linear.None);
- }
- };
- RandomDrift.prototype.applyBehaviour = function (particle, time, index) {
- _super.prototype.applyBehaviour.call(this, particle, time, index);
- this.time += time;
- if(this.time >= this.delay) {
- particle.a.addXY(Particles.ParticleUtils.randomAToB(-this.panFoce.x, this.panFoce.x), Particles.ParticleUtils.randomAToB(-this.panFoce.y, this.panFoce.y));
- this.time = 0;
- }
- };
- return RandomDrift;
- })(Behaviours.Behaviour);
- Behaviours.RandomDrift = RandomDrift;
- })(Particles.Behaviours || (Particles.Behaviours = {}));
- var Behaviours = Particles.Behaviours;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Initializers) {
- var Initialize = (function () {
- function Initialize() { }
- Initialize.prototype.initialize = function (target) {
- };
- Initialize.prototype.reset = function (a, b, c) {
- };
- Initialize.prototype.init = function (emitter, particle) {
- if (typeof particle === "undefined") { particle = null; }
- if(particle) {
- this.initialize(particle);
- } else {
- this.initialize(emitter);
- }
- };
- return Initialize;
- })();
- Initializers.Initialize = Initialize;
- })(Particles.Initializers || (Particles.Initializers = {}));
- var Initializers = Particles.Initializers;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Initializers) {
- var Life = (function (_super) {
- __extends(Life, _super);
- function Life(a, b, c) {
- _super.call(this);
- this.lifePan = Particles.ParticleUtils.setSpanValue(a, b, c);
- }
- Life.prototype.initialize = function (target) {
- if(this.lifePan.a == Infinity) {
- target.life = Infinity;
- } else {
- target.life = this.lifePan.getValue();
- }
- };
- return Life;
- })(Initializers.Initialize);
- Initializers.Life = Life;
- })(Particles.Initializers || (Particles.Initializers = {}));
- var Initializers = Particles.Initializers;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Initializers) {
- var Mass = (function (_super) {
- __extends(Mass, _super);
- function Mass(a, b, c) {
- _super.call(this);
- this.massPan = Particles.ParticleUtils.setSpanValue(a, b, c);
- }
- Mass.prototype.initialize = function (target) {
- target.mass = this.massPan.getValue();
- };
- return Mass;
- })(Initializers.Initialize);
- Initializers.Mass = Mass;
- })(Particles.Initializers || (Particles.Initializers = {}));
- var Initializers = Particles.Initializers;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Initializers) {
- var Position = (function (_super) {
- __extends(Position, _super);
- function Position(zone) {
- _super.call(this);
- if(zone != null && zone != undefined) {
- this.zone = zone;
- } else {
- this.zone = new Phaser.Particles.Zones.PointZone();
- }
- }
- Position.prototype.reset = function (zone) {
- if(zone != null && zone != undefined) {
- this.zone = zone;
- } else {
- this.zone = new Phaser.Particles.Zones.PointZone();
- }
- };
- Position.prototype.initialize = function (target) {
- this.zone.getPosition();
- target.p.x = this.zone.vector.x;
- target.p.y = this.zone.vector.y;
- };
- return Position;
- })(Initializers.Initialize);
- Initializers.Position = Position;
- })(Particles.Initializers || (Particles.Initializers = {}));
- var Initializers = Particles.Initializers;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Initializers) {
- var Rate = (function (_super) {
- __extends(Rate, _super);
- function Rate(numpan, timepan) {
- _super.call(this);
- numpan = Particles.ParticleUtils.initValue(numpan, 1);
- timepan = Particles.ParticleUtils.initValue(timepan, 1);
- this.numPan = new Phaser.Particles.Span(numpan);
- this.timePan = new Phaser.Particles.Span(timepan);
- this.startTime = 0;
- this.nextTime = 0;
- this.init();
- }
- Rate.prototype.init = function () {
- this.startTime = 0;
- this.nextTime = this.timePan.getValue();
- };
- Rate.prototype.getValue = function (time) {
- this.startTime += time;
- if(this.startTime >= this.nextTime) {
- this.startTime = 0;
- this.nextTime = this.timePan.getValue();
- if(this.numPan.b == 1) {
- if(this.numPan.getValue(false) > 0.5) {
- return 1;
- } else {
- return 0;
- }
- } else {
- return this.numPan.getValue(true);
- }
- }
- return 0;
- };
- return Rate;
- })(Initializers.Initialize);
- Initializers.Rate = Rate;
- })(Particles.Initializers || (Particles.Initializers = {}));
- var Initializers = Particles.Initializers;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Initializers) {
- var Velocity = (function (_super) {
- __extends(Velocity, _super);
- function Velocity(rpan, thapan, type) {
- _super.call(this);
- this.rPan = Particles.ParticleUtils.setSpanValue(rpan);
- this.thaPan = Particles.ParticleUtils.setSpanValue(thapan);
- this.type = Particles.ParticleUtils.initValue(type, 'vector');
- }
- Velocity.prototype.reset = function (rpan, thapan, type) {
- this.rPan = Particles.ParticleUtils.setSpanValue(rpan);
- this.thaPan = Particles.ParticleUtils.setSpanValue(thapan);
- this.type = Particles.ParticleUtils.initValue(type, 'vector');
- };
- Velocity.prototype.normalizeVelocity = function (vr) {
- return vr * Particles.ParticleManager.MEASURE;
- };
- Velocity.prototype.initialize = function (target) {
- if(this.type == 'p' || this.type == 'P' || this.type == 'polar') {
- var polar2d = new Particles.Polar2D(this.normalizeVelocity(this.rPan.getValue()), this.thaPan.getValue() * Math.PI / 180);
- target.v.x = polar2d.getX();
- target.v.y = polar2d.getY();
- } else {
- target.v.x = this.normalizeVelocity(this.rPan.getValue());
- target.v.y = this.normalizeVelocity(this.thaPan.getValue());
- }
- };
- return Velocity;
- })(Initializers.Initialize);
- Initializers.Velocity = Velocity;
- })(Particles.Initializers || (Particles.Initializers = {}));
- var Initializers = Particles.Initializers;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Zones) {
- var Zone = (function () {
- function Zone() {
- this.vector = new Phaser.Vec2();
- this.random = 0;
- this.crossType = "dead";
- this.alert = true;
- }
- return Zone;
- })();
- Zones.Zone = Zone;
- })(Particles.Zones || (Particles.Zones = {}));
- var Zones = Particles.Zones;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- (function (Particles) {
- (function (Zones) {
- var PointZone = (function (_super) {
- __extends(PointZone, _super);
- function PointZone(x, y) {
- if (typeof x === "undefined") { x = 0; }
- if (typeof y === "undefined") { y = 0; }
- _super.call(this);
- this.x = x;
- this.y = y;
- }
- PointZone.prototype.getPosition = function () {
- return this.vector.setTo(this.x, this.y);
- };
- PointZone.prototype.crossing = function (particle) {
- if(this.alert) {
- alert('Sorry PointZone does not support crossing method');
- this.alert = false;
- }
- };
- return PointZone;
- })(Zones.Zone);
- Zones.PointZone = PointZone;
- })(Particles.Zones || (Particles.Zones = {}));
- var Zones = Particles.Zones;
- })(Phaser.Particles || (Phaser.Particles = {}));
- var Particles = Phaser.Particles;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var World = (function () {
- function World(game, width, height) {
- this._groupCounter = 0;
- this.game = game;
- this.cameras = new Phaser.CameraManager(this.game, 0, 0, width, height);
- this.bounds = new Phaser.Rectangle(0, 0, width, height);
- }
- World.prototype.getNextGroupID = function () {
- return this._groupCounter++;
- };
- World.prototype.boot = function () {
- this.group = new Phaser.Group(this.game, 0);
- };
- World.prototype.update = function () {
- this.group.update();
- this.cameras.update();
- };
- World.prototype.postUpdate = function () {
- this.group.postUpdate();
- this.cameras.postUpdate();
- };
- World.prototype.destroy = function () {
- this.group.destroy();
- this.cameras.destroy();
- };
- World.prototype.setSize = function (width, height, updateCameraBounds) {
- if (typeof updateCameraBounds === "undefined") { updateCameraBounds = true; }
- this.bounds.width = width;
- this.bounds.height = height;
- if(updateCameraBounds == true) {
- this.game.camera.setBounds(0, 0, width, height);
- }
- };
- Object.defineProperty(World.prototype, "width", {
- get: function () {
- return this.bounds.width;
- },
- set: function (value) {
- this.bounds.width = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(World.prototype, "height", {
- get: function () {
- return this.bounds.height;
- },
- set: function (value) {
- this.bounds.height = value;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(World.prototype, "centerX", {
- get: function () {
- return this.bounds.halfWidth;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(World.prototype, "centerY", {
- get: function () {
- return this.bounds.halfHeight;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(World.prototype, "randomX", {
- get: function () {
- return Math.round(Math.random() * this.bounds.width);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(World.prototype, "randomY", {
- get: function () {
- return Math.round(Math.random() * this.bounds.height);
- },
- enumerable: true,
- configurable: true
- });
- World.prototype.getAllCameras = function () {
- return this.cameras.getAll();
- };
- return World;
- })();
- Phaser.World = World;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Stage = (function () {
- function Stage(game, parent, width, height) {
- var _this = this;
- this._backgroundColor = 'rgb(0,0,0)';
- this.clear = true;
- this.disablePauseScreen = false;
- this.disableBootScreen = false;
- this.disableVisibilityChange = false;
- this.game = game;
- this.canvas = document.createElement('canvas');
- this.canvas.width = width;
- this.canvas.height = height;
- this.context = this.canvas.getContext('2d');
- Phaser.CanvasUtils.addToDOM(this.canvas, parent, true);
- Phaser.CanvasUtils.setTouchAction(this.canvas);
- this.canvas.oncontextmenu = function (event) {
- event.preventDefault();
- };
- this.css3 = new Phaser.Display.CSS3Filters(this.canvas);
- this.scaleMode = Phaser.StageScaleMode.NO_SCALE;
- this.scale = new Phaser.StageScaleMode(this.game, width, height);
- this.getOffset(this.canvas);
- this.bounds = new Phaser.Rectangle(this.offset.x, this.offset.y, width, height);
- this.aspectRatio = width / height;
- document.addEventListener('visibilitychange', function (event) {
- return _this.visibilityChange(event);
- }, false);
- document.addEventListener('webkitvisibilitychange', function (event) {
- return _this.visibilityChange(event);
- }, false);
- document.addEventListener('pagehide', function (event) {
- return _this.visibilityChange(event);
- }, false);
- document.addEventListener('pageshow', function (event) {
- return _this.visibilityChange(event);
- }, false);
- window.onblur = function (event) {
- return _this.visibilityChange(event);
- };
- window.onfocus = function (event) {
- return _this.visibilityChange(event);
- };
- }
- Stage.prototype.boot = function () {
- this.bootScreen = new Phaser.BootScreen(this.game);
- this.pauseScreen = new Phaser.PauseScreen(this.game, this.width, this.height);
- this.orientationScreen = new Phaser.OrientationScreen(this.game);
- this.scale.setScreenSize(true);
- };
- Stage.prototype.update = function () {
- this.scale.update();
- this.context.setTransform(1, 0, 0, 1, 0, 0);
- if(this.clear || (this.game.paused && this.disablePauseScreen == false)) {
- if(this.game.device.patchAndroidClearRectBug) {
- this.context.fillStyle = this._backgroundColor;
- this.context.fillRect(0, 0, this.width, this.height);
- } else {
- this.context.clearRect(0, 0, this.width, this.height);
- }
- }
- if(this.game.paused && this.scale.incorrectOrientation) {
- this.orientationScreen.update();
- this.orientationScreen.render();
- return;
- }
- if(this.game.isRunning == false && this.disableBootScreen == false) {
- this.bootScreen.update();
- this.bootScreen.render();
- }
- if(this.game.paused && this.disablePauseScreen == false) {
- this.pauseScreen.update();
- this.pauseScreen.render();
- }
- };
- Stage.prototype.visibilityChange = function (event) {
- if(this.disableVisibilityChange) {
- return;
- }
- if(event.type == 'pagehide' || event.type == 'blur' || document['hidden'] == true || document['webkitHidden'] == true) {
- if(this.game.paused == false) {
- this.pauseGame();
- }
- } else {
- if(this.game.paused == true) {
- this.resumeGame();
- }
- }
- };
- Stage.prototype.enableOrientationCheck = function (forceLandscape, forcePortrait, imageKey) {
- if (typeof imageKey === "undefined") { imageKey = ''; }
- this.scale.forceLandscape = forceLandscape;
- this.scale.forcePortrait = forcePortrait;
- this.orientationScreen.enable(imageKey);
- if(forceLandscape || forcePortrait) {
- if((this.scale.isLandscape && forcePortrait) || (this.scale.isPortrait && forceLandscape)) {
- this.game.paused = true;
- this.scale.incorrectOrientation = true;
- } else {
- this.scale.incorrectOrientation = false;
- }
- }
- };
- Stage.prototype.pauseGame = function () {
- this.game.paused = true;
- if(this.disablePauseScreen == false && this.pauseScreen) {
- this.pauseScreen.onPaused();
- }
- this.saveCanvasValues();
- };
- Stage.prototype.resumeGame = function () {
- if(this.disablePauseScreen == false && this.pauseScreen) {
- this.pauseScreen.onResume();
- }
- this.restoreCanvasValues();
- this.game.paused = false;
- };
- Stage.prototype.getOffset = function (element, populateOffset) {
- if (typeof populateOffset === "undefined") { populateOffset = true; }
- var box = element.getBoundingClientRect();
- var clientTop = element.clientTop || document.body.clientTop || 0;
- var clientLeft = element.clientLeft || document.body.clientLeft || 0;
- var scrollTop = window.pageYOffset || element.scrollTop || document.body.scrollTop;
- var scrollLeft = window.pageXOffset || element.scrollLeft || document.body.scrollLeft;
- if(populateOffset) {
- this.offset = new Phaser.Point(box.left + scrollLeft - clientLeft, box.top + scrollTop - clientTop);
- return this.offset;
- } else {
- return new Phaser.Point(box.left + scrollLeft - clientLeft, box.top + scrollTop - clientTop);
- }
- };
- Stage.prototype.saveCanvasValues = function () {
- this.strokeStyle = this.context.strokeStyle;
- this.lineWidth = this.context.lineWidth;
- this.fillStyle = this.context.fillStyle;
- };
- Stage.prototype.restoreCanvasValues = function () {
- this.context.strokeStyle = this.strokeStyle;
- this.context.lineWidth = this.lineWidth;
- this.context.fillStyle = this.fillStyle;
- if(this.game.device.patchAndroidClearRectBug) {
- this.context.fillStyle = this._backgroundColor;
- this.context.fillRect(0, 0, this.width, this.height);
- } else {
- this.context.clearRect(0, 0, this.width, this.height);
- }
- };
- Object.defineProperty(Stage.prototype, "backgroundColor", {
- get: function () {
- return this._backgroundColor;
- },
- set: function (color) {
- this.canvas.style.backgroundColor = color;
- this._backgroundColor = color;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "x", {
- get: function () {
- return this.bounds.x;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "y", {
- get: function () {
- return this.bounds.y;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "width", {
- get: function () {
- return this.bounds.width;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "height", {
- get: function () {
- return this.bounds.height;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "centerX", {
- get: function () {
- return this.bounds.halfWidth;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "centerY", {
- get: function () {
- return this.bounds.halfHeight;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "randomX", {
- get: function () {
- return Math.round(Math.random() * this.bounds.width);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Stage.prototype, "randomY", {
- get: function () {
- return Math.round(Math.random() * this.bounds.height);
- },
- enumerable: true,
- configurable: true
- });
- return Stage;
- })();
- Phaser.Stage = Stage;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var State = (function () {
- function State(game) {
- this.game = game;
- this.add = game.add;
- this.camera = game.camera;
- this.cache = game.cache;
- this.input = game.input;
- this.load = game.load;
- this.math = game.math;
- this.sound = game.sound;
- this.stage = game.stage;
- this.time = game.time;
- this.tweens = game.tweens;
- this.world = game.world;
- }
- State.prototype.init = function () {
- };
- State.prototype.create = function () {
- };
- State.prototype.update = function () {
- };
- State.prototype.render = function () {
- };
- State.prototype.paused = function () {
- };
- State.prototype.destroy = function () {
- };
- return State;
- })();
- Phaser.State = State;
-})(Phaser || (Phaser = {}));
-var Phaser;
-(function (Phaser) {
- var Game = (function () {
- function Game(callbackContext, parent, width, height, preloadCallback, createCallback, updateCallback, renderCallback, destroyCallback) {
- if (typeof parent === "undefined") { parent = ''; }
- if (typeof width === "undefined") { width = 800; }
- if (typeof height === "undefined") { height = 600; }
- if (typeof preloadCallback === "undefined") { preloadCallback = null; }
- if (typeof createCallback === "undefined") { createCallback = null; }
- if (typeof updateCallback === "undefined") { updateCallback = null; }
- if (typeof renderCallback === "undefined") { renderCallback = null; }
- if (typeof destroyCallback === "undefined") { destroyCallback = null; }
- var _this = this;
- this._loadComplete = false;
- this._paused = false;
- this._pendingState = null;
- this.state = null;
- this.onPreloadCallback = null;
- this.onCreateCallback = null;
- this.onUpdateCallback = null;
- this.onRenderCallback = null;
- this.onPreRenderCallback = null;
- this.onLoadUpdateCallback = null;
- this.onLoadRenderCallback = null;
- this.onPausedCallback = null;
- this.onDestroyCallback = null;
- this.isBooted = false;
- this.isRunning = false;
- if(window['PhaserGlobal'] && window['PhaserGlobal'].singleInstance) {
- if(Phaser.GAMES.length > 0) {
- console.log('Phaser detected an instance of this game already running, aborting');
- return;
- }
- }
- this.id = Phaser.GAMES.push(this) - 1;
- this.callbackContext = callbackContext;
- this.onPreloadCallback = preloadCallback;
- this.onCreateCallback = createCallback;
- this.onUpdateCallback = updateCallback;
- this.onRenderCallback = renderCallback;
- this.onDestroyCallback = destroyCallback;
- if(document.readyState === 'complete' || document.readyState === 'interactive') {
- setTimeout(function () {
- return Phaser.GAMES[_this.id].boot(parent, width, height);
- });
- } else {
- document.addEventListener('DOMContentLoaded', Phaser.GAMES[this.id].boot(parent, width, height), false);
- window.addEventListener('load', Phaser.GAMES[this.id].boot(parent, width, height), false);
- }
- }
- Game.prototype.boot = function (parent, width, height) {
- var _this = this;
- if(this.isBooted == true) {
- return;
- }
- if(!document.body) {
- setTimeout(function () {
- return Phaser.GAMES[_this.id].boot(parent, width, height);
- }, 13);
- } else {
- document.removeEventListener('DOMContentLoaded', Phaser.GAMES[this.id].boot);
- window.removeEventListener('load', Phaser.GAMES[this.id].boot);
- this.onPause = new Phaser.Signal();
- this.onResume = new Phaser.Signal();
- this.device = new Phaser.Device();
- this.net = new Phaser.Net(this);
- this.math = new Phaser.GameMath(this);
- this.stage = new Phaser.Stage(this, parent, width, height);
- this.world = new Phaser.World(this, width, height);
- this.add = new Phaser.GameObjectFactory(this);
- this.cache = new Phaser.Cache(this);
- this.load = new Phaser.Loader(this);
- this.time = new Phaser.TimeManager(this);
- this.tweens = new Phaser.TweenManager(this);
- this.input = new Phaser.InputManager(this);
- this.sound = new Phaser.SoundManager(this);
- this.rnd = new Phaser.RandomDataGenerator([
- (Date.now() * Math.random()).toString()
- ]);
- this.physics = new Phaser.Physics.PhysicsManager(this);
- this.plugins = new Phaser.PluginManager(this, this);
- this.load.onLoadComplete.add(this.loadComplete, this);
- this.setRenderer(Phaser.Types.RENDERER_CANVAS);
- this.world.boot();
- this.stage.boot();
- this.input.boot();
- this.isBooted = true;
- Phaser.DebugUtils.game = this;
- Phaser.ColorUtils.game = this;
- Phaser.DebugUtils.context = this.stage.context;
- if(this.onPreloadCallback == null && this.onCreateCallback == null && this.onUpdateCallback == null && this.onRenderCallback == null && this._pendingState == null) {
- this._raf = new Phaser.RequestAnimationFrame(this, this.bootLoop);
- } else {
- this.isRunning = true;
- this._loadComplete = false;
- this._raf = new Phaser.RequestAnimationFrame(this, this.loop);
- if(this._pendingState) {
- this.switchState(this._pendingState, false, false);
- } else {
- this.startState();
- }
- }
- }
- };
- Game.prototype.loadComplete = function () {
- this._loadComplete = true;
- this.onCreateCallback.call(this.callbackContext);
- };
- Game.prototype.bootLoop = function () {
- this.tweens.update();
- this.input.update();
- this.stage.update();
- };
- Game.prototype.pausedLoop = function () {
- this.tweens.update();
- this.input.update();
- this.stage.update();
- this.sound.update();
- if(this.onPausedCallback !== null) {
- this.onPausedCallback.call(this.callbackContext);
- }
- };
- Game.prototype.loop = function () {
- this.plugins.preUpdate();
- this.tweens.update();
- this.input.update();
- this.stage.update();
- this.sound.update();
- this.physics.update();
- this.world.update();
- this.plugins.update();
- if(this._loadComplete && this.onUpdateCallback) {
- this.onUpdateCallback.call(this.callbackContext);
- } else if(this._loadComplete == false && this.onLoadUpdateCallback) {
- this.onLoadUpdateCallback.call(this.callbackContext);
- }
- this.world.postUpdate();
- this.plugins.postUpdate();
- this.plugins.preRender();
- if(this._loadComplete && this.onPreRenderCallback) {
- this.onPreRenderCallback.call(this.callbackContext);
- }
- this.renderer.render();
- this.plugins.render();
- if(this._loadComplete && this.onRenderCallback) {
- this.onRenderCallback.call(this.callbackContext);
- } else if(this._loadComplete == false && this.onLoadRenderCallback) {
- this.onLoadRenderCallback.call(this.callbackContext);
- }
- this.plugins.postRender();
- };
- Game.prototype.startState = function () {
- if(this.onPreloadCallback !== null) {
- this.load.reset();
- this.onPreloadCallback.call(this.callbackContext);
- if(this.load.queueSize == 0) {
- if(this.onCreateCallback !== null) {
- this.onCreateCallback.call(this.callbackContext);
- }
- this._loadComplete = true;
- } else {
- this.load.onLoadComplete.add(this.loadComplete, this);
- this.load.start();
- }
- } else {
- if(this.onCreateCallback !== null) {
- this.onCreateCallback.call(this.callbackContext);
- }
- this._loadComplete = true;
- }
- };
- Game.prototype.setRenderer = function (renderer) {
- switch(renderer) {
- case Phaser.Types.RENDERER_AUTO_DETECT:
- this.renderer = new Phaser.Renderer.Headless.HeadlessRenderer(this);
- break;
- case Phaser.Types.RENDERER_AUTO_DETECT:
- case Phaser.Types.RENDERER_CANVAS:
- this.renderer = new Phaser.Renderer.Canvas.CanvasRenderer(this);
- break;
- }
- };
- Game.prototype.setCallbacks = function (preloadCallback, createCallback, updateCallback, renderCallback, destroyCallback) {
- if (typeof preloadCallback === "undefined") { preloadCallback = null; }
- if (typeof createCallback === "undefined") { createCallback = null; }
- if (typeof updateCallback === "undefined") { updateCallback = null; }
- if (typeof renderCallback === "undefined") { renderCallback = null; }
- if (typeof destroyCallback === "undefined") { destroyCallback = null; }
- this.onPreloadCallback = preloadCallback;
- this.onCreateCallback = createCallback;
- this.onUpdateCallback = updateCallback;
- this.onRenderCallback = renderCallback;
- this.onDestroyCallback = destroyCallback;
- };
- Game.prototype.switchState = function (state, clearWorld, clearCache) {
- if (typeof clearWorld === "undefined") { clearWorld = true; }
- if (typeof clearCache === "undefined") { clearCache = false; }
- if(this.isBooted == false) {
- this._pendingState = state;
- return;
- }
- if(this.onDestroyCallback !== null) {
- this.onDestroyCallback.call(this.callbackContext);
- }
- this.input.reset(true);
- if(typeof state === 'function') {
- this.state = new state(this);
- } else {
- this.state = state;
- }
- if(this.state['create'] || this.state['update']) {
- this.callbackContext = this.state;
- this.onPreloadCallback = null;
- this.onLoadRenderCallback = null;
- this.onLoadUpdateCallback = null;
- this.onCreateCallback = null;
- this.onUpdateCallback = null;
- this.onRenderCallback = null;
- this.onPreRenderCallback = null;
- this.onPausedCallback = null;
- this.onDestroyCallback = null;
- if(this.state['preload']) {
- this.onPreloadCallback = this.state['preload'];
- }
- if(this.state['loadRender']) {
- this.onLoadRenderCallback = this.state['loadRender'];
- }
- if(this.state['loadUpdate']) {
- this.onLoadUpdateCallback = this.state['loadUpdate'];
- }
- if(this.state['create']) {
- this.onCreateCallback = this.state['create'];
- }
- if(this.state['update']) {
- this.onUpdateCallback = this.state['update'];
- }
- if(this.state['preRender']) {
- this.onPreRenderCallback = this.state['preRender'];
- }
- if(this.state['render']) {
- this.onRenderCallback = this.state['render'];
- }
- if(this.state['paused']) {
- this.onPausedCallback = this.state['paused'];
- }
- if(this.state['destroy']) {
- this.onDestroyCallback = this.state['destroy'];
- }
- if(clearWorld) {
- this.world.destroy();
- if(clearCache == true) {
- this.cache.destroy();
- }
- }
- this._loadComplete = false;
- this.startState();
- } else {
- throw new Error("Invalid State object given. Must contain at least a create or update function.");
- }
- };
- Game.prototype.destroy = function () {
- this.callbackContext = null;
- this.onPreloadCallback = null;
- this.onLoadRenderCallback = null;
- this.onLoadUpdateCallback = null;
- this.onCreateCallback = null;
- this.onUpdateCallback = null;
- this.onRenderCallback = null;
- this.onPausedCallback = null;
- this.onDestroyCallback = null;
- this.cache = null;
- this.input = null;
- this.load = null;
- this.sound = null;
- this.stage = null;
- this.time = null;
- this.world = null;
- this.isBooted = false;
- };
- Object.defineProperty(Game.prototype, "paused", {
- get: function () {
- return this._paused;
- },
- set: function (value) {
- if(value == true && this._paused == false) {
- this._paused = true;
- this.onPause.dispatch();
- this.sound.pauseAll();
- this._raf.callback = this.pausedLoop;
- } else if(value == false && this._paused == true) {
- this._paused = false;
- this.onResume.dispatch();
- this.input.reset();
- this.sound.resumeAll();
- if(this.isRunning == false) {
- this._raf.callback = this.bootLoop;
- } else {
- this._raf.callback = this.loop;
- }
- }
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(Game.prototype, "camera", {
- get: function () {
- return this.world.cameras.current;
- },
- enumerable: true,
- configurable: true
- });
- return Game;
- })();
- Phaser.Game = Game;
-})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Types = (function () {
+ function Types() { }
+ Types.RENDERER_AUTO_DETECT = 0;
+ Types.RENDERER_HEADLESS = 1;
+ Types.RENDERER_CANVAS = 2;
+ Types.RENDERER_WEBGL = 3;
+ Types.CAMERA_TYPE_ORTHOGRAPHIC = 0;
+ Types.CAMERA_TYPE_ISOMETRIC = 1;
+ Types.CAMERA_FOLLOW_LOCKON = 0;
+ Types.CAMERA_FOLLOW_PLATFORMER = 1;
+ Types.CAMERA_FOLLOW_TOPDOWN = 2;
+ Types.CAMERA_FOLLOW_TOPDOWN_TIGHT = 3;
+ Types.GROUP = 0;
+ Types.SPRITE = 1;
+ Types.GEOMSPRITE = 2;
+ Types.PARTICLE = 3;
+ Types.EMITTER = 4;
+ Types.TILEMAP = 5;
+ Types.SCROLLZONE = 6;
+ Types.BUTTON = 7;
+ Types.DYNAMICTEXTURE = 8;
+ Types.GEOM_POINT = 0;
+ Types.GEOM_CIRCLE = 1;
+ Types.GEOM_RECTANGLE = 2;
+ Types.GEOM_LINE = 3;
+ Types.GEOM_POLYGON = 4;
+ Types.BODY_DISABLED = 0;
+ Types.BODY_STATIC = 1;
+ Types.BODY_KINETIC = 2;
+ Types.BODY_DYNAMIC = 3;
+ Types.OUT_OF_BOUNDS_KILL = 0;
+ Types.OUT_OF_BOUNDS_DESTROY = 1;
+ Types.OUT_OF_BOUNDS_PERSIST = 2;
+ Types.SORT_ASCENDING = -1;
+ Types.SORT_DESCENDING = 1;
+ Types.LEFT = 0x0001;
+ Types.RIGHT = 0x0010;
+ Types.UP = 0x0100;
+ Types.DOWN = 0x1000;
+ Types.NONE = 0;
+ Types.CEILING = 0x0100;
+ Types.FLOOR = 0x1000;
+ Types.WALL = 0x0001 | 0x0010;
+ Types.ANY = 0x0001 | 0x0010 | 0x0100 | 0x1000;
+ return Types;
+ })();
+ Phaser.Types = Types;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Point = (function () {
+ function Point(x, y) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ this.x = x;
+ this.y = y;
+ }
+ Point.prototype.copyFrom = function (source) {
+ return this.setTo(source.x, source.y);
+ };
+ Point.prototype.invert = function () {
+ return this.setTo(this.y, this.x);
+ };
+ Point.prototype.setTo = function (x, y) {
+ this.x = x;
+ this.y = y;
+ return this;
+ };
+ Point.prototype.toString = function () {
+ return '[{Point (x=' + this.x + ' y=' + this.y + ')}]';
+ };
+ return Point;
+ })();
+ Phaser.Point = Point;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Rectangle = (function () {
+ function Rectangle(x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = 0; }
+ if (typeof height === "undefined") { height = 0; }
+ this.x = x;
+ this.y = y;
+ this.width = width;
+ this.height = height;
+ }
+ Object.defineProperty(Rectangle.prototype, "halfWidth", {
+ get: function () {
+ return Math.round(this.width / 2);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "halfHeight", {
+ get: function () {
+ return Math.round(this.height / 2);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "bottom", {
+ get: function () {
+ return this.y + this.height;
+ },
+ set: function (value) {
+ if(value <= this.y) {
+ this.height = 0;
+ } else {
+ this.height = (this.y - value);
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "bottomRight", {
+ set: function (value) {
+ this.right = value.x;
+ this.bottom = value.y;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "left", {
+ get: function () {
+ return this.x;
+ },
+ set: function (value) {
+ if(value >= this.right) {
+ this.width = 0;
+ } else {
+ this.width = this.right - value;
+ }
+ this.x = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "right", {
+ get: function () {
+ return this.x + this.width;
+ },
+ set: function (value) {
+ if(value <= this.x) {
+ this.width = 0;
+ } else {
+ this.width = this.x + value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "volume", {
+ get: function () {
+ return this.width * this.height;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "perimeter", {
+ get: function () {
+ return (this.width * 2) + (this.height * 2);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "top", {
+ get: function () {
+ return this.y;
+ },
+ set: function (value) {
+ if(value >= this.bottom) {
+ this.height = 0;
+ this.y = value;
+ } else {
+ this.height = (this.bottom - value);
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "topLeft", {
+ set: function (value) {
+ this.x = value.x;
+ this.y = value.y;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Rectangle.prototype, "empty", {
+ get: function () {
+ return (!this.width || !this.height);
+ },
+ set: function (value) {
+ this.setTo(0, 0, 0, 0);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Rectangle.prototype.offset = function (dx, dy) {
+ this.x += dx;
+ this.y += dy;
+ return this;
+ };
+ Rectangle.prototype.offsetPoint = function (point) {
+ return this.offset(point.x, point.y);
+ };
+ Rectangle.prototype.setTo = function (x, y, width, height) {
+ this.x = x;
+ this.y = y;
+ this.width = width;
+ this.height = height;
+ return this;
+ };
+ Rectangle.prototype.floor = function () {
+ this.x = Math.floor(this.x);
+ this.y = Math.floor(this.y);
+ };
+ Rectangle.prototype.copyFrom = function (source) {
+ return this.setTo(source.x, source.y, source.width, source.height);
+ };
+ Rectangle.prototype.toString = function () {
+ return "[{Rectangle (x=" + this.x + " y=" + this.y + " width=" + this.width + " height=" + this.height + " empty=" + this.empty + ")}]";
+ };
+ return Rectangle;
+ })();
+ Phaser.Rectangle = Rectangle;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Circle = (function () {
+ function Circle(x, y, diameter) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof diameter === "undefined") { diameter = 0; }
+ this._diameter = 0;
+ this._radius = 0;
+ this.x = 0;
+ this.y = 0;
+ this.setTo(x, y, diameter);
+ }
+ Object.defineProperty(Circle.prototype, "diameter", {
+ get: function () {
+ return this._diameter;
+ },
+ set: function (value) {
+ if(value > 0) {
+ this._diameter = value;
+ this._radius = value * 0.5;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Circle.prototype, "radius", {
+ get: function () {
+ return this._radius;
+ },
+ set: function (value) {
+ if(value > 0) {
+ this._radius = value;
+ this._diameter = value * 2;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Circle.prototype.circumference = function () {
+ return 2 * (Math.PI * this._radius);
+ };
+ Object.defineProperty(Circle.prototype, "bottom", {
+ get: function () {
+ return this.y + this._radius;
+ },
+ set: function (value) {
+ if(value < this.y) {
+ this._radius = 0;
+ this._diameter = 0;
+ } else {
+ this.radius = value - this.y;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Circle.prototype, "left", {
+ get: function () {
+ return this.x - this._radius;
+ },
+ set: function (value) {
+ if(value > this.x) {
+ this._radius = 0;
+ this._diameter = 0;
+ } else {
+ this.radius = this.x - value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Circle.prototype, "right", {
+ get: function () {
+ return this.x + this._radius;
+ },
+ set: function (value) {
+ if(value < this.x) {
+ this._radius = 0;
+ this._diameter = 0;
+ } else {
+ this.radius = value - this.x;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Circle.prototype, "top", {
+ get: function () {
+ return this.y - this._radius;
+ },
+ set: function (value) {
+ if(value > this.y) {
+ this._radius = 0;
+ this._diameter = 0;
+ } else {
+ this.radius = this.y - value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Circle.prototype, "area", {
+ get: function () {
+ if(this._radius > 0) {
+ return Math.PI * this._radius * this._radius;
+ } else {
+ return 0;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Circle.prototype.setTo = function (x, y, diameter) {
+ this.x = x;
+ this.y = y;
+ this._diameter = diameter;
+ this._radius = diameter * 0.5;
+ return this;
+ };
+ Circle.prototype.copyFrom = function (source) {
+ return this.setTo(source.x, source.y, source.diameter);
+ };
+ Object.defineProperty(Circle.prototype, "empty", {
+ get: function () {
+ return (this._diameter == 0);
+ },
+ set: function (value) {
+ this.setTo(0, 0, 0);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Circle.prototype.offset = function (dx, dy) {
+ this.x += dx;
+ this.y += dy;
+ return this;
+ };
+ Circle.prototype.offsetPoint = function (point) {
+ return this.offset(point.x, point.y);
+ };
+ Circle.prototype.toString = function () {
+ return "[{Circle (x=" + this.x + " y=" + this.y + " diameter=" + this.diameter + " radius=" + this.radius + ")}]";
+ };
+ return Circle;
+ })();
+ Phaser.Circle = Circle;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Line = (function () {
+ function Line(x1, y1, x2, y2) {
+ if (typeof x1 === "undefined") { x1 = 0; }
+ if (typeof y1 === "undefined") { y1 = 0; }
+ if (typeof x2 === "undefined") { x2 = 0; }
+ if (typeof y2 === "undefined") { y2 = 0; }
+ this.x1 = 0;
+ this.y1 = 0;
+ this.x2 = 0;
+ this.y2 = 0;
+ this.setTo(x1, y1, x2, y2);
+ }
+ Line.prototype.clone = function (output) {
+ if (typeof output === "undefined") { output = new Line(); }
+ return output.setTo(this.x1, this.y1, this.x2, this.y2);
+ };
+ Line.prototype.copyFrom = function (source) {
+ return this.setTo(source.x1, source.y1, source.x2, source.y2);
+ };
+ Line.prototype.copyTo = function (target) {
+ return target.copyFrom(this);
+ };
+ Line.prototype.setTo = function (x1, y1, x2, y2) {
+ if (typeof x1 === "undefined") { x1 = 0; }
+ if (typeof y1 === "undefined") { y1 = 0; }
+ if (typeof x2 === "undefined") { x2 = 0; }
+ if (typeof y2 === "undefined") { y2 = 0; }
+ this.x1 = x1;
+ this.y1 = y1;
+ this.x2 = x2;
+ this.y2 = y2;
+ return this;
+ };
+ Object.defineProperty(Line.prototype, "width", {
+ get: function () {
+ return Math.max(this.x1, this.x2) - Math.min(this.x1, this.x2);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Line.prototype, "height", {
+ get: function () {
+ return Math.max(this.y1, this.y2) - Math.min(this.y1, this.y2);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Line.prototype, "length", {
+ get: function () {
+ return Math.sqrt((this.x2 - this.x1) * (this.x2 - this.x1) + (this.y2 - this.y1) * (this.y2 - this.y1));
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Line.prototype.getY = function (x) {
+ return this.slope * x + this.yIntercept;
+ };
+ Object.defineProperty(Line.prototype, "angle", {
+ get: function () {
+ return Math.atan2(this.x2 - this.x1, this.y2 - this.y1);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Line.prototype, "slope", {
+ get: function () {
+ return (this.y2 - this.y1) / (this.x2 - this.x1);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Line.prototype, "perpSlope", {
+ get: function () {
+ return -((this.x2 - this.x1) / (this.y2 - this.y1));
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Line.prototype, "yIntercept", {
+ get: function () {
+ return (this.y1 - this.slope * this.x1);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Line.prototype.isPointOnLine = function (x, y) {
+ if((x - this.x1) * (this.y2 - this.y1) === (this.x2 - this.x1) * (y - this.y1)) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ Line.prototype.isPointOnLineSegment = function (x, y) {
+ var xMin = Math.min(this.x1, this.x2);
+ var xMax = Math.max(this.x1, this.x2);
+ var yMin = Math.min(this.y1, this.y2);
+ var yMax = Math.max(this.y1, this.y2);
+ if(this.isPointOnLine(x, y) && (x >= xMin && x <= xMax) && (y >= yMin && y <= yMax)) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ Line.prototype.intersectLineLine = function (line) {
+ };
+ Line.prototype.toString = function () {
+ return "[{Line (x1=" + this.x1 + " y1=" + this.y1 + " x2=" + this.x2 + " y2=" + this.y2 + ")}]";
+ };
+ return Line;
+ })();
+ Phaser.Line = Line;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var GameMath = (function () {
+ function GameMath(game) {
+ this.cosTable = [];
+ this.sinTable = [];
+ this.game = game;
+ GameMath.sinA = [];
+ GameMath.cosA = [];
+ for(var i = 0; i < 360; i++) {
+ GameMath.sinA.push(Math.sin(this.degreesToRadians(i)));
+ GameMath.cosA.push(Math.cos(this.degreesToRadians(i)));
+ }
+ }
+ GameMath.PI = 3.141592653589793;
+ GameMath.PI_2 = 1.5707963267948965;
+ GameMath.PI_4 = 0.7853981633974483;
+ GameMath.PI_8 = 0.39269908169872413;
+ GameMath.PI_16 = 0.19634954084936206;
+ GameMath.TWO_PI = 6.283185307179586;
+ GameMath.THREE_PI_2 = 4.7123889803846895;
+ GameMath.E = 2.71828182845905;
+ GameMath.LN10 = 2.302585092994046;
+ GameMath.LN2 = 0.6931471805599453;
+ GameMath.LOG10E = 0.4342944819032518;
+ GameMath.LOG2E = 1.442695040888963387;
+ GameMath.SQRT1_2 = 0.7071067811865476;
+ GameMath.SQRT2 = 1.4142135623730951;
+ GameMath.DEG_TO_RAD = 0.017453292519943294444444444444444;
+ GameMath.RAD_TO_DEG = 57.295779513082325225835265587527;
+ GameMath.B_16 = 65536;
+ GameMath.B_31 = 2147483648;
+ GameMath.B_32 = 4294967296;
+ GameMath.B_48 = 281474976710656;
+ GameMath.B_53 = 9007199254740992;
+ GameMath.B_64 = 18446744073709551616;
+ GameMath.ONE_THIRD = 0.333333333333333333333333333333333;
+ GameMath.TWO_THIRDS = 0.666666666666666666666666666666666;
+ GameMath.ONE_SIXTH = 0.166666666666666666666666666666666;
+ GameMath.COS_PI_3 = 0.86602540378443864676372317075294;
+ GameMath.SIN_2PI_3 = 0.03654595;
+ GameMath.CIRCLE_ALPHA = 0.5522847498307933984022516322796;
+ GameMath.ON = true;
+ GameMath.OFF = false;
+ GameMath.SHORT_EPSILON = 0.1;
+ GameMath.PERC_EPSILON = 0.001;
+ GameMath.EPSILON = 0.0001;
+ GameMath.LONG_EPSILON = 0.00000001;
+ GameMath.prototype.fuzzyEqual = function (a, b, epsilon) {
+ if (typeof epsilon === "undefined") { epsilon = 0.0001; }
+ return Math.abs(a - b) < epsilon;
+ };
+ GameMath.prototype.fuzzyLessThan = function (a, b, epsilon) {
+ if (typeof epsilon === "undefined") { epsilon = 0.0001; }
+ return a < b + epsilon;
+ };
+ GameMath.prototype.fuzzyGreaterThan = function (a, b, epsilon) {
+ if (typeof epsilon === "undefined") { epsilon = 0.0001; }
+ return a > b - epsilon;
+ };
+ GameMath.prototype.fuzzyCeil = function (val, epsilon) {
+ if (typeof epsilon === "undefined") { epsilon = 0.0001; }
+ return Math.ceil(val - epsilon);
+ };
+ GameMath.prototype.fuzzyFloor = function (val, epsilon) {
+ if (typeof epsilon === "undefined") { epsilon = 0.0001; }
+ return Math.floor(val + epsilon);
+ };
+ GameMath.prototype.average = function () {
+ var args = [];
+ for (var _i = 0; _i < (arguments.length - 0); _i++) {
+ args[_i] = arguments[_i + 0];
+ }
+ var avg = 0;
+ for(var i = 0; i < args.length; i++) {
+ avg += args[i];
+ }
+ return avg / args.length;
+ };
+ GameMath.prototype.slam = function (value, target, epsilon) {
+ if (typeof epsilon === "undefined") { epsilon = 0.0001; }
+ return (Math.abs(value - target) < epsilon) ? target : value;
+ };
+ GameMath.prototype.percentageMinMax = function (val, max, min) {
+ if (typeof min === "undefined") { min = 0; }
+ val -= min;
+ max -= min;
+ if(!max) {
+ return 0;
+ } else {
+ return val / max;
+ }
+ };
+ GameMath.prototype.sign = function (n) {
+ if(n) {
+ return n / Math.abs(n);
+ } else {
+ return 0;
+ }
+ };
+ GameMath.prototype.truncate = function (n) {
+ return (n > 0) ? Math.floor(n) : Math.ceil(n);
+ };
+ GameMath.prototype.shear = function (n) {
+ return n % 1;
+ };
+ GameMath.prototype.wrap = function (val, max, min) {
+ if (typeof min === "undefined") { min = 0; }
+ val -= min;
+ max -= min;
+ if(max == 0) {
+ return min;
+ }
+ val %= max;
+ val += min;
+ while(val < min) {
+ val += max;
+ }
+ return val;
+ };
+ GameMath.prototype.arithWrap = function (value, max, min) {
+ if (typeof min === "undefined") { min = 0; }
+ max -= min;
+ if(max == 0) {
+ return min;
+ }
+ return value - max * Math.floor((value - min) / max);
+ };
+ GameMath.prototype.clamp = function (input, max, min) {
+ if (typeof min === "undefined") { min = 0; }
+ return Math.max(min, Math.min(max, input));
+ };
+ GameMath.prototype.snapTo = function (input, gap, start) {
+ if (typeof start === "undefined") { start = 0; }
+ if(gap == 0) {
+ return input;
+ }
+ input -= start;
+ input = gap * Math.round(input / gap);
+ return start + input;
+ };
+ GameMath.prototype.snapToFloor = function (input, gap, start) {
+ if (typeof start === "undefined") { start = 0; }
+ if(gap == 0) {
+ return input;
+ }
+ input -= start;
+ input = gap * Math.floor(input / gap);
+ return start + input;
+ };
+ GameMath.prototype.snapToCeil = function (input, gap, start) {
+ if (typeof start === "undefined") { start = 0; }
+ if(gap == 0) {
+ return input;
+ }
+ input -= start;
+ input = gap * Math.ceil(input / gap);
+ return start + input;
+ };
+ GameMath.prototype.snapToInArray = function (input, arr, sort) {
+ if (typeof sort === "undefined") { sort = true; }
+ if(sort) {
+ arr.sort();
+ }
+ if(input < arr[0]) {
+ return arr[0];
+ }
+ var i = 1;
+ while(arr[i] < input) {
+ i++;
+ }
+ var low = arr[i - 1];
+ var high = (i < arr.length) ? arr[i] : Number.POSITIVE_INFINITY;
+ return ((high - input) <= (input - low)) ? high : low;
+ };
+ GameMath.prototype.roundTo = function (value, place, base) {
+ if (typeof place === "undefined") { place = 0; }
+ if (typeof base === "undefined") { base = 10; }
+ var p = Math.pow(base, -place);
+ return Math.round(value * p) / p;
+ };
+ GameMath.prototype.floorTo = function (value, place, base) {
+ if (typeof place === "undefined") { place = 0; }
+ if (typeof base === "undefined") { base = 10; }
+ var p = Math.pow(base, -place);
+ return Math.floor(value * p) / p;
+ };
+ GameMath.prototype.ceilTo = function (value, place, base) {
+ if (typeof place === "undefined") { place = 0; }
+ if (typeof base === "undefined") { base = 10; }
+ var p = Math.pow(base, -place);
+ return Math.ceil(value * p) / p;
+ };
+ GameMath.prototype.interpolateFloat = function (a, b, weight) {
+ return (b - a) * weight + a;
+ };
+ GameMath.prototype.radiansToDegrees = function (angle) {
+ return angle * GameMath.RAD_TO_DEG;
+ };
+ GameMath.prototype.degreesToRadians = function (angle) {
+ return angle * GameMath.DEG_TO_RAD;
+ };
+ GameMath.prototype.angleBetween = function (x1, y1, x2, y2) {
+ return Math.atan2(y2 - y1, x2 - x1);
+ };
+ GameMath.prototype.normalizeAngle = function (angle, radians) {
+ if (typeof radians === "undefined") { radians = true; }
+ var rd = (radians) ? GameMath.PI : 180;
+ return this.wrap(angle, rd, -rd);
+ };
+ GameMath.prototype.nearestAngleBetween = function (a1, a2, radians) {
+ if (typeof radians === "undefined") { radians = true; }
+ var rd = (radians) ? GameMath.PI : 180;
+ a1 = this.normalizeAngle(a1, radians);
+ a2 = this.normalizeAngle(a2, radians);
+ if(a1 < -rd / 2 && a2 > rd / 2) {
+ a1 += rd * 2;
+ }
+ if(a2 < -rd / 2 && a1 > rd / 2) {
+ a2 += rd * 2;
+ }
+ return a2 - a1;
+ };
+ GameMath.prototype.normalizeAngleToAnother = function (dep, ind, radians) {
+ if (typeof radians === "undefined") { radians = true; }
+ return ind + this.nearestAngleBetween(ind, dep, radians);
+ };
+ GameMath.prototype.normalizeAngleAfterAnother = function (dep, ind, radians) {
+ if (typeof radians === "undefined") { radians = true; }
+ dep = this.normalizeAngle(dep - ind, radians);
+ return ind + dep;
+ };
+ GameMath.prototype.normalizeAngleBeforeAnother = function (dep, ind, radians) {
+ if (typeof radians === "undefined") { radians = true; }
+ dep = this.normalizeAngle(ind - dep, radians);
+ return ind - dep;
+ };
+ GameMath.prototype.interpolateAngles = function (a1, a2, weight, radians, ease) {
+ if (typeof radians === "undefined") { radians = true; }
+ if (typeof ease === "undefined") { ease = null; }
+ a1 = this.normalizeAngle(a1, radians);
+ a2 = this.normalizeAngleToAnother(a2, a1, radians);
+ return (typeof ease === 'function') ? ease(weight, a1, a2 - a1, 1) : this.interpolateFloat(a1, a2, weight);
+ };
+ GameMath.prototype.logBaseOf = function (value, base) {
+ return Math.log(value) / Math.log(base);
+ };
+ GameMath.prototype.GCD = function (m, n) {
+ var r;
+ m = Math.abs(m);
+ n = Math.abs(n);
+ if(m < n) {
+ r = m;
+ m = n;
+ n = r;
+ }
+ while(true) {
+ r = m % n;
+ if(!r) {
+ return n;
+ }
+ m = n;
+ n = r;
+ }
+ return 1;
+ };
+ GameMath.prototype.LCM = function (m, n) {
+ return (m * n) / this.GCD(m, n);
+ };
+ GameMath.prototype.factorial = function (value) {
+ if(value == 0) {
+ return 1;
+ }
+ var res = value;
+ while(--value) {
+ res *= value;
+ }
+ return res;
+ };
+ GameMath.prototype.gammaFunction = function (value) {
+ return this.factorial(value - 1);
+ };
+ GameMath.prototype.fallingFactorial = function (base, exp) {
+ return this.factorial(base) / this.factorial(base - exp);
+ };
+ GameMath.prototype.risingFactorial = function (base, exp) {
+ return this.factorial(base + exp - 1) / this.factorial(base - 1);
+ };
+ GameMath.prototype.binCoef = function (n, k) {
+ return this.fallingFactorial(n, k) / this.factorial(k);
+ };
+ GameMath.prototype.risingBinCoef = function (n, k) {
+ return this.risingFactorial(n, k) / this.factorial(k);
+ };
+ GameMath.prototype.chanceRoll = function (chance) {
+ if (typeof chance === "undefined") { chance = 50; }
+ if(chance <= 0) {
+ return false;
+ } else if(chance >= 100) {
+ return true;
+ } else {
+ if(Math.random() * 100 >= chance) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ };
+ GameMath.prototype.maxAdd = function (value, amount, max) {
+ value += amount;
+ if(value > max) {
+ value = max;
+ }
+ return value;
+ };
+ GameMath.prototype.minSub = function (value, amount, min) {
+ value -= amount;
+ if(value < min) {
+ value = min;
+ }
+ return value;
+ };
+ GameMath.prototype.wrapValue = function (value, amount, max) {
+ var diff;
+ value = Math.abs(value);
+ amount = Math.abs(amount);
+ max = Math.abs(max);
+ diff = (value + amount) % max;
+ return diff;
+ };
+ GameMath.prototype.randomSign = function () {
+ return (Math.random() > 0.5) ? 1 : -1;
+ };
+ GameMath.prototype.isOdd = function (n) {
+ if(n & 1) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ GameMath.prototype.isEven = function (n) {
+ if(n & 1) {
+ return false;
+ } else {
+ return true;
+ }
+ };
+ GameMath.prototype.wrapAngle = function (angle) {
+ var result = angle;
+ if(angle >= -180 && angle <= 180) {
+ return angle;
+ }
+ result = (angle + 180) % 360;
+ if(result < 0) {
+ result += 360;
+ }
+ return result - 180;
+ };
+ GameMath.prototype.angleLimit = function (angle, min, max) {
+ var result = angle;
+ if(angle > max) {
+ result = max;
+ } else if(angle < min) {
+ result = min;
+ }
+ return result;
+ };
+ GameMath.prototype.linearInterpolation = function (v, k) {
+ var m = v.length - 1;
+ var f = m * k;
+ var i = Math.floor(f);
+ if(k < 0) {
+ return this.linear(v[0], v[1], f);
+ }
+ if(k > 1) {
+ return this.linear(v[m], v[m - 1], m - f);
+ }
+ return this.linear(v[i], v[i + 1 > m ? m : i + 1], f - i);
+ };
+ GameMath.prototype.bezierInterpolation = function (v, k) {
+ var b = 0;
+ var n = v.length - 1;
+ for(var i = 0; i <= n; i++) {
+ b += Math.pow(1 - k, n - i) * Math.pow(k, i) * v[i] * this.bernstein(n, i);
+ }
+ return b;
+ };
+ GameMath.prototype.catmullRomInterpolation = function (v, k) {
+ var m = v.length - 1;
+ var f = m * k;
+ var i = Math.floor(f);
+ if(v[0] === v[m]) {
+ if(k < 0) {
+ i = Math.floor(f = m * (1 + k));
+ }
+ return this.catmullRom(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);
+ } else {
+ if(k < 0) {
+ return v[0] - (this.catmullRom(v[0], v[0], v[1], v[1], -f) - v[0]);
+ }
+ if(k > 1) {
+ return v[m] - (this.catmullRom(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);
+ }
+ return this.catmullRom(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);
+ }
+ };
+ GameMath.prototype.linear = function (p0, p1, t) {
+ return (p1 - p0) * t + p0;
+ };
+ GameMath.prototype.bernstein = function (n, i) {
+ return this.factorial(n) / this.factorial(i) / this.factorial(n - i);
+ };
+ GameMath.prototype.catmullRom = function (p0, p1, p2, p3, t) {
+ var v0 = (p2 - p0) * 0.5, v1 = (p3 - p1) * 0.5, t2 = t * t, t3 = t * t2;
+ return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;
+ };
+ GameMath.prototype.difference = function (a, b) {
+ return Math.abs(a - b);
+ };
+ GameMath.prototype.getRandom = function (objects, startIndex, length) {
+ if (typeof startIndex === "undefined") { startIndex = 0; }
+ if (typeof length === "undefined") { length = 0; }
+ if(objects != null) {
+ var l = length;
+ if((l == 0) || (l > objects.length - startIndex)) {
+ l = objects.length - startIndex;
+ }
+ if(l > 0) {
+ return objects[startIndex + Math.floor(Math.random() * l)];
+ }
+ }
+ return null;
+ };
+ GameMath.prototype.floor = function (value) {
+ var n = value | 0;
+ return (value > 0) ? (n) : ((n != value) ? (n - 1) : (n));
+ };
+ GameMath.prototype.ceil = function (value) {
+ var n = value | 0;
+ return (value > 0) ? ((n != value) ? (n + 1) : (n)) : (n);
+ };
+ GameMath.prototype.sinCosGenerator = function (length, sinAmplitude, cosAmplitude, frequency) {
+ if (typeof sinAmplitude === "undefined") { sinAmplitude = 1.0; }
+ if (typeof cosAmplitude === "undefined") { cosAmplitude = 1.0; }
+ if (typeof frequency === "undefined") { frequency = 1.0; }
+ var sin = sinAmplitude;
+ var cos = cosAmplitude;
+ var frq = frequency * Math.PI / length;
+ this.cosTable = [];
+ this.sinTable = [];
+ for(var c = 0; c < length; c++) {
+ cos -= sin * frq;
+ sin += cos * frq;
+ this.cosTable[c] = cos;
+ this.sinTable[c] = sin;
+ }
+ return this.sinTable;
+ };
+ GameMath.prototype.shiftSinTable = function () {
+ if(this.sinTable) {
+ var s = this.sinTable.shift();
+ this.sinTable.push(s);
+ return s;
+ }
+ };
+ GameMath.prototype.shiftCosTable = function () {
+ if(this.cosTable) {
+ var s = this.cosTable.shift();
+ this.cosTable.push(s);
+ return s;
+ }
+ };
+ GameMath.prototype.shuffleArray = function (array) {
+ for(var i = array.length - 1; i > 0; i--) {
+ var j = Math.floor(Math.random() * (i + 1));
+ var temp = array[i];
+ array[i] = array[j];
+ array[j] = temp;
+ }
+ return array;
+ };
+ GameMath.prototype.distanceBetween = function (x1, y1, x2, y2) {
+ var dx = x1 - x2;
+ var dy = y1 - y2;
+ return Math.sqrt(dx * dx + dy * dy);
+ };
+ GameMath.prototype.vectorLength = function (dx, dy) {
+ return Math.sqrt(dx * dx + dy * dy);
+ };
+ return GameMath;
+ })();
+ Phaser.GameMath = GameMath;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Vec2 = (function () {
+ function Vec2(x, y) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ this.x = x;
+ this.y = y;
+ return this;
+ }
+ Vec2.prototype.copyFrom = function (source) {
+ return this.setTo(source.x, source.y);
+ };
+ Vec2.prototype.setTo = function (x, y) {
+ this.x = x;
+ this.y = y;
+ return this;
+ };
+ Vec2.prototype.add = function (a) {
+ this.x += a.x;
+ this.y += a.y;
+ return this;
+ };
+ Vec2.prototype.subtract = function (v) {
+ this.x -= v.x;
+ this.y -= v.y;
+ return this;
+ };
+ Vec2.prototype.multiply = function (v) {
+ this.x *= v.x;
+ this.y *= v.y;
+ return this;
+ };
+ Vec2.prototype.divide = function (v) {
+ this.x /= v.x;
+ this.y /= v.y;
+ return this;
+ };
+ Vec2.prototype.length = function () {
+ return Math.sqrt((this.x * this.x) + (this.y * this.y));
+ };
+ Vec2.prototype.lengthSq = function () {
+ return (this.x * this.x) + (this.y * this.y);
+ };
+ Vec2.prototype.normalize = function () {
+ var inv = (this.x != 0 || this.y != 0) ? 1 / Math.sqrt(this.x * this.x + this.y * this.y) : 0;
+ this.x *= inv;
+ this.y *= inv;
+ return this;
+ };
+ Vec2.prototype.dot = function (a) {
+ return ((this.x * a.x) + (this.y * a.y));
+ };
+ Vec2.prototype.cross = function (a) {
+ return ((this.x * a.y) - (this.y * a.x));
+ };
+ Vec2.prototype.projectionLength = function (a) {
+ var den = a.dot(a);
+ if(den == 0) {
+ return 0;
+ } else {
+ return Math.abs(this.dot(a) / den);
+ }
+ };
+ Vec2.prototype.angle = function (a) {
+ return Math.atan2(a.x * this.y - a.y * this.x, a.x * this.x + a.y * this.y);
+ };
+ Vec2.prototype.scale = function (x, y) {
+ this.x *= x;
+ this.y *= y || x;
+ return this;
+ };
+ Vec2.prototype.multiplyByScalar = function (scalar) {
+ this.x *= scalar;
+ this.y *= scalar;
+ return this;
+ };
+ Vec2.prototype.multiplyAddByScalar = function (a, scalar) {
+ this.x += a.x * scalar;
+ this.y += a.y * scalar;
+ return this;
+ };
+ Vec2.prototype.divideByScalar = function (scalar) {
+ this.x /= scalar;
+ this.y /= scalar;
+ return this;
+ };
+ Vec2.prototype.reverse = function () {
+ this.x = -this.x;
+ this.y = -this.y;
+ return this;
+ };
+ Vec2.prototype.equals = function (value) {
+ return (this.x == value && this.y == value);
+ };
+ Vec2.prototype.toString = function () {
+ return "[{Vec2 (x=" + this.x + " y=" + this.y + ")}]";
+ };
+ return Vec2;
+ })();
+ Phaser.Vec2 = Vec2;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Vec2Utils = (function () {
+ function Vec2Utils() { }
+ Vec2Utils.add = function add(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.x + b.x, a.y + b.y);
+ };
+ Vec2Utils.subtract = function subtract(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.x - b.x, a.y - b.y);
+ };
+ Vec2Utils.multiply = function multiply(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.x * b.x, a.y * b.y);
+ };
+ Vec2Utils.divide = function divide(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.x / b.x, a.y / b.y);
+ };
+ Vec2Utils.scale = function scale(a, s, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.x * s, a.y * s);
+ };
+ Vec2Utils.multiplyAdd = function multiplyAdd(a, b, s, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.x + b.x * s, a.y + b.y * s);
+ };
+ Vec2Utils.negative = function negative(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(-a.x, -a.y);
+ };
+ Vec2Utils.perp = function perp(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(-a.y, a.x);
+ };
+ Vec2Utils.rperp = function rperp(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.y, -a.x);
+ };
+ Vec2Utils.equals = function equals(a, b) {
+ return a.x == b.x && a.y == b.y;
+ };
+ Vec2Utils.epsilonEquals = function epsilonEquals(a, b, epsilon) {
+ return Math.abs(a.x - b.x) <= epsilon && Math.abs(a.y - b.y) <= epsilon;
+ };
+ Vec2Utils.distance = function distance(a, b) {
+ return Math.sqrt(Vec2Utils.distanceSq(a, b));
+ };
+ Vec2Utils.distanceSq = function distanceSq(a, b) {
+ return ((a.x - b.x) * (a.x - b.x)) + ((a.y - b.y) * (a.y - b.y));
+ };
+ Vec2Utils.project = function project(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ var amt = a.dot(b) / b.lengthSq();
+ if(amt != 0) {
+ out.setTo(amt * b.x, amt * b.y);
+ }
+ return out;
+ };
+ Vec2Utils.projectUnit = function projectUnit(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ var amt = a.dot(b);
+ if(amt != 0) {
+ out.setTo(amt * b.x, amt * b.y);
+ }
+ return out;
+ };
+ Vec2Utils.normalRightHand = function normalRightHand(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.y * -1, a.x);
+ };
+ Vec2Utils.normalize = function normalize(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ var m = a.length();
+ if(m != 0) {
+ out.setTo(a.x / m, a.y / m);
+ }
+ return out;
+ };
+ Vec2Utils.dot = function dot(a, b) {
+ return ((a.x * b.x) + (a.y * b.y));
+ };
+ Vec2Utils.cross = function cross(a, b) {
+ return ((a.x * b.y) - (a.y * b.x));
+ };
+ Vec2Utils.angle = function angle(a, b) {
+ return Math.atan2(a.x * b.y - a.y * b.x, a.x * b.x + a.y * b.y);
+ };
+ Vec2Utils.angleSq = function angleSq(a, b) {
+ return a.subtract(b).angle(b.subtract(a));
+ };
+ Vec2Utils.rotateAroundOrigin = function rotateAroundOrigin(a, b, theta, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ var x = a.x - b.x;
+ var y = a.y - b.y;
+ return out.setTo(x * Math.cos(theta) - y * Math.sin(theta) + b.x, x * Math.sin(theta) + y * Math.cos(theta) + b.y);
+ };
+ Vec2Utils.rotate = function rotate(a, theta, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ var c = Math.cos(theta);
+ var s = Math.sin(theta);
+ return out.setTo(a.x * c - a.y * s, a.x * s + a.y * c);
+ };
+ Vec2Utils.clone = function clone(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Vec2(); }
+ return out.setTo(a.x, a.y);
+ };
+ return Vec2Utils;
+ })();
+ Phaser.Vec2Utils = Vec2Utils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Mat3 = (function () {
+ function Mat3() {
+ this.data = [
+ 1,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 1
+ ];
+ }
+ Object.defineProperty(Mat3.prototype, "a00", {
+ get: function () {
+ return this.data[0];
+ },
+ set: function (value) {
+ this.data[0] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a01", {
+ get: function () {
+ return this.data[1];
+ },
+ set: function (value) {
+ this.data[1] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a02", {
+ get: function () {
+ return this.data[2];
+ },
+ set: function (value) {
+ this.data[2] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a10", {
+ get: function () {
+ return this.data[3];
+ },
+ set: function (value) {
+ this.data[3] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a11", {
+ get: function () {
+ return this.data[4];
+ },
+ set: function (value) {
+ this.data[4] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a12", {
+ get: function () {
+ return this.data[5];
+ },
+ set: function (value) {
+ this.data[5] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a20", {
+ get: function () {
+ return this.data[6];
+ },
+ set: function (value) {
+ this.data[6] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a21", {
+ get: function () {
+ return this.data[7];
+ },
+ set: function (value) {
+ this.data[7] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Mat3.prototype, "a22", {
+ get: function () {
+ return this.data[8];
+ },
+ set: function (value) {
+ this.data[8] = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Mat3.prototype.copyFromMat3 = function (source) {
+ this.data[0] = source.data[0];
+ this.data[1] = source.data[1];
+ this.data[2] = source.data[2];
+ this.data[3] = source.data[3];
+ this.data[4] = source.data[4];
+ this.data[5] = source.data[5];
+ this.data[6] = source.data[6];
+ this.data[7] = source.data[7];
+ this.data[8] = source.data[8];
+ return this;
+ };
+ Mat3.prototype.copyFromMat4 = function (source) {
+ this.data[0] = source[0];
+ this.data[1] = source[1];
+ this.data[2] = source[2];
+ this.data[3] = source[4];
+ this.data[4] = source[5];
+ this.data[5] = source[6];
+ this.data[6] = source[8];
+ this.data[7] = source[9];
+ this.data[8] = source[10];
+ return this;
+ };
+ Mat3.prototype.clone = function (out) {
+ if (typeof out === "undefined") { out = new Phaser.Mat3(); }
+ out[0] = this.data[0];
+ out[1] = this.data[1];
+ out[2] = this.data[2];
+ out[3] = this.data[3];
+ out[4] = this.data[4];
+ out[5] = this.data[5];
+ out[6] = this.data[6];
+ out[7] = this.data[7];
+ out[8] = this.data[8];
+ return out;
+ };
+ Mat3.prototype.identity = function () {
+ return this.setTo(1, 0, 0, 0, 1, 0, 0, 0, 1);
+ };
+ Mat3.prototype.translate = function (v) {
+ this.a20 = v.x * this.a00 + v.y * this.a10 + this.a20;
+ this.a21 = v.x * this.a01 + v.y * this.a11 + this.a21;
+ this.a22 = v.x * this.a02 + v.y * this.a12 + this.a22;
+ return this;
+ };
+ Mat3.prototype.setTemps = function () {
+ this._a00 = this.data[0];
+ this._a01 = this.data[1];
+ this._a02 = this.data[2];
+ this._a10 = this.data[3];
+ this._a11 = this.data[4];
+ this._a12 = this.data[5];
+ this._a20 = this.data[6];
+ this._a21 = this.data[7];
+ this._a22 = this.data[8];
+ };
+ Mat3.prototype.rotate = function (rad) {
+ this.setTemps();
+ var s = Phaser.GameMath.sinA[rad];
+ var c = Phaser.GameMath.cosA[rad];
+ this.data[0] = c * this._a00 + s * this._a10;
+ this.data[1] = c * this._a01 + s * this._a10;
+ this.data[2] = c * this._a02 + s * this._a12;
+ this.data[3] = c * this._a10 - s * this._a00;
+ this.data[4] = c * this._a11 - s * this._a01;
+ this.data[5] = c * this._a12 - s * this._a02;
+ return this;
+ };
+ Mat3.prototype.scale = function (v) {
+ this.data[0] = v.x * this.data[0];
+ this.data[1] = v.x * this.data[1];
+ this.data[2] = v.x * this.data[2];
+ this.data[3] = v.y * this.data[3];
+ this.data[4] = v.y * this.data[4];
+ this.data[5] = v.y * this.data[5];
+ return this;
+ };
+ Mat3.prototype.setTo = function (a00, a01, a02, a10, a11, a12, a20, a21, a22) {
+ this.data[0] = a00;
+ this.data[1] = a01;
+ this.data[2] = a02;
+ this.data[3] = a10;
+ this.data[4] = a11;
+ this.data[5] = a12;
+ this.data[6] = a20;
+ this.data[7] = a21;
+ this.data[8] = a22;
+ return this;
+ };
+ Mat3.prototype.toString = function () {
+ return '';
+ };
+ return Mat3;
+ })();
+ Phaser.Mat3 = Mat3;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Mat3Utils = (function () {
+ function Mat3Utils() { }
+ Mat3Utils.transpose = function transpose(source, dest) {
+ if (typeof dest === "undefined") { dest = null; }
+ if(dest === null) {
+ var a01 = source.data[1];
+ var a02 = source.data[2];
+ var a12 = source.data[5];
+ source.data[1] = source.data[3];
+ source.data[2] = source.data[6];
+ source.data[3] = a01;
+ source.data[5] = source.data[7];
+ source.data[6] = a02;
+ source.data[7] = a12;
+ } else {
+ source.data[0] = dest.data[0];
+ source.data[1] = dest.data[3];
+ source.data[2] = dest.data[6];
+ source.data[3] = dest.data[1];
+ source.data[4] = dest.data[4];
+ source.data[5] = dest.data[7];
+ source.data[6] = dest.data[2];
+ source.data[7] = dest.data[5];
+ source.data[8] = dest.data[8];
+ }
+ return source;
+ };
+ Mat3Utils.invert = function invert(source) {
+ var a00 = source.data[0];
+ var a01 = source.data[1];
+ var a02 = source.data[2];
+ var a10 = source.data[3];
+ var a11 = source.data[4];
+ var a12 = source.data[5];
+ var a20 = source.data[6];
+ var a21 = source.data[7];
+ var a22 = source.data[8];
+ var b01 = a22 * a11 - a12 * a21;
+ var b11 = -a22 * a10 + a12 * a20;
+ var b21 = a21 * a10 - a11 * a20;
+ var det = a00 * b01 + a01 * b11 + a02 * b21;
+ if(!det) {
+ return null;
+ }
+ det = 1.0 / det;
+ source.data[0] = b01 * det;
+ source.data[1] = (-a22 * a01 + a02 * a21) * det;
+ source.data[2] = (a12 * a01 - a02 * a11) * det;
+ source.data[3] = b11 * det;
+ source.data[4] = (a22 * a00 - a02 * a20) * det;
+ source.data[5] = (-a12 * a00 + a02 * a10) * det;
+ source.data[6] = b21 * det;
+ source.data[7] = (-a21 * a00 + a01 * a20) * det;
+ source.data[8] = (a11 * a00 - a01 * a10) * det;
+ return source;
+ };
+ Mat3Utils.adjoint = function adjoint(source) {
+ var a00 = source.data[0];
+ var a01 = source.data[1];
+ var a02 = source.data[2];
+ var a10 = source.data[3];
+ var a11 = source.data[4];
+ var a12 = source.data[5];
+ var a20 = source.data[6];
+ var a21 = source.data[7];
+ var a22 = source.data[8];
+ source.data[0] = (a11 * a22 - a12 * a21);
+ source.data[1] = (a02 * a21 - a01 * a22);
+ source.data[2] = (a01 * a12 - a02 * a11);
+ source.data[3] = (a12 * a20 - a10 * a22);
+ source.data[4] = (a00 * a22 - a02 * a20);
+ source.data[5] = (a02 * a10 - a00 * a12);
+ source.data[6] = (a10 * a21 - a11 * a20);
+ source.data[7] = (a01 * a20 - a00 * a21);
+ source.data[8] = (a00 * a11 - a01 * a10);
+ return source;
+ };
+ Mat3Utils.determinant = function determinant(source) {
+ var a00 = source.data[0];
+ var a01 = source.data[1];
+ var a02 = source.data[2];
+ var a10 = source.data[3];
+ var a11 = source.data[4];
+ var a12 = source.data[5];
+ var a20 = source.data[6];
+ var a21 = source.data[7];
+ var a22 = source.data[8];
+ return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
+ };
+ Mat3Utils.multiply = function multiply(source, b) {
+ var a00 = source.data[0];
+ var a01 = source.data[1];
+ var a02 = source.data[2];
+ var a10 = source.data[3];
+ var a11 = source.data[4];
+ var a12 = source.data[5];
+ var a20 = source.data[6];
+ var a21 = source.data[7];
+ var a22 = source.data[8];
+ var b00 = b.data[0];
+ var b01 = b.data[1];
+ var b02 = b.data[2];
+ var b10 = b.data[3];
+ var b11 = b.data[4];
+ var b12 = b.data[5];
+ var b20 = b.data[6];
+ var b21 = b.data[7];
+ var b22 = b.data[8];
+ source.data[0] = b00 * a00 + b01 * a10 + b02 * a20;
+ source.data[1] = b00 * a01 + b01 * a11 + b02 * a21;
+ source.data[2] = b00 * a02 + b01 * a12 + b02 * a22;
+ source.data[3] = b10 * a00 + b11 * a10 + b12 * a20;
+ source.data[4] = b10 * a01 + b11 * a11 + b12 * a21;
+ source.data[5] = b10 * a02 + b11 * a12 + b12 * a22;
+ source.data[6] = b20 * a00 + b21 * a10 + b22 * a20;
+ source.data[7] = b20 * a01 + b21 * a11 + b22 * a21;
+ source.data[8] = b20 * a02 + b21 * a12 + b22 * a22;
+ return source;
+ };
+ Mat3Utils.fromQuaternion = function fromQuaternion() {
+ };
+ Mat3Utils.normalFromMat4 = function normalFromMat4() {
+ };
+ return Mat3Utils;
+ })();
+ Phaser.Mat3Utils = Mat3Utils;
+})(Phaser || (Phaser = {}));
+var __extends = this.__extends || function (d, b) {
+ function __() { this.constructor = d; }
+ __.prototype = b.prototype;
+ d.prototype = new __();
+};
+var Phaser;
+(function (Phaser) {
+ var QuadTree = (function (_super) {
+ __extends(QuadTree, _super);
+ function QuadTree(manager, x, y, width, height, parent) {
+ if (typeof parent === "undefined") { parent = null; }
+ _super.call(this, x, y, width, height);
+ QuadTree.physics = manager;
+ this._headA = this._tailA = new Phaser.LinkedList();
+ this._headB = this._tailB = new Phaser.LinkedList();
+ if(parent != null) {
+ if(parent._headA.object != null) {
+ this._iterator = parent._headA;
+ while(this._iterator != null) {
+ if(this._tailA.object != null) {
+ this._ot = this._tailA;
+ this._tailA = new Phaser.LinkedList();
+ this._ot.next = this._tailA;
+ }
+ this._tailA.object = this._iterator.object;
+ this._iterator = this._iterator.next;
+ }
+ }
+ if(parent._headB.object != null) {
+ this._iterator = parent._headB;
+ while(this._iterator != null) {
+ if(this._tailB.object != null) {
+ this._ot = this._tailB;
+ this._tailB = new Phaser.LinkedList();
+ this._ot.next = this._tailB;
+ }
+ this._tailB.object = this._iterator.object;
+ this._iterator = this._iterator.next;
+ }
+ }
+ } else {
+ QuadTree._min = (this.width + this.height) / (2 * QuadTree.divisions);
+ }
+ this._canSubdivide = (this.width > QuadTree._min) || (this.height > QuadTree._min);
+ this._northWestTree = null;
+ this._northEastTree = null;
+ this._southEastTree = null;
+ this._southWestTree = null;
+ this._leftEdge = this.x;
+ this._rightEdge = this.x + this.width;
+ this._halfWidth = this.width / 2;
+ this._midpointX = this._leftEdge + this._halfWidth;
+ this._topEdge = this.y;
+ this._bottomEdge = this.y + this.height;
+ this._halfHeight = this.height / 2;
+ this._midpointY = this._topEdge + this._halfHeight;
+ }
+ QuadTree.A_LIST = 0;
+ QuadTree.B_LIST = 1;
+ QuadTree.prototype.destroy = function () {
+ this._tailA.destroy();
+ this._tailB.destroy();
+ this._headA.destroy();
+ this._headB.destroy();
+ this._tailA = null;
+ this._tailB = null;
+ this._headA = null;
+ this._headB = null;
+ if(this._northWestTree != null) {
+ this._northWestTree.destroy();
+ }
+ if(this._northEastTree != null) {
+ this._northEastTree.destroy();
+ }
+ if(this._southEastTree != null) {
+ this._southEastTree.destroy();
+ }
+ if(this._southWestTree != null) {
+ this._southWestTree.destroy();
+ }
+ this._northWestTree = null;
+ this._northEastTree = null;
+ this._southEastTree = null;
+ this._southWestTree = null;
+ QuadTree._object = null;
+ QuadTree._processingCallback = null;
+ QuadTree._notifyCallback = null;
+ };
+ QuadTree.prototype.load = function (objectOrGroup1, objectOrGroup2, notifyCallback, processCallback, context) {
+ if (typeof objectOrGroup2 === "undefined") { objectOrGroup2 = null; }
+ if (typeof notifyCallback === "undefined") { notifyCallback = null; }
+ if (typeof processCallback === "undefined") { processCallback = null; }
+ if (typeof context === "undefined") { context = null; }
+ this.add(objectOrGroup1, QuadTree.A_LIST);
+ if(objectOrGroup2 != null) {
+ this.add(objectOrGroup2, QuadTree.B_LIST);
+ QuadTree._useBothLists = true;
+ } else {
+ QuadTree._useBothLists = false;
+ }
+ QuadTree._notifyCallback = notifyCallback;
+ QuadTree._processingCallback = processCallback;
+ QuadTree._callbackContext = context;
+ };
+ QuadTree.prototype.add = function (objectOrGroup, list) {
+ QuadTree._list = list;
+ if(objectOrGroup.type == Phaser.Types.GROUP) {
+ this._i = 0;
+ this._members = objectOrGroup['members'];
+ this._l = objectOrGroup['length'];
+ while(this._i < this._l) {
+ this._basic = this._members[this._i++];
+ if(this._basic != null && this._basic.exists) {
+ if(this._basic.type == Phaser.Types.GROUP) {
+ this.add(this._basic, list);
+ } else {
+ QuadTree._object = this._basic;
+ if(QuadTree._object.exists && QuadTree._object.body.allowCollisions) {
+ this.addObject();
+ }
+ }
+ }
+ }
+ } else {
+ QuadTree._object = objectOrGroup;
+ if(QuadTree._object.exists && QuadTree._object.body.allowCollisions) {
+ this.addObject();
+ }
+ }
+ };
+ QuadTree.prototype.addObject = function () {
+ if(!this._canSubdivide || ((this._leftEdge >= QuadTree._object.body.bounds.x) && (this._rightEdge <= QuadTree._object.body.bounds.right) && (this._topEdge >= QuadTree._object.body.bounds.y) && (this._bottomEdge <= QuadTree._object.body.bounds.bottom))) {
+ this.addToList();
+ return;
+ }
+ if((QuadTree._object.body.bounds.x > this._leftEdge) && (QuadTree._object.body.bounds.right < this._midpointX)) {
+ if((QuadTree._object.body.bounds.y > this._topEdge) && (QuadTree._object.body.bounds.bottom < this._midpointY)) {
+ if(this._northWestTree == null) {
+ this._northWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._topEdge, this._halfWidth, this._halfHeight, this);
+ }
+ this._northWestTree.addObject();
+ return;
+ }
+ if((QuadTree._object.body.bounds.y > this._midpointY) && (QuadTree._object.body.bounds.bottom < this._bottomEdge)) {
+ if(this._southWestTree == null) {
+ this._southWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._midpointY, this._halfWidth, this._halfHeight, this);
+ }
+ this._southWestTree.addObject();
+ return;
+ }
+ }
+ if((QuadTree._object.body.bounds.x > this._midpointX) && (QuadTree._object.body.bounds.right < this._rightEdge)) {
+ if((QuadTree._object.body.bounds.y > this._topEdge) && (QuadTree._object.body.bounds.bottom < this._midpointY)) {
+ if(this._northEastTree == null) {
+ this._northEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._topEdge, this._halfWidth, this._halfHeight, this);
+ }
+ this._northEastTree.addObject();
+ return;
+ }
+ if((QuadTree._object.body.bounds.y > this._midpointY) && (QuadTree._object.body.bounds.bottom < this._bottomEdge)) {
+ if(this._southEastTree == null) {
+ this._southEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._midpointY, this._halfWidth, this._halfHeight, this);
+ }
+ this._southEastTree.addObject();
+ return;
+ }
+ }
+ if((QuadTree._object.body.bounds.right > this._leftEdge) && (QuadTree._object.body.bounds.x < this._midpointX) && (QuadTree._object.body.bounds.bottom > this._topEdge) && (QuadTree._object.body.bounds.y < this._midpointY)) {
+ if(this._northWestTree == null) {
+ this._northWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._topEdge, this._halfWidth, this._halfHeight, this);
+ }
+ this._northWestTree.addObject();
+ }
+ if((QuadTree._object.body.bounds.right > this._midpointX) && (QuadTree._object.body.bounds.x < this._rightEdge) && (QuadTree._object.body.bounds.bottom > this._topEdge) && (QuadTree._object.body.bounds.y < this._midpointY)) {
+ if(this._northEastTree == null) {
+ this._northEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._topEdge, this._halfWidth, this._halfHeight, this);
+ }
+ this._northEastTree.addObject();
+ }
+ if((QuadTree._object.body.bounds.right > this._midpointX) && (QuadTree._object.body.bounds.x < this._rightEdge) && (QuadTree._object.body.bounds.bottom > this._midpointY) && (QuadTree._object.body.bounds.y < this._bottomEdge)) {
+ if(this._southEastTree == null) {
+ this._southEastTree = new QuadTree(QuadTree.physics, this._midpointX, this._midpointY, this._halfWidth, this._halfHeight, this);
+ }
+ this._southEastTree.addObject();
+ }
+ if((QuadTree._object.body.bounds.right > this._leftEdge) && (QuadTree._object.body.bounds.x < this._midpointX) && (QuadTree._object.body.bounds.bottom > this._midpointY) && (QuadTree._object.body.bounds.y < this._bottomEdge)) {
+ if(this._southWestTree == null) {
+ this._southWestTree = new QuadTree(QuadTree.physics, this._leftEdge, this._midpointY, this._halfWidth, this._halfHeight, this);
+ }
+ this._southWestTree.addObject();
+ }
+ };
+ QuadTree.prototype.addToList = function () {
+ if(QuadTree._list == QuadTree.A_LIST) {
+ if(this._tailA.object != null) {
+ this._ot = this._tailA;
+ this._tailA = new Phaser.LinkedList();
+ this._ot.next = this._tailA;
+ }
+ this._tailA.object = QuadTree._object;
+ } else {
+ if(this._tailB.object != null) {
+ this._ot = this._tailB;
+ this._tailB = new Phaser.LinkedList();
+ this._ot.next = this._tailB;
+ }
+ this._tailB.object = QuadTree._object;
+ }
+ if(!this._canSubdivide) {
+ return;
+ }
+ if(this._northWestTree != null) {
+ this._northWestTree.addToList();
+ }
+ if(this._northEastTree != null) {
+ this._northEastTree.addToList();
+ }
+ if(this._southEastTree != null) {
+ this._southEastTree.addToList();
+ }
+ if(this._southWestTree != null) {
+ this._southWestTree.addToList();
+ }
+ };
+ QuadTree.prototype.execute = function () {
+ this._overlapProcessed = false;
+ if(this._headA.object != null) {
+ this._iterator = this._headA;
+ while(this._iterator != null) {
+ QuadTree._object = this._iterator.object;
+ if(QuadTree._useBothLists) {
+ QuadTree._iterator = this._headB;
+ } else {
+ QuadTree._iterator = this._iterator.next;
+ }
+ if(QuadTree._object.exists && (QuadTree._object.body.allowCollisions > 0) && (QuadTree._iterator != null) && (QuadTree._iterator.object != null) && QuadTree._iterator.object.exists && this.overlapNode()) {
+ this._overlapProcessed = true;
+ }
+ this._iterator = this._iterator.next;
+ }
+ }
+ if((this._northWestTree != null) && this._northWestTree.execute()) {
+ this._overlapProcessed = true;
+ }
+ if((this._northEastTree != null) && this._northEastTree.execute()) {
+ this._overlapProcessed = true;
+ }
+ if((this._southEastTree != null) && this._southEastTree.execute()) {
+ this._overlapProcessed = true;
+ }
+ if((this._southWestTree != null) && this._southWestTree.execute()) {
+ this._overlapProcessed = true;
+ }
+ return this._overlapProcessed;
+ };
+ QuadTree.prototype.overlapNode = function () {
+ this._overlapProcessed = false;
+ while(QuadTree._iterator != null) {
+ if(!QuadTree._object.exists || (QuadTree._object.body.allowCollisions <= 0)) {
+ break;
+ }
+ this._checkObject = QuadTree._iterator.object;
+ if((QuadTree._object === this._checkObject) || !this._checkObject.exists || (this._checkObject.body.allowCollisions <= 0)) {
+ QuadTree._iterator = QuadTree._iterator.next;
+ continue;
+ }
+ QuadTree._iterator = QuadTree._iterator.next;
+ }
+ return this._overlapProcessed;
+ };
+ return QuadTree;
+ })(Phaser.Rectangle);
+ Phaser.QuadTree = QuadTree;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var LinkedList = (function () {
+ function LinkedList() {
+ this.object = null;
+ this.next = null;
+ }
+ LinkedList.prototype.destroy = function () {
+ this.object = null;
+ if(this.next != null) {
+ this.next.destroy();
+ }
+ this.next = null;
+ };
+ return LinkedList;
+ })();
+ Phaser.LinkedList = LinkedList;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var RandomDataGenerator = (function () {
+ function RandomDataGenerator(seeds) {
+ if (typeof seeds === "undefined") { seeds = []; }
+ this.c = 1;
+ this.sow(seeds);
+ }
+ RandomDataGenerator.prototype.uint32 = function () {
+ return this.rnd.apply(this) * 0x100000000;
+ };
+ RandomDataGenerator.prototype.fract32 = function () {
+ return this.rnd.apply(this) + (this.rnd.apply(this) * 0x200000 | 0) * 1.1102230246251565e-16;
+ };
+ RandomDataGenerator.prototype.rnd = function () {
+ var t = 2091639 * this.s0 + this.c * 2.3283064365386963e-10;
+ this.c = t | 0;
+ this.s0 = this.s1;
+ this.s1 = this.s2;
+ this.s2 = t - this.c;
+ return this.s2;
+ };
+ RandomDataGenerator.prototype.hash = function (data) {
+ var h, i, n;
+ n = 0xefc8249d;
+ data = data.toString();
+ for(i = 0; i < data.length; i++) {
+ n += data.charCodeAt(i);
+ h = 0.02519603282416938 * n;
+ n = h >>> 0;
+ h -= n;
+ h *= n;
+ n = h >>> 0;
+ h -= n;
+ n += h * 0x100000000;
+ }
+ return (n >>> 0) * 2.3283064365386963e-10;
+ };
+ RandomDataGenerator.prototype.sow = function (seeds) {
+ if (typeof seeds === "undefined") { seeds = []; }
+ this.s0 = this.hash(' ');
+ this.s1 = this.hash(this.s0);
+ this.s2 = this.hash(this.s1);
+ var seed;
+ for(var i = 0; seed = seeds[i++]; ) {
+ this.s0 -= this.hash(seed);
+ this.s0 += ~~(this.s0 < 0);
+ this.s1 -= this.hash(seed);
+ this.s1 += ~~(this.s1 < 0);
+ this.s2 -= this.hash(seed);
+ this.s2 += ~~(this.s2 < 0);
+ }
+ };
+ Object.defineProperty(RandomDataGenerator.prototype, "integer", {
+ get: function () {
+ return this.uint32();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RandomDataGenerator.prototype, "frac", {
+ get: function () {
+ return this.fract32();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RandomDataGenerator.prototype, "real", {
+ get: function () {
+ return this.uint32() + this.fract32();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ RandomDataGenerator.prototype.integerInRange = function (min, max) {
+ return Math.floor(this.realInRange(min, max));
+ };
+ RandomDataGenerator.prototype.realInRange = function (min, max) {
+ min = min || 0;
+ max = max || 0;
+ return this.frac * (max - min) + min;
+ };
+ Object.defineProperty(RandomDataGenerator.prototype, "normal", {
+ get: function () {
+ return 1 - 2 * this.frac;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RandomDataGenerator.prototype, "uuid", {
+ get: function () {
+ var a, b;
+ for(b = a = ''; a++ < 36; b += ~a % 5 | a * 3 & 4 ? (a ^ 15 ? 8 ^ this.frac * (a ^ 20 ? 16 : 4) : 4).toString(16) : '-') {
+ ;
+ }
+ return b;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ RandomDataGenerator.prototype.pick = function (array) {
+ return array[this.integerInRange(0, array.length)];
+ };
+ RandomDataGenerator.prototype.weightedPick = function (array) {
+ return array[~~(Math.pow(this.frac, 2) * array.length)];
+ };
+ RandomDataGenerator.prototype.timestamp = function (min, max) {
+ if (typeof min === "undefined") { min = 946684800000; }
+ if (typeof max === "undefined") { max = 1577862000000; }
+ return this.realInRange(min, max);
+ };
+ Object.defineProperty(RandomDataGenerator.prototype, "angle", {
+ get: function () {
+ return this.integerInRange(-180, 180);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RandomDataGenerator;
+ })();
+ Phaser.RandomDataGenerator = RandomDataGenerator;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Plugin = (function () {
+ function Plugin(game, parent) {
+ this.game = game;
+ this.parent = parent;
+ this.active = false;
+ this.visible = false;
+ this.hasPreUpdate = false;
+ this.hasUpdate = false;
+ this.hasPostUpdate = false;
+ this.hasPreRender = false;
+ this.hasRender = false;
+ this.hasPostRender = false;
+ }
+ Plugin.prototype.preUpdate = function () {
+ };
+ Plugin.prototype.update = function () {
+ };
+ Plugin.prototype.postUpdate = function () {
+ };
+ Plugin.prototype.preRender = function () {
+ };
+ Plugin.prototype.render = function () {
+ };
+ Plugin.prototype.postRender = function () {
+ };
+ Plugin.prototype.destroy = function () {
+ this.game = null;
+ this.parent = null;
+ this.active = false;
+ this.visible = false;
+ };
+ return Plugin;
+ })();
+ Phaser.Plugin = Plugin;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var PluginManager = (function () {
+ function PluginManager(game, parent) {
+ this.game = game;
+ this._parent = parent;
+ this.plugins = [];
+ }
+ PluginManager.prototype.add = function (plugin) {
+ var result = false;
+ if(typeof plugin === 'function') {
+ plugin = new plugin(this.game, this._parent);
+ } else {
+ plugin.game = this.game;
+ plugin.parent = this._parent;
+ }
+ if(typeof plugin['preUpdate'] === 'function') {
+ plugin.hasPreUpdate = true;
+ result = true;
+ }
+ if(typeof plugin['update'] === 'function') {
+ plugin.hasUpdate = true;
+ result = true;
+ }
+ if(typeof plugin['postUpdate'] === 'function') {
+ plugin.hasPostUpdate = true;
+ result = true;
+ }
+ if(typeof plugin['preRender'] === 'function') {
+ plugin.hasPreRender = true;
+ result = true;
+ }
+ if(typeof plugin['render'] === 'function') {
+ plugin.hasRender = true;
+ result = true;
+ }
+ if(typeof plugin['postRender'] === 'function') {
+ plugin.hasPostRender = true;
+ result = true;
+ }
+ if(result == true) {
+ if(plugin.hasPreUpdate || plugin.hasUpdate || plugin.hasPostUpdate) {
+ plugin.active = true;
+ }
+ if(plugin.hasPreRender || plugin.hasRender || plugin.hasPostRender) {
+ plugin.visible = true;
+ }
+ this._pluginsLength = this.plugins.push(plugin);
+ return plugin;
+ } else {
+ return null;
+ }
+ };
+ PluginManager.prototype.remove = function (plugin) {
+ this._pluginsLength--;
+ };
+ PluginManager.prototype.preUpdate = function () {
+ for(this._p = 0; this._p < this._pluginsLength; this._p++) {
+ if(this.plugins[this._p].active && this.plugins[this._p].hasPreUpdate) {
+ this.plugins[this._p].preUpdate();
+ }
+ }
+ };
+ PluginManager.prototype.update = function () {
+ for(this._p = 0; this._p < this._pluginsLength; this._p++) {
+ if(this.plugins[this._p].active && this.plugins[this._p].hasUpdate) {
+ this.plugins[this._p].update();
+ }
+ }
+ };
+ PluginManager.prototype.postUpdate = function () {
+ for(this._p = 0; this._p < this._pluginsLength; this._p++) {
+ if(this.plugins[this._p].active && this.plugins[this._p].hasPostUpdate) {
+ this.plugins[this._p].postUpdate();
+ }
+ }
+ };
+ PluginManager.prototype.preRender = function () {
+ for(this._p = 0; this._p < this._pluginsLength; this._p++) {
+ if(this.plugins[this._p].visible && this.plugins[this._p].hasPreRender) {
+ this.plugins[this._p].preRender();
+ }
+ }
+ };
+ PluginManager.prototype.render = function () {
+ for(this._p = 0; this._p < this._pluginsLength; this._p++) {
+ if(this.plugins[this._p].visible && this.plugins[this._p].hasRender) {
+ this.plugins[this._p].render();
+ }
+ }
+ };
+ PluginManager.prototype.postRender = function () {
+ for(this._p = 0; this._p < this._pluginsLength; this._p++) {
+ if(this.plugins[this._p].visible && this.plugins[this._p].hasPostRender) {
+ this.plugins[this._p].postRender();
+ }
+ }
+ };
+ PluginManager.prototype.destroy = function () {
+ this.plugins.length = 0;
+ this._pluginsLength = 0;
+ this.game = null;
+ this._parent = null;
+ };
+ return PluginManager;
+ })();
+ Phaser.PluginManager = PluginManager;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Signal = (function () {
+ function Signal() {
+ this._bindings = [];
+ this._prevParams = null;
+ this.memorize = false;
+ this._shouldPropagate = true;
+ this.active = true;
+ }
+ Signal.VERSION = '1.0.0';
+ Signal.prototype.validateListener = function (listener, fnName) {
+ if(typeof listener !== 'function') {
+ throw new Error('listener is a required param of {fn}() and should be a Function.'.replace('{fn}', fnName));
+ }
+ };
+ Signal.prototype._registerListener = function (listener, isOnce, listenerContext, priority) {
+ var prevIndex = this._indexOfListener(listener, listenerContext);
+ var binding;
+ if(prevIndex !== -1) {
+ binding = this._bindings[prevIndex];
+ if(binding.isOnce() !== isOnce) {
+ throw new Error('You cannot add' + (isOnce ? '' : 'Once') + '() then add' + (!isOnce ? '' : 'Once') + '() the same listener without removing the relationship first.');
+ }
+ } else {
+ binding = new Phaser.SignalBinding(this, listener, isOnce, listenerContext, priority);
+ this._addBinding(binding);
+ }
+ if(this.memorize && this._prevParams) {
+ binding.execute(this._prevParams);
+ }
+ return binding;
+ };
+ Signal.prototype._addBinding = function (binding) {
+ var n = this._bindings.length;
+ do {
+ --n;
+ }while(this._bindings[n] && binding.priority <= this._bindings[n].priority);
+ this._bindings.splice(n + 1, 0, binding);
+ };
+ Signal.prototype._indexOfListener = function (listener, context) {
+ var n = this._bindings.length;
+ var cur;
+ while(n--) {
+ cur = this._bindings[n];
+ if(cur.getListener() === listener && cur.context === context) {
+ return n;
+ }
+ }
+ return -1;
+ };
+ Signal.prototype.has = function (listener, context) {
+ if (typeof context === "undefined") { context = null; }
+ return this._indexOfListener(listener, context) !== -1;
+ };
+ Signal.prototype.add = function (listener, listenerContext, priority) {
+ if (typeof listenerContext === "undefined") { listenerContext = null; }
+ if (typeof priority === "undefined") { priority = 0; }
+ this.validateListener(listener, 'add');
+ return this._registerListener(listener, false, listenerContext, priority);
+ };
+ Signal.prototype.addOnce = function (listener, listenerContext, priority) {
+ if (typeof listenerContext === "undefined") { listenerContext = null; }
+ if (typeof priority === "undefined") { priority = 0; }
+ this.validateListener(listener, 'addOnce');
+ return this._registerListener(listener, true, listenerContext, priority);
+ };
+ Signal.prototype.remove = function (listener, context) {
+ if (typeof context === "undefined") { context = null; }
+ this.validateListener(listener, 'remove');
+ var i = this._indexOfListener(listener, context);
+ if(i !== -1) {
+ this._bindings[i]._destroy();
+ this._bindings.splice(i, 1);
+ }
+ return listener;
+ };
+ Signal.prototype.removeAll = function () {
+ if(this._bindings) {
+ var n = this._bindings.length;
+ while(n--) {
+ this._bindings[n]._destroy();
+ }
+ this._bindings.length = 0;
+ }
+ };
+ Signal.prototype.getNumListeners = function () {
+ return this._bindings.length;
+ };
+ Signal.prototype.halt = function () {
+ this._shouldPropagate = false;
+ };
+ Signal.prototype.dispatch = function () {
+ var paramsArr = [];
+ for (var _i = 0; _i < (arguments.length - 0); _i++) {
+ paramsArr[_i] = arguments[_i + 0];
+ }
+ if(!this.active) {
+ return;
+ }
+ var n = this._bindings.length;
+ var bindings;
+ if(this.memorize) {
+ this._prevParams = paramsArr;
+ }
+ if(!n) {
+ return;
+ }
+ bindings = this._bindings.slice(0);
+ this._shouldPropagate = true;
+ do {
+ n--;
+ }while(bindings[n] && this._shouldPropagate && bindings[n].execute(paramsArr) !== false);
+ };
+ Signal.prototype.forget = function () {
+ this._prevParams = null;
+ };
+ Signal.prototype.dispose = function () {
+ this.removeAll();
+ delete this._bindings;
+ delete this._prevParams;
+ };
+ Signal.prototype.toString = function () {
+ return '[Signal active:' + this.active + ' numListeners:' + this.getNumListeners() + ']';
+ };
+ return Signal;
+ })();
+ Phaser.Signal = Signal;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var SignalBinding = (function () {
+ function SignalBinding(signal, listener, isOnce, listenerContext, priority) {
+ if (typeof priority === "undefined") { priority = 0; }
+ this.active = true;
+ this.params = null;
+ this._listener = listener;
+ this._isOnce = isOnce;
+ this.context = listenerContext;
+ this._signal = signal;
+ this.priority = priority || 0;
+ }
+ SignalBinding.prototype.execute = function (paramsArr) {
+ var handlerReturn;
+ var params;
+ if(this.active && !!this._listener) {
+ params = this.params ? this.params.concat(paramsArr) : paramsArr;
+ handlerReturn = this._listener.apply(this.context, params);
+ if(this._isOnce) {
+ this.detach();
+ }
+ }
+ return handlerReturn;
+ };
+ SignalBinding.prototype.detach = function () {
+ return this.isBound() ? this._signal.remove(this._listener, this.context) : null;
+ };
+ SignalBinding.prototype.isBound = function () {
+ return (!!this._signal && !!this._listener);
+ };
+ SignalBinding.prototype.isOnce = function () {
+ return this._isOnce;
+ };
+ SignalBinding.prototype.getListener = function () {
+ return this._listener;
+ };
+ SignalBinding.prototype.getSignal = function () {
+ return this._signal;
+ };
+ SignalBinding.prototype._destroy = function () {
+ delete this._signal;
+ delete this._listener;
+ delete this.context;
+ };
+ SignalBinding.prototype.toString = function () {
+ return '[SignalBinding isOnce:' + this._isOnce + ', isBound:' + this.isBound() + ', active:' + this.active + ']';
+ };
+ return SignalBinding;
+ })();
+ Phaser.SignalBinding = SignalBinding;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Group = (function () {
+ function Group(game, maxSize) {
+ if (typeof maxSize === "undefined") { maxSize = 0; }
+ this._sortIndex = '';
+ this._zCounter = 0;
+ this.ID = -1;
+ this.z = -1;
+ this.group = null;
+ this.modified = false;
+ this.game = game;
+ this.type = Phaser.Types.GROUP;
+ this.active = true;
+ this.exists = true;
+ this.visible = true;
+ this.members = [];
+ this.length = 0;
+ this._maxSize = maxSize;
+ this._marker = 0;
+ this._sortIndex = null;
+ this.ID = this.game.world.getNextGroupID();
+ this.transform = new Phaser.Components.TransformManager(this);
+ this.texture = new Phaser.Display.Texture(this);
+ this.texture.opaque = false;
+ }
+ Group.prototype.getNextZIndex = function () {
+ return this._zCounter++;
+ };
+ Group.prototype.destroy = function () {
+ if(this.members != null) {
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null) {
+ this._member.destroy();
+ }
+ }
+ this.members.length = 0;
+ }
+ this._sortIndex = null;
+ };
+ Group.prototype.update = function () {
+ if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
+ this.modified = true;
+ }
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null && this._member.exists && this._member.active) {
+ if(this._member.type != Phaser.Types.GROUP) {
+ this._member.preUpdate();
+ }
+ this._member.update();
+ }
+ }
+ };
+ Group.prototype.postUpdate = function () {
+ if(this.modified == true && this.transform.scale.equals(1) && this.transform.skew.equals(0) && this.transform.rotation == 0 && this.transform.rotationOffset == 0 && this.texture.flippedX == false && this.texture.flippedY == false) {
+ this.modified = false;
+ }
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null && this._member.exists && this._member.active) {
+ this._member.postUpdate();
+ }
+ }
+ };
+ Group.prototype.render = function (camera) {
+ if(camera.isHidden(this) == true) {
+ return;
+ }
+ this.game.renderer.groupRenderer.preRender(camera, this);
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null && this._member.exists && this._member.visible && camera.isHidden(this._member) == false) {
+ if(this._member.type == Phaser.Types.GROUP) {
+ this._member.render(camera);
+ } else {
+ this.game.renderer.renderGameObject(camera, this._member);
+ }
+ }
+ }
+ this.game.renderer.groupRenderer.postRender(camera, this);
+ };
+ Group.prototype.directRender = function (camera) {
+ this.game.renderer.groupRenderer.preRender(camera, this);
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null && this._member.exists) {
+ if(this._member.type == Phaser.Types.GROUP) {
+ this._member.directRender(camera);
+ } else {
+ this.game.renderer.renderGameObject(this._member);
+ }
+ }
+ }
+ this.game.renderer.groupRenderer.postRender(camera, this);
+ };
+ Object.defineProperty(Group.prototype, "maxSize", {
+ get: function () {
+ return this._maxSize;
+ },
+ set: function (size) {
+ this._maxSize = size;
+ if(this._marker >= this._maxSize) {
+ this._marker = 0;
+ }
+ if(this._maxSize == 0 || this.members == null || (this._maxSize >= this.members.length)) {
+ return;
+ }
+ this._i = this._maxSize;
+ this._length = this.members.length;
+ while(this._i < this._length) {
+ this._member = this.members[this._i++];
+ if(this._member != null) {
+ this._member.destroy();
+ }
+ }
+ this.length = this.members.length = this._maxSize;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Group.prototype.add = function (object) {
+ if(object.group && (object.group.ID == this.ID || (object.type == Phaser.Types.GROUP && object.ID == this.ID))) {
+ return object;
+ }
+ this._i = 0;
+ this._length = this.members.length;
+ while(this._i < this._length) {
+ if(this.members[this._i] == null) {
+ this.members[this._i] = object;
+ this.setObjectIDs(object);
+ if(this._i >= this.length) {
+ this.length = this._i + 1;
+ }
+ return object;
+ }
+ this._i++;
+ }
+ if(this._maxSize > 0) {
+ if(this.members.length >= this._maxSize) {
+ return object;
+ } else if(this.members.length * 2 <= this._maxSize) {
+ this.members.length *= 2;
+ } else {
+ this.members.length = this._maxSize;
+ }
+ } else {
+ this.members.length *= 2;
+ }
+ this.members[this._i] = object;
+ this.length = this._i + 1;
+ this.setObjectIDs(object);
+ return object;
+ };
+ Group.prototype.addNewSprite = function (x, y, key, frame) {
+ if (typeof key === "undefined") { key = ''; }
+ if (typeof frame === "undefined") { frame = null; }
+ return this.add(new Phaser.Sprite(this.game, x, y, key, frame));
+ };
+ Group.prototype.setObjectIDs = function (object, zIndex) {
+ if (typeof zIndex === "undefined") { zIndex = -1; }
+ if(object.group !== null) {
+ object.group.remove(object);
+ }
+ object.group = this;
+ if(zIndex == -1) {
+ zIndex = this.getNextZIndex();
+ }
+ object.z = zIndex;
+ if(object['events']) {
+ object['events'].onAddedToGroup.dispatch(object, this, object.z);
+ }
+ };
+ Group.prototype.recycle = function (objectClass) {
+ if (typeof objectClass === "undefined") { objectClass = null; }
+ if(this._maxSize > 0) {
+ if(this.length < this._maxSize) {
+ if(objectClass == null) {
+ return null;
+ }
+ return this.add(new objectClass(this.game));
+ } else {
+ this._member = this.members[this._marker++];
+ if(this._marker >= this._maxSize) {
+ this._marker = 0;
+ }
+ return this._member;
+ }
+ } else {
+ this._member = this.getFirstAvailable(objectClass);
+ if(this._member != null) {
+ return this._member;
+ }
+ if(objectClass == null) {
+ return null;
+ }
+ return this.add(new objectClass(this.game));
+ }
+ };
+ Group.prototype.remove = function (object, splice) {
+ if (typeof splice === "undefined") { splice = false; }
+ this._i = this.members.indexOf(object);
+ if(this._i < 0 || (this._i >= this.members.length)) {
+ return null;
+ }
+ if(splice) {
+ this.members.splice(this._i, 1);
+ this.length--;
+ } else {
+ this.members[this._i] = null;
+ }
+ if(object['events']) {
+ object['events'].onRemovedFromGroup.dispatch(object, this);
+ }
+ object.group = null;
+ object.z = -1;
+ return object;
+ };
+ Group.prototype.replace = function (oldObject, newObject) {
+ this._i = this.members.indexOf(oldObject);
+ if(this._i < 0 || (this._i >= this.members.length)) {
+ return null;
+ }
+ this.setObjectIDs(newObject, this.members[this._i].z);
+ this.remove(this.members[this._i]);
+ this.members[this._i] = newObject;
+ return newObject;
+ };
+ Group.prototype.swap = function (child1, child2, sort) {
+ if (typeof sort === "undefined") { sort = true; }
+ if(child1.group.ID != this.ID || child2.group.ID != this.ID || child1 === child2) {
+ return false;
+ }
+ var tempZ = child1.z;
+ child1.z = child2.z;
+ child2.z = tempZ;
+ if(sort) {
+ this.sort();
+ }
+ return true;
+ };
+ Group.prototype.bringToTop = function (child) {
+ var oldZ = child.z;
+ if(!child || child.group == null || child.group.ID != this.ID) {
+ return false;
+ }
+ var topZ = -1;
+ for(var i = 0; i < this.length; i++) {
+ if(this.members[i] && this.members[i].z > topZ) {
+ topZ = this.members[i].z;
+ }
+ }
+ if(child.z == topZ) {
+ return false;
+ }
+ child.z = topZ + 1;
+ this.sort();
+ for(var i = 0; i < this.length; i++) {
+ if(this.members[i]) {
+ this.members[i].z = i;
+ }
+ }
+ return true;
+ };
+ Group.prototype.sort = function (index, order) {
+ if (typeof index === "undefined") { index = 'z'; }
+ if (typeof order === "undefined") { order = Phaser.Types.SORT_ASCENDING; }
+ var _this = this;
+ this._sortIndex = index;
+ this._sortOrder = order;
+ this.members.sort(function (a, b) {
+ return _this.sortHandler(a, b);
+ });
+ };
+ Group.prototype.sortHandler = function (obj1, obj2) {
+ if(!obj1 || !obj2) {
+ return 0;
+ }
+ if(obj1[this._sortIndex] < obj2[this._sortIndex]) {
+ return this._sortOrder;
+ } else if(obj1[this._sortIndex] > obj2[this._sortIndex]) {
+ return -this._sortOrder;
+ }
+ return 0;
+ };
+ Group.prototype.setAll = function (variableName, value, recurse) {
+ if (typeof recurse === "undefined") { recurse = true; }
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null) {
+ if(recurse && this._member.type == Phaser.Types.GROUP) {
+ this._member.setAll(variableName, value, recurse);
+ } else {
+ this._member[variableName] = value;
+ }
+ }
+ }
+ };
+ Group.prototype.callAll = function (functionName, recurse) {
+ if (typeof recurse === "undefined") { recurse = true; }
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null) {
+ if(recurse && this._member.type == Phaser.Types.GROUP) {
+ this._member.callAll(functionName, recurse);
+ } else {
+ this._member[functionName]();
+ }
+ }
+ }
+ };
+ Group.prototype.forEach = function (callback, recursive) {
+ if (typeof recursive === "undefined") { recursive = false; }
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null) {
+ if(recursive && this._member.type == Phaser.Types.GROUP) {
+ this._member.forEach(callback, true);
+ } else {
+ callback.call(this, this._member);
+ }
+ }
+ }
+ };
+ Group.prototype.forEachAlive = function (context, callback, recursive) {
+ if (typeof recursive === "undefined") { recursive = false; }
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null && this._member.alive) {
+ if(recursive && this._member.type == Phaser.Types.GROUP) {
+ this._member.forEachAlive(context, callback, true);
+ } else {
+ callback.call(context, this._member);
+ }
+ }
+ }
+ };
+ Group.prototype.getFirstAvailable = function (objectClass) {
+ if (typeof objectClass === "undefined") { objectClass = null; }
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if((this._member != null) && !this._member.exists && ((objectClass == null) || (typeof this._member === objectClass))) {
+ return this._member;
+ }
+ }
+ return null;
+ };
+ Group.prototype.getFirstNull = function () {
+ this._i = 0;
+ while(this._i < this.length) {
+ if(this.members[this._i] == null) {
+ return this._i;
+ } else {
+ this._i++;
+ }
+ }
+ return -1;
+ };
+ Group.prototype.getFirstExtant = function () {
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null && this._member.exists) {
+ return this._member;
+ }
+ }
+ return null;
+ };
+ Group.prototype.getFirstAlive = function () {
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if((this._member != null) && this._member.exists && this._member.alive) {
+ return this._member;
+ }
+ }
+ return null;
+ };
+ Group.prototype.getFirstDead = function () {
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if((this._member != null) && !this._member.alive) {
+ return this._member;
+ }
+ }
+ return null;
+ };
+ Group.prototype.countLiving = function () {
+ this._count = -1;
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null) {
+ if(this._count < 0) {
+ this._count = 0;
+ }
+ if(this._member.exists && this._member.alive) {
+ this._count++;
+ }
+ }
+ }
+ return this._count;
+ };
+ Group.prototype.countDead = function () {
+ this._count = -1;
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if(this._member != null) {
+ if(this._count < 0) {
+ this._count = 0;
+ }
+ if(!this._member.alive) {
+ this._count++;
+ }
+ }
+ }
+ return this._count;
+ };
+ Group.prototype.getRandom = function (startIndex, length) {
+ if (typeof startIndex === "undefined") { startIndex = 0; }
+ if (typeof length === "undefined") { length = 0; }
+ if(length == 0) {
+ length = this.length;
+ }
+ return this.game.math.getRandom(this.members, startIndex, length);
+ };
+ Group.prototype.clear = function () {
+ this.length = this.members.length = 0;
+ };
+ Group.prototype.kill = function () {
+ this._i = 0;
+ while(this._i < this.length) {
+ this._member = this.members[this._i++];
+ if((this._member != null) && this._member.exists) {
+ this._member.kill();
+ }
+ }
+ };
+ return Group;
+ })();
+ Phaser.Group = Group;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Camera = (function () {
+ function Camera(game, id, x, y, width, height) {
+ this._target = null;
+ this.worldBounds = null;
+ this.modified = false;
+ this.deadzone = null;
+ this.visible = true;
+ this.z = -1;
+ this.game = game;
+ this.ID = id;
+ this.z = id;
+ width = this.game.math.clamp(width, this.game.stage.width, 1);
+ height = this.game.math.clamp(height, this.game.stage.height, 1);
+ this.worldView = new Phaser.Rectangle(0, 0, width, height);
+ this.screenView = new Phaser.Rectangle(x, y, width, height);
+ this.plugins = new Phaser.PluginManager(this.game, this);
+ this.transform = new Phaser.Components.TransformManager(this);
+ this.texture = new Phaser.Display.Texture(this);
+ this._canvas = document.createElement('canvas');
+ this._canvas.width = width;
+ this._canvas.height = height;
+ this._renderLocal = true;
+ this.texture.canvas = this._canvas;
+ this.texture.context = this.texture.canvas.getContext('2d');
+ this.texture.backgroundColor = this.game.stage.backgroundColor;
+ this.scale = this.transform.scale;
+ this.alpha = this.texture.alpha;
+ this.origin = this.transform.origin;
+ this.crop = this.texture.crop;
+ }
+ Object.defineProperty(Camera.prototype, "alpha", {
+ get: function () {
+ return this.texture.alpha;
+ },
+ set: function (value) {
+ this.texture.alpha = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Camera.prototype, "directToStage", {
+ set: function (value) {
+ if(value) {
+ this._renderLocal = false;
+ this.texture.canvas = this.game.stage.canvas;
+ Phaser.CanvasUtils.setBackgroundColor(this.texture.canvas, this.game.stage.backgroundColor);
+ } else {
+ this._renderLocal = true;
+ this.texture.canvas = this._canvas;
+ Phaser.CanvasUtils.setBackgroundColor(this.texture.canvas, this.texture.backgroundColor);
+ }
+ this.texture.context = this.texture.canvas.getContext('2d');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Camera.prototype.hide = function (object) {
+ object.texture.hideFromCamera(this);
+ };
+ Camera.prototype.isHidden = function (object) {
+ return object.texture.isHidden(this);
+ };
+ Camera.prototype.show = function (object) {
+ object.texture.showToCamera(this);
+ };
+ Camera.prototype.follow = function (target, style) {
+ if (typeof style === "undefined") { style = Phaser.Types.CAMERA_FOLLOW_LOCKON; }
+ this._target = target;
+ var helper;
+ switch(style) {
+ case Phaser.Types.CAMERA_FOLLOW_PLATFORMER:
+ var w = this.width / 8;
+ var h = this.height / 3;
+ this.deadzone = new Phaser.Rectangle((this.width - w) / 2, (this.height - h) / 2 - h * 0.25, w, h);
+ break;
+ case Phaser.Types.CAMERA_FOLLOW_TOPDOWN:
+ helper = Math.max(this.width, this.height) / 4;
+ this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper);
+ break;
+ case Phaser.Types.CAMERA_FOLLOW_TOPDOWN_TIGHT:
+ helper = Math.max(this.width, this.height) / 8;
+ this.deadzone = new Phaser.Rectangle((this.width - helper) / 2, (this.height - helper) / 2, helper, helper);
+ break;
+ case Phaser.Types.CAMERA_FOLLOW_LOCKON:
+ default:
+ this.deadzone = null;
+ break;
+ }
+ };
+ Camera.prototype.focusOnXY = function (x, y) {
+ x += (x > 0) ? 0.0000001 : -0.0000001;
+ y += (y > 0) ? 0.0000001 : -0.0000001;
+ this.worldView.x = Math.round(x - this.worldView.halfWidth);
+ this.worldView.y = Math.round(y - this.worldView.halfHeight);
+ };
+ Camera.prototype.focusOn = function (point) {
+ point.x += (point.x > 0) ? 0.0000001 : -0.0000001;
+ point.y += (point.y > 0) ? 0.0000001 : -0.0000001;
+ this.worldView.x = Math.round(point.x - this.worldView.halfWidth);
+ this.worldView.y = Math.round(point.y - this.worldView.halfHeight);
+ };
+ Camera.prototype.setBounds = function (x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = 0; }
+ if (typeof height === "undefined") { height = 0; }
+ if(this.worldBounds == null) {
+ this.worldBounds = new Phaser.Rectangle();
+ }
+ this.worldBounds.setTo(x, y, width, height);
+ this.worldView.x = x;
+ this.worldView.y = y;
+ this.update();
+ };
+ Camera.prototype.update = function () {
+ if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
+ this.modified = true;
+ }
+ this.plugins.preUpdate();
+ if(this._target !== null) {
+ if(this.deadzone == null) {
+ this.focusOnXY(this._target.x, this._target.y);
+ } else {
+ var edge;
+ var targetX = this._target.x + ((this._target.x > 0) ? 0.0000001 : -0.0000001);
+ var targetY = this._target.y + ((this._target.y > 0) ? 0.0000001 : -0.0000001);
+ edge = targetX - this.deadzone.x;
+ if(this.worldView.x > edge) {
+ this.worldView.x = edge;
+ }
+ edge = targetX + this._target.width - this.deadzone.x - this.deadzone.width;
+ if(this.worldView.x < edge) {
+ this.worldView.x = edge;
+ }
+ edge = targetY - this.deadzone.y;
+ if(this.worldView.y > edge) {
+ this.worldView.y = edge;
+ }
+ edge = targetY + this._target.height - this.deadzone.y - this.deadzone.height;
+ if(this.worldView.y < edge) {
+ this.worldView.y = edge;
+ }
+ }
+ }
+ if(this.worldBounds !== null) {
+ if(this.worldView.x < this.worldBounds.left) {
+ this.worldView.x = this.worldBounds.left;
+ }
+ if(this.worldView.x > this.worldBounds.right - this.width) {
+ this.worldView.x = (this.worldBounds.right - this.width) + 1;
+ }
+ if(this.worldView.y < this.worldBounds.top) {
+ this.worldView.y = this.worldBounds.top;
+ }
+ if(this.worldView.y > this.worldBounds.bottom - this.height) {
+ this.worldView.y = (this.worldBounds.bottom - this.height) + 1;
+ }
+ }
+ this.worldView.floor();
+ this.plugins.update();
+ };
+ Camera.prototype.postUpdate = function () {
+ if(this.modified == true && this.transform.scale.equals(1) && this.transform.skew.equals(0) && this.transform.rotation == 0 && this.transform.rotationOffset == 0 && this.texture.flippedX == false && this.texture.flippedY == false) {
+ this.modified = false;
+ }
+ if(this.worldBounds !== null) {
+ if(this.worldView.x < this.worldBounds.left) {
+ this.worldView.x = this.worldBounds.left;
+ }
+ if(this.worldView.x > this.worldBounds.right - this.width) {
+ this.worldView.x = this.worldBounds.right - this.width;
+ }
+ if(this.worldView.y < this.worldBounds.top) {
+ this.worldView.y = this.worldBounds.top;
+ }
+ if(this.worldView.y > this.worldBounds.bottom - this.height) {
+ this.worldView.y = this.worldBounds.bottom - this.height;
+ }
+ }
+ this.worldView.floor();
+ this.plugins.postUpdate();
+ };
+ Camera.prototype.destroy = function () {
+ this.game.world.cameras.removeCamera(this.ID);
+ this.plugins.destroy();
+ };
+ Object.defineProperty(Camera.prototype, "x", {
+ get: function () {
+ return this.worldView.x;
+ },
+ set: function (value) {
+ this.worldView.x = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Camera.prototype, "y", {
+ get: function () {
+ return this.worldView.y;
+ },
+ set: function (value) {
+ this.worldView.y = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Camera.prototype, "width", {
+ get: function () {
+ return this.screenView.width;
+ },
+ set: function (value) {
+ this.screenView.width = value;
+ this.worldView.width = value;
+ if(value !== this.texture.canvas.width) {
+ this.texture.canvas.width = value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Camera.prototype, "height", {
+ get: function () {
+ return this.screenView.height;
+ },
+ set: function (value) {
+ this.screenView.height = value;
+ this.worldView.height = value;
+ if(value !== this.texture.canvas.height) {
+ this.texture.canvas.height = value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Camera.prototype.setPosition = function (x, y) {
+ this.screenView.x = x;
+ this.screenView.y = y;
+ };
+ Camera.prototype.setSize = function (width, height) {
+ this.screenView.width = width * this.transform.scale.x;
+ this.screenView.height = height * this.transform.scale.y;
+ this.worldView.width = width;
+ this.worldView.height = height;
+ if(width !== this.texture.canvas.width) {
+ this.texture.canvas.width = width;
+ }
+ if(height !== this.texture.canvas.height) {
+ this.texture.canvas.height = height;
+ }
+ };
+ Object.defineProperty(Camera.prototype, "rotation", {
+ get: function () {
+ return this.transform.rotation;
+ },
+ set: function (value) {
+ this.transform.rotation = this.game.math.wrap(value, 360, 0);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Camera;
+ })();
+ Phaser.Camera = Camera;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var CameraManager = (function () {
+ function CameraManager(game, x, y, width, height) {
+ this._sortIndex = '';
+ this.game = game;
+ this._cameras = [];
+ this._cameraLength = 0;
+ this.defaultCamera = this.addCamera(x, y, width, height);
+ this.defaultCamera.directToStage = true;
+ this.current = this.defaultCamera;
+ }
+ CameraManager.prototype.getAll = function () {
+ return this._cameras;
+ };
+ CameraManager.prototype.update = function () {
+ for(var i = 0; i < this._cameras.length; i++) {
+ this._cameras[i].update();
+ }
+ };
+ CameraManager.prototype.postUpdate = function () {
+ for(var i = 0; i < this._cameras.length; i++) {
+ this._cameras[i].postUpdate();
+ }
+ };
+ CameraManager.prototype.addCamera = function (x, y, width, height) {
+ var newCam = new Phaser.Camera(this.game, this._cameraLength, x, y, width, height);
+ this._cameraLength = this._cameras.push(newCam);
+ return newCam;
+ };
+ CameraManager.prototype.removeCamera = function (id) {
+ for(var c = 0; c < this._cameras.length; c++) {
+ if(this._cameras[c].ID == id) {
+ if(this.current.ID === this._cameras[c].ID) {
+ this.current = null;
+ }
+ this._cameras.splice(c, 1);
+ return true;
+ }
+ }
+ return false;
+ };
+ CameraManager.prototype.swap = function (camera1, camera2, sort) {
+ if (typeof sort === "undefined") { sort = true; }
+ if(camera1.ID == camera2.ID) {
+ return false;
+ }
+ var tempZ = camera1.z;
+ camera1.z = camera2.z;
+ camera2.z = tempZ;
+ if(sort) {
+ this.sort();
+ }
+ return true;
+ };
+ CameraManager.prototype.getCameraUnderPoint = function (x, y) {
+ for(var c = this._cameraLength - 1; c >= 0; c--) {
+ if(this._cameras[c].visible && Phaser.RectangleUtils.contains(this._cameras[c].screenView, x, y)) {
+ return this._cameras[c];
+ }
+ }
+ return null;
+ };
+ CameraManager.prototype.sort = function (index, order) {
+ if (typeof index === "undefined") { index = 'z'; }
+ if (typeof order === "undefined") { order = Phaser.Types.SORT_ASCENDING; }
+ var _this = this;
+ this._sortIndex = index;
+ this._sortOrder = order;
+ this._cameras.sort(function (a, b) {
+ return _this.sortHandler(a, b);
+ });
+ };
+ CameraManager.prototype.sortHandler = function (obj1, obj2) {
+ if(obj1[this._sortIndex] < obj2[this._sortIndex]) {
+ return this._sortOrder;
+ } else if(obj1[this._sortIndex] > obj2[this._sortIndex]) {
+ return -this._sortOrder;
+ }
+ return 0;
+ };
+ CameraManager.prototype.destroy = function () {
+ this._cameras.length = 0;
+ this.current = this.addCamera(0, 0, this.game.stage.width, this.game.stage.height);
+ };
+ return CameraManager;
+ })();
+ Phaser.CameraManager = CameraManager;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Display) {
+ var CSS3Filters = (function () {
+ function CSS3Filters(parent) {
+ this._blur = 0;
+ this._grayscale = 0;
+ this._sepia = 0;
+ this._brightness = 0;
+ this._contrast = 0;
+ this._hueRotate = 0;
+ this._invert = 0;
+ this._opacity = 0;
+ this._saturate = 0;
+ this.parent = parent;
+ }
+ CSS3Filters.prototype.setFilter = function (local, prefix, value, unit) {
+ this[local] = value;
+ if(this.parent) {
+ this.parent.style['-webkit-filter'] = prefix + '(' + value + unit + ')';
+ }
+ };
+ Object.defineProperty(CSS3Filters.prototype, "blur", {
+ get: function () {
+ return this._blur;
+ },
+ set: function (radius) {
+ this.setFilter('_blur', 'blur', radius, 'px');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "grayscale", {
+ get: function () {
+ return this._grayscale;
+ },
+ set: function (amount) {
+ this.setFilter('_grayscale', 'grayscale', amount, '%');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "sepia", {
+ get: function () {
+ return this._sepia;
+ },
+ set: function (amount) {
+ this.setFilter('_sepia', 'sepia', amount, '%');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "brightness", {
+ get: function () {
+ return this._brightness;
+ },
+ set: function (amount) {
+ this.setFilter('_brightness', 'brightness', amount, '%');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "contrast", {
+ get: function () {
+ return this._contrast;
+ },
+ set: function (amount) {
+ this.setFilter('_contrast', 'contrast', amount, '%');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "hueRotate", {
+ get: function () {
+ return this._hueRotate;
+ },
+ set: function (angle) {
+ this.setFilter('_hueRotate', 'hue-rotate', angle, 'deg');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "invert", {
+ get: function () {
+ return this._invert;
+ },
+ set: function (value) {
+ this.setFilter('_invert', 'invert', value, '%');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "opacity", {
+ get: function () {
+ return this._opacity;
+ },
+ set: function (value) {
+ this.setFilter('_opacity', 'opacity', value, '%');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CSS3Filters.prototype, "saturate", {
+ get: function () {
+ return this._saturate;
+ },
+ set: function (value) {
+ this.setFilter('_saturate', 'saturate', value, '%');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return CSS3Filters;
+ })();
+ Display.CSS3Filters = CSS3Filters;
+ })(Phaser.Display || (Phaser.Display = {}));
+ var Display = Phaser.Display;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Display) {
+ var DynamicTexture = (function () {
+ function DynamicTexture(game, width, height) {
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = 0;
+ this._sh = 0;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = 0;
+ this._dh = 0;
+ this.globalCompositeOperation = null;
+ this.game = game;
+ this.type = Phaser.Types.DYNAMICTEXTURE;
+ this.canvas = document.createElement('canvas');
+ this.canvas.width = width;
+ this.canvas.height = height;
+ this.context = this.canvas.getContext('2d');
+ this.css3 = new Phaser.Display.CSS3Filters(this.canvas);
+ this.bounds = new Phaser.Rectangle(0, 0, width, height);
+ }
+ DynamicTexture.prototype.getPixel = function (x, y) {
+ var imageData = this.context.getImageData(x, y, 1, 1);
+ return Phaser.ColorUtils.getColor(imageData.data[0], imageData.data[1], imageData.data[2]);
+ };
+ DynamicTexture.prototype.getPixel32 = function (x, y) {
+ var imageData = this.context.getImageData(x, y, 1, 1);
+ return Phaser.ColorUtils.getColor32(imageData.data[3], imageData.data[0], imageData.data[1], imageData.data[2]);
+ };
+ DynamicTexture.prototype.getPixels = function (rect) {
+ return this.context.getImageData(rect.x, rect.y, rect.width, rect.height);
+ };
+ DynamicTexture.prototype.setPixel = function (x, y, color) {
+ this.context.fillStyle = color;
+ this.context.fillRect(x, y, 1, 1);
+ };
+ DynamicTexture.prototype.setPixel32 = function (x, y, color) {
+ this.context.fillStyle = color;
+ this.context.fillRect(x, y, 1, 1);
+ };
+ DynamicTexture.prototype.setPixels = function (rect, input) {
+ this.context.putImageData(input, rect.x, rect.y);
+ };
+ DynamicTexture.prototype.fillRect = function (rect, color) {
+ this.context.fillStyle = color;
+ this.context.fillRect(rect.x, rect.y, rect.width, rect.height);
+ };
+ DynamicTexture.prototype.pasteImage = function (key, frame, destX, destY, destWidth, destHeight) {
+ if (typeof frame === "undefined") { frame = -1; }
+ if (typeof destX === "undefined") { destX = 0; }
+ if (typeof destY === "undefined") { destY = 0; }
+ if (typeof destWidth === "undefined") { destWidth = null; }
+ if (typeof destHeight === "undefined") { destHeight = null; }
+ var texture = null;
+ var frameData;
+ this._sx = 0;
+ this._sy = 0;
+ this._dx = destX;
+ this._dy = destY;
+ if(frame > -1) {
+ } else {
+ texture = this.game.cache.getImage(key);
+ this._sw = texture.width;
+ this._sh = texture.height;
+ this._dw = texture.width;
+ this._dh = texture.height;
+ }
+ if(destWidth !== null) {
+ this._dw = destWidth;
+ }
+ if(destHeight !== null) {
+ this._dh = destHeight;
+ }
+ if(texture != null) {
+ this.context.drawImage(texture, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
+ }
+ };
+ DynamicTexture.prototype.copyPixels = function (sourceTexture, sourceRect, destPoint) {
+ if(Phaser.RectangleUtils.equals(sourceRect, this.bounds) == true) {
+ this.context.drawImage(sourceTexture.canvas, destPoint.x, destPoint.y);
+ } else {
+ this.context.putImageData(sourceTexture.getPixels(sourceRect), destPoint.x, destPoint.y);
+ }
+ };
+ DynamicTexture.prototype.add = function (sprite) {
+ sprite.texture.canvas = this.canvas;
+ sprite.texture.context = this.context;
+ };
+ DynamicTexture.prototype.assignCanvasToGameObjects = function (objects) {
+ for(var i = 0; i < objects.length; i++) {
+ if(objects[i].texture) {
+ objects[i].texture.canvas = this.canvas;
+ objects[i].texture.context = this.context;
+ }
+ }
+ };
+ DynamicTexture.prototype.clear = function () {
+ this.context.clearRect(0, 0, this.bounds.width, this.bounds.height);
+ };
+ DynamicTexture.prototype.render = function (x, y) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if(this.globalCompositeOperation) {
+ this.game.stage.context.save();
+ this.game.stage.context.globalCompositeOperation = this.globalCompositeOperation;
+ }
+ this.game.stage.context.drawImage(this.canvas, x, y);
+ if(this.globalCompositeOperation) {
+ this.game.stage.context.restore();
+ }
+ };
+ Object.defineProperty(DynamicTexture.prototype, "width", {
+ get: function () {
+ return this.bounds.width;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DynamicTexture.prototype, "height", {
+ get: function () {
+ return this.bounds.height;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return DynamicTexture;
+ })();
+ Display.DynamicTexture = DynamicTexture;
+ })(Phaser.Display || (Phaser.Display = {}));
+ var Display = Phaser.Display;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Display) {
+ var Texture = (function () {
+ function Texture(parent) {
+ this.imageTexture = null;
+ this.dynamicTexture = null;
+ this.loaded = false;
+ this.opaque = false;
+ this.backgroundColor = 'rgb(255,255,255)';
+ this.globalCompositeOperation = null;
+ this.renderRotation = true;
+ this.flippedX = false;
+ this.flippedY = false;
+ this.isDynamic = false;
+ this.game = parent.game;
+ this.parent = parent;
+ this.canvas = parent.game.stage.canvas;
+ this.context = parent.game.stage.context;
+ this.alpha = 1;
+ this.flippedX = false;
+ this.flippedY = false;
+ this._width = 16;
+ this._height = 16;
+ this.cameraBlacklist = [];
+ this._blacklist = 0;
+ }
+ Texture.prototype.hideFromCamera = function (camera) {
+ if(this.isHidden(camera) == false) {
+ this.cameraBlacklist.push(camera.ID);
+ this._blacklist++;
+ }
+ };
+ Texture.prototype.isHidden = function (camera) {
+ if(this._blacklist && this.cameraBlacklist.indexOf(camera.ID) !== -1) {
+ return true;
+ }
+ return false;
+ };
+ Texture.prototype.showToCamera = function (camera) {
+ if(this.isHidden(camera)) {
+ this.cameraBlacklist.slice(this.cameraBlacklist.indexOf(camera.ID), 1);
+ this._blacklist--;
+ }
+ };
+ Texture.prototype.setTo = function (image, dynamic) {
+ if (typeof image === "undefined") { image = null; }
+ if (typeof dynamic === "undefined") { dynamic = null; }
+ if(dynamic) {
+ this.isDynamic = true;
+ this.dynamicTexture = dynamic;
+ this.texture = this.dynamicTexture.canvas;
+ } else {
+ this.isDynamic = false;
+ this.imageTexture = image;
+ this.texture = this.imageTexture;
+ this._width = image.width;
+ this._height = image.height;
+ }
+ this.loaded = true;
+ return this.parent;
+ };
+ Texture.prototype.loadImage = function (key, clearAnimations, updateBody) {
+ if (typeof clearAnimations === "undefined") { clearAnimations = true; }
+ if (typeof updateBody === "undefined") { updateBody = true; }
+ if(clearAnimations && this.parent['animations'] && this.parent['animations'].frameData !== null) {
+ this.parent.animations.destroy();
+ }
+ if(this.game.cache.getImage(key) !== null) {
+ this.setTo(this.game.cache.getImage(key), null);
+ this.cacheKey = key;
+ if(this.game.cache.isSpriteSheet(key) && this.parent['animations']) {
+ this.parent.animations.loadFrameData(this.parent.game.cache.getFrameData(key));
+ } else {
+ if(updateBody && this.parent['body']) {
+ this.parent.body.bounds.width = this.width;
+ this.parent.body.bounds.height = this.height;
+ }
+ }
+ }
+ };
+ Texture.prototype.loadDynamicTexture = function (texture) {
+ if(this.parent.animations.frameData !== null) {
+ this.parent.animations.destroy();
+ }
+ this.setTo(null, texture);
+ this.parent.texture.width = this.width;
+ this.parent.texture.height = this.height;
+ };
+ Object.defineProperty(Texture.prototype, "width", {
+ get: function () {
+ if(this.isDynamic) {
+ return this.dynamicTexture.width;
+ } else {
+ return this._width;
+ }
+ },
+ set: function (value) {
+ this._width = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Texture.prototype, "height", {
+ get: function () {
+ if(this.isDynamic) {
+ return this.dynamicTexture.height;
+ } else {
+ return this._height;
+ }
+ },
+ set: function (value) {
+ this._height = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Texture;
+ })();
+ Display.Texture = Texture;
+ })(Phaser.Display || (Phaser.Display = {}));
+ var Display = Phaser.Display;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Back = (function () {
+ function Back() { }
+ Back.In = function In(k) {
+ var s = 1.70158;
+ return k * k * ((s + 1) * k - s);
+ };
+ Back.Out = function Out(k) {
+ var s = 1.70158;
+ return --k * k * ((s + 1) * k + s) + 1;
+ };
+ Back.InOut = function InOut(k) {
+ var s = 1.70158 * 1.525;
+ if((k *= 2) < 1) {
+ return 0.5 * (k * k * ((s + 1) * k - s));
+ }
+ return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);
+ };
+ return Back;
+ })();
+ Easing.Back = Back;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Bounce = (function () {
+ function Bounce() { }
+ Bounce.In = function In(k) {
+ return 1 - Phaser.Easing.Bounce.Out(1 - k);
+ };
+ Bounce.Out = function Out(k) {
+ if(k < (1 / 2.75)) {
+ return 7.5625 * k * k;
+ } else if(k < (2 / 2.75)) {
+ return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;
+ } else if(k < (2.5 / 2.75)) {
+ return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;
+ } else {
+ return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;
+ }
+ };
+ Bounce.InOut = function InOut(k) {
+ if(k < 0.5) {
+ return Phaser.Easing.Bounce.In(k * 2) * 0.5;
+ }
+ return Phaser.Easing.Bounce.Out(k * 2 - 1) * 0.5 + 0.5;
+ };
+ return Bounce;
+ })();
+ Easing.Bounce = Bounce;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Circular = (function () {
+ function Circular() { }
+ Circular.In = function In(k) {
+ return 1 - Math.sqrt(1 - k * k);
+ };
+ Circular.Out = function Out(k) {
+ return Math.sqrt(1 - (--k * k));
+ };
+ Circular.InOut = function InOut(k) {
+ if((k *= 2) < 1) {
+ return -0.5 * (Math.sqrt(1 - k * k) - 1);
+ }
+ return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);
+ };
+ return Circular;
+ })();
+ Easing.Circular = Circular;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Cubic = (function () {
+ function Cubic() { }
+ Cubic.In = function In(k) {
+ return k * k * k;
+ };
+ Cubic.Out = function Out(k) {
+ return --k * k * k + 1;
+ };
+ Cubic.InOut = function InOut(k) {
+ if((k *= 2) < 1) {
+ return 0.5 * k * k * k;
+ }
+ return 0.5 * ((k -= 2) * k * k + 2);
+ };
+ return Cubic;
+ })();
+ Easing.Cubic = Cubic;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Elastic = (function () {
+ function Elastic() { }
+ Elastic.In = function In(k) {
+ var s, a = 0.1, p = 0.4;
+ if(k === 0) {
+ return 0;
+ }
+ if(k === 1) {
+ return 1;
+ }
+ if(!a || a < 1) {
+ a = 1;
+ s = p / 4;
+ } else {
+ s = p * Math.asin(1 / a) / (2 * Math.PI);
+ }
+ return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
+ };
+ Elastic.Out = function Out(k) {
+ var s, a = 0.1, p = 0.4;
+ if(k === 0) {
+ return 0;
+ }
+ if(k === 1) {
+ return 1;
+ }
+ if(!a || a < 1) {
+ a = 1;
+ s = p / 4;
+ } else {
+ s = p * Math.asin(1 / a) / (2 * Math.PI);
+ }
+ return (a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1);
+ };
+ Elastic.InOut = function InOut(k) {
+ var s, a = 0.1, p = 0.4;
+ if(k === 0) {
+ return 0;
+ }
+ if(k === 1) {
+ return 1;
+ }
+ if(!a || a < 1) {
+ a = 1;
+ s = p / 4;
+ } else {
+ s = p * Math.asin(1 / a) / (2 * Math.PI);
+ }
+ if((k *= 2) < 1) {
+ return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
+ }
+ return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
+ };
+ return Elastic;
+ })();
+ Easing.Elastic = Elastic;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Exponential = (function () {
+ function Exponential() { }
+ Exponential.In = function In(k) {
+ return k === 0 ? 0 : Math.pow(1024, k - 1);
+ };
+ Exponential.Out = function Out(k) {
+ return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);
+ };
+ Exponential.InOut = function InOut(k) {
+ if(k === 0) {
+ return 0;
+ }
+ if(k === 1) {
+ return 1;
+ }
+ if((k *= 2) < 1) {
+ return 0.5 * Math.pow(1024, k - 1);
+ }
+ return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);
+ };
+ return Exponential;
+ })();
+ Easing.Exponential = Exponential;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Linear = (function () {
+ function Linear() { }
+ Linear.None = function None(k) {
+ return k;
+ };
+ return Linear;
+ })();
+ Easing.Linear = Linear;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Quadratic = (function () {
+ function Quadratic() { }
+ Quadratic.In = function In(k) {
+ return k * k;
+ };
+ Quadratic.Out = function Out(k) {
+ return k * (2 - k);
+ };
+ Quadratic.InOut = function InOut(k) {
+ if((k *= 2) < 1) {
+ return 0.5 * k * k;
+ }
+ return -0.5 * (--k * (k - 2) - 1);
+ };
+ return Quadratic;
+ })();
+ Easing.Quadratic = Quadratic;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Quartic = (function () {
+ function Quartic() { }
+ Quartic.In = function In(k) {
+ return k * k * k * k;
+ };
+ Quartic.Out = function Out(k) {
+ return 1 - (--k * k * k * k);
+ };
+ Quartic.InOut = function InOut(k) {
+ if((k *= 2) < 1) {
+ return 0.5 * k * k * k * k;
+ }
+ return -0.5 * ((k -= 2) * k * k * k - 2);
+ };
+ return Quartic;
+ })();
+ Easing.Quartic = Quartic;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Quintic = (function () {
+ function Quintic() { }
+ Quintic.In = function In(k) {
+ return k * k * k * k * k;
+ };
+ Quintic.Out = function Out(k) {
+ return --k * k * k * k * k + 1;
+ };
+ Quintic.InOut = function InOut(k) {
+ if((k *= 2) < 1) {
+ return 0.5 * k * k * k * k * k;
+ }
+ return 0.5 * ((k -= 2) * k * k * k * k + 2);
+ };
+ return Quintic;
+ })();
+ Easing.Quintic = Quintic;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Easing) {
+ var Sinusoidal = (function () {
+ function Sinusoidal() { }
+ Sinusoidal.In = function In(k) {
+ return 1 - Math.cos(k * Math.PI / 2);
+ };
+ Sinusoidal.Out = function Out(k) {
+ return Math.sin(k * Math.PI / 2);
+ };
+ Sinusoidal.InOut = function InOut(k) {
+ return 0.5 * (1 - Math.cos(Math.PI * k));
+ };
+ return Sinusoidal;
+ })();
+ Easing.Sinusoidal = Sinusoidal;
+ })(Phaser.Easing || (Phaser.Easing = {}));
+ var Easing = Phaser.Easing;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Tween = (function () {
+ function Tween(object, game) {
+ this._object = null;
+ this._pausedTime = 0;
+ this._valuesStart = {
+ };
+ this._valuesEnd = {
+ };
+ this._duration = 1000;
+ this._delayTime = 0;
+ this._startTime = null;
+ this._loop = false;
+ this._yoyo = false;
+ this._yoyoCount = 0;
+ this._chainedTweens = [];
+ this.isRunning = false;
+ this._object = object;
+ this.game = game;
+ this._manager = this.game.tweens;
+ this._interpolationFunction = this.game.math.linearInterpolation;
+ this._easingFunction = Phaser.Easing.Linear.None;
+ this._chainedTweens = [];
+ this.onStart = new Phaser.Signal();
+ this.onUpdate = new Phaser.Signal();
+ this.onComplete = new Phaser.Signal();
+ }
+ Tween.prototype.to = function (properties, duration, ease, autoStart, delay, loop, yoyo) {
+ if (typeof duration === "undefined") { duration = 1000; }
+ if (typeof ease === "undefined") { ease = null; }
+ if (typeof autoStart === "undefined") { autoStart = false; }
+ if (typeof delay === "undefined") { delay = 0; }
+ if (typeof loop === "undefined") { loop = false; }
+ if (typeof yoyo === "undefined") { yoyo = false; }
+ this._duration = duration;
+ this._valuesEnd = properties;
+ if(ease !== null) {
+ this._easingFunction = ease;
+ }
+ if(delay > 0) {
+ this._delayTime = delay;
+ }
+ this._loop = loop;
+ this._yoyo = yoyo;
+ this._yoyoCount = 0;
+ if(autoStart === true) {
+ return this.start();
+ } else {
+ return this;
+ }
+ };
+ Tween.prototype.loop = function (value) {
+ this._loop = value;
+ return this;
+ };
+ Tween.prototype.yoyo = function (value) {
+ this._yoyo = value;
+ this._yoyoCount = 0;
+ return this;
+ };
+ Tween.prototype.start = function (looped) {
+ if (typeof looped === "undefined") { looped = false; }
+ if(this.game === null || this._object === null) {
+ return;
+ }
+ if(looped == false) {
+ this._manager.add(this);
+ this.onStart.dispatch(this._object);
+ }
+ this._startTime = this.game.time.now + this._delayTime;
+ this.isRunning = true;
+ for(var property in this._valuesEnd) {
+ if(this._object[property] === null || !(property in this._object)) {
+ throw Error('Phaser.Tween interpolation of null value of non-existing property');
+ continue;
+ }
+ if(this._valuesEnd[property] instanceof Array) {
+ if(this._valuesEnd[property].length === 0) {
+ continue;
+ }
+ this._valuesEnd[property] = [
+ this._object[property]
+ ].concat(this._valuesEnd[property]);
+ }
+ if(looped == false) {
+ this._valuesStart[property] = this._object[property];
+ }
+ }
+ return this;
+ };
+ Tween.prototype.reverse = function () {
+ var tempObj = {
+ };
+ for(var property in this._valuesStart) {
+ tempObj[property] = this._valuesStart[property];
+ this._valuesStart[property] = this._valuesEnd[property];
+ this._valuesEnd[property] = tempObj[property];
+ }
+ this._yoyoCount++;
+ return this.start(true);
+ };
+ Tween.prototype.reset = function () {
+ for(var property in this._valuesStart) {
+ this._object[property] = this._valuesStart[property];
+ }
+ return this.start(true);
+ };
+ Tween.prototype.clear = function () {
+ this._chainedTweens = [];
+ this.onStart.removeAll();
+ this.onUpdate.removeAll();
+ this.onComplete.removeAll();
+ return this;
+ };
+ Tween.prototype.stop = function () {
+ if(this._manager !== null) {
+ this._manager.remove(this);
+ }
+ this.isRunning = false;
+ this.onComplete.dispose();
+ return this;
+ };
+ Object.defineProperty(Tween.prototype, "parent", {
+ set: function (value) {
+ this.game = value;
+ this._manager = this.game.tweens;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Tween.prototype, "delay", {
+ get: function () {
+ return this._delayTime;
+ },
+ set: function (amount) {
+ this._delayTime = amount;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Tween.prototype, "easing", {
+ get: function () {
+ return this._easingFunction;
+ },
+ set: function (easing) {
+ this._easingFunction = easing;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Tween.prototype, "interpolation", {
+ get: function () {
+ return this._interpolationFunction;
+ },
+ set: function (interpolation) {
+ this._interpolationFunction = interpolation;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Tween.prototype.chain = function (tween) {
+ this._chainedTweens.push(tween);
+ return this;
+ };
+ Tween.prototype.pause = function () {
+ this._paused = true;
+ };
+ Tween.prototype.resume = function () {
+ this._paused = false;
+ this._startTime += this.game.time.pauseDuration;
+ };
+ Tween.prototype.update = function (time) {
+ if(this._paused || time < this._startTime) {
+ return true;
+ }
+ this._tempElapsed = (time - this._startTime) / this._duration;
+ this._tempElapsed = this._tempElapsed > 1 ? 1 : this._tempElapsed;
+ this._tempValue = this._easingFunction(this._tempElapsed);
+ for(var property in this._valuesStart) {
+ if(this._valuesEnd[property] instanceof Array) {
+ this._object[property] = this._interpolationFunction(this._valuesEnd[property], this._tempValue);
+ } else {
+ this._object[property] = this._valuesStart[property] + (this._valuesEnd[property] - this._valuesStart[property]) * this._tempValue;
+ }
+ }
+ this.onUpdate.dispatch(this._object, this._tempValue);
+ if(this._tempElapsed == 1) {
+ if(this._yoyo) {
+ if(this._yoyoCount == 0) {
+ this.reverse();
+ return true;
+ } else {
+ if(this._loop == false) {
+ this.onComplete.dispatch(this._object);
+ for(var i = 0; i < this._chainedTweens.length; i++) {
+ this._chainedTweens[i].start();
+ }
+ return false;
+ } else {
+ this._yoyoCount = 0;
+ this.reverse();
+ return true;
+ }
+ }
+ }
+ if(this._loop) {
+ this._yoyoCount = 0;
+ this.reset();
+ return true;
+ } else {
+ this.onComplete.dispatch(this._object);
+ for(var i = 0; i < this._chainedTweens.length; i++) {
+ this._chainedTweens[i].start();
+ }
+ if(this._chainedTweens.length == 0) {
+ this.isRunning = false;
+ }
+ return false;
+ }
+ }
+ return true;
+ };
+ return Tween;
+ })();
+ Phaser.Tween = Tween;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var TweenManager = (function () {
+ function TweenManager(game) {
+ this.game = game;
+ this._tweens = [];
+ this.game.onPause.add(this.pauseAll, this);
+ this.game.onResume.add(this.resumeAll, this);
+ }
+ TweenManager.prototype.getAll = function () {
+ return this._tweens;
+ };
+ TweenManager.prototype.removeAll = function () {
+ this._tweens.length = 0;
+ };
+ TweenManager.prototype.create = function (object, localReference) {
+ if (typeof localReference === "undefined") { localReference = false; }
+ if(localReference) {
+ object['tween'] = new Phaser.Tween(object, this.game);
+ return object['tween'];
+ } else {
+ return new Phaser.Tween(object, this.game);
+ }
+ };
+ TweenManager.prototype.add = function (tween) {
+ tween.parent = this.game;
+ this._tweens.push(tween);
+ return tween;
+ };
+ TweenManager.prototype.remove = function (tween) {
+ var i = this._tweens.indexOf(tween);
+ if(i !== -1) {
+ this._tweens.splice(i, 1);
+ }
+ };
+ TweenManager.prototype.update = function () {
+ if(this._tweens.length === 0) {
+ return false;
+ }
+ var i = 0;
+ var numTweens = this._tweens.length;
+ while(i < numTweens) {
+ if(this._tweens[i].update(this.game.time.now)) {
+ i++;
+ } else {
+ this._tweens.splice(i, 1);
+ numTweens--;
+ }
+ }
+ return true;
+ };
+ TweenManager.prototype.pauseAll = function () {
+ if(this._tweens.length === 0) {
+ return false;
+ }
+ var i = 0;
+ var numTweens = this._tweens.length;
+ while(i < numTweens) {
+ this._tweens[i].pause();
+ i++;
+ }
+ };
+ TweenManager.prototype.resumeAll = function () {
+ if(this._tweens.length === 0) {
+ return false;
+ }
+ var i = 0;
+ var numTweens = this._tweens.length;
+ while(i < numTweens) {
+ this._tweens[i].resume();
+ i++;
+ }
+ };
+ return TweenManager;
+ })();
+ Phaser.TweenManager = TweenManager;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var TimeManager = (function () {
+ function TimeManager(game) {
+ this.physicsElapsed = 0;
+ this.time = 0;
+ this.pausedTime = 0;
+ this.now = 0;
+ this.delta = 0;
+ this.fps = 0;
+ this.fpsMin = 1000;
+ this.fpsMax = 0;
+ this.msMin = 1000;
+ this.msMax = 0;
+ this.frames = 0;
+ this._timeLastSecond = 0;
+ this.pauseDuration = 0;
+ this._pauseStarted = 0;
+ this.game = game;
+ this._started = 0;
+ this._timeLastSecond = this._started;
+ this.time = this._started;
+ this.game.onPause.add(this.gamePaused, this);
+ this.game.onResume.add(this.gameResumed, this);
+ }
+ Object.defineProperty(TimeManager.prototype, "totalElapsedSeconds", {
+ get: function () {
+ return (this.now - this._started) * 0.001;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ TimeManager.prototype.update = function (raf) {
+ this.now = raf;
+ this.delta = this.now - this.time;
+ this.msMin = Math.min(this.msMin, this.delta);
+ this.msMax = Math.max(this.msMax, this.delta);
+ this.frames++;
+ if(this.now > this._timeLastSecond + 1000) {
+ this.fps = Math.round((this.frames * 1000) / (this.now - this._timeLastSecond));
+ this.fpsMin = Math.min(this.fpsMin, this.fps);
+ this.fpsMax = Math.max(this.fpsMax, this.fps);
+ this._timeLastSecond = this.now;
+ this.frames = 0;
+ }
+ this.time = this.now;
+ this.physicsElapsed = 1.0 * (this.delta / 1000);
+ if(this.game.paused) {
+ this.pausedTime = this.now - this._pauseStarted;
+ }
+ };
+ TimeManager.prototype.gamePaused = function () {
+ this._pauseStarted = this.now;
+ };
+ TimeManager.prototype.gameResumed = function () {
+ this.delta = 0;
+ this.physicsElapsed = 0;
+ this.time = Date.now();
+ this.pauseDuration = this.pausedTime;
+ };
+ TimeManager.prototype.elapsedSince = function (since) {
+ return this.now - since;
+ };
+ TimeManager.prototype.elapsedSecondsSince = function (since) {
+ return (this.now - since) * 0.001;
+ };
+ TimeManager.prototype.reset = function () {
+ this._started = this.now;
+ };
+ return TimeManager;
+ })();
+ Phaser.TimeManager = TimeManager;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Net = (function () {
+ function Net(game) {
+ this.game = game;
+ }
+ Net.prototype.checkDomainName = function (domain) {
+ return window.location.hostname.indexOf(domain) !== -1;
+ };
+ Net.prototype.updateQueryString = function (key, value, redirect, url) {
+ if (typeof redirect === "undefined") { redirect = false; }
+ if (typeof url === "undefined") { url = ''; }
+ if(url == '') {
+ url = window.location.href;
+ }
+ var output = '';
+ var re = new RegExp("([?|&])" + key + "=.*?(&|#|$)(.*)", "gi");
+ if(re.test(url)) {
+ if(typeof value !== 'undefined' && value !== null) {
+ output = url.replace(re, '$1' + key + "=" + value + '$2$3');
+ } else {
+ output = url.replace(re, '$1$3').replace(/(&|\?)$/, '');
+ }
+ } else {
+ if(typeof value !== 'undefined' && value !== null) {
+ var separator = url.indexOf('?') !== -1 ? '&' : '?';
+ var hash = url.split('#');
+ url = hash[0] + separator + key + '=' + value;
+ if(hash[1]) {
+ url += '#' + hash[1];
+ }
+ output = url;
+ } else {
+ output = url;
+ }
+ }
+ if(redirect) {
+ window.location.href = output;
+ } else {
+ return output;
+ }
+ };
+ Net.prototype.getQueryString = function (parameter) {
+ if (typeof parameter === "undefined") { parameter = ''; }
+ var output = {
+ };
+ var keyValues = location.search.substring(1).split('&');
+ for(var i in keyValues) {
+ var key = keyValues[i].split('=');
+ if(key.length > 1) {
+ if(parameter && parameter == this.decodeURI(key[0])) {
+ return this.decodeURI(key[1]);
+ } else {
+ output[this.decodeURI(key[0])] = this.decodeURI(key[1]);
+ }
+ }
+ }
+ return output;
+ };
+ Net.prototype.decodeURI = function (value) {
+ return decodeURIComponent(value.replace(/\+/g, " "));
+ };
+ return Net;
+ })();
+ Phaser.Net = Net;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Keyboard = (function () {
+ function Keyboard(game) {
+ this._keys = {
+ };
+ this._capture = {
+ };
+ this.disabled = false;
+ this.game = game;
+ }
+ Keyboard.prototype.start = function () {
+ var _this = this;
+ this._onKeyDown = function (event) {
+ return _this.onKeyDown(event);
+ };
+ this._onKeyUp = function (event) {
+ return _this.onKeyUp(event);
+ };
+ document.body.addEventListener('keydown', this._onKeyDown, false);
+ document.body.addEventListener('keyup', this._onKeyUp, false);
+ };
+ Keyboard.prototype.stop = function () {
+ document.body.removeEventListener('keydown', this._onKeyDown);
+ document.body.removeEventListener('keyup', this._onKeyUp);
+ };
+ Keyboard.prototype.addKeyCapture = function (keycode) {
+ if(typeof keycode === 'object') {
+ for(var i = 0; i < keycode.length; i++) {
+ this._capture[keycode[i]] = true;
+ }
+ } else {
+ this._capture[keycode] = true;
+ }
+ };
+ Keyboard.prototype.removeKeyCapture = function (keycode) {
+ delete this._capture[keycode];
+ };
+ Keyboard.prototype.clearCaptures = function () {
+ this._capture = {
+ };
+ };
+ Keyboard.prototype.onKeyDown = function (event) {
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ if(this._capture[event.keyCode]) {
+ event.preventDefault();
+ }
+ if(!this._keys[event.keyCode]) {
+ this._keys[event.keyCode] = {
+ isDown: true,
+ timeDown: this.game.time.now,
+ timeUp: 0
+ };
+ } else {
+ this._keys[event.keyCode].isDown = true;
+ this._keys[event.keyCode].timeDown = this.game.time.now;
+ }
+ };
+ Keyboard.prototype.onKeyUp = function (event) {
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ if(this._capture[event.keyCode]) {
+ event.preventDefault();
+ }
+ if(!this._keys[event.keyCode]) {
+ this._keys[event.keyCode] = {
+ isDown: false,
+ timeDown: 0,
+ timeUp: this.game.time.now
+ };
+ } else {
+ this._keys[event.keyCode].isDown = false;
+ this._keys[event.keyCode].timeUp = this.game.time.now;
+ }
+ };
+ Keyboard.prototype.reset = function () {
+ for(var key in this._keys) {
+ this._keys[key].isDown = false;
+ }
+ };
+ Keyboard.prototype.justPressed = function (keycode, duration) {
+ if (typeof duration === "undefined") { duration = 250; }
+ if(this._keys[keycode] && this._keys[keycode].isDown === true && (this.game.time.now - this._keys[keycode].timeDown < duration)) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ Keyboard.prototype.justReleased = function (keycode, duration) {
+ if (typeof duration === "undefined") { duration = 250; }
+ if(this._keys[keycode] && this._keys[keycode].isDown === false && (this.game.time.now - this._keys[keycode].timeUp < duration)) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ Keyboard.prototype.isDown = function (keycode) {
+ if(this._keys[keycode]) {
+ return this._keys[keycode].isDown;
+ } else {
+ return false;
+ }
+ };
+ Keyboard.A = "A".charCodeAt(0);
+ Keyboard.B = "B".charCodeAt(0);
+ Keyboard.C = "C".charCodeAt(0);
+ Keyboard.D = "D".charCodeAt(0);
+ Keyboard.E = "E".charCodeAt(0);
+ Keyboard.F = "F".charCodeAt(0);
+ Keyboard.G = "G".charCodeAt(0);
+ Keyboard.H = "H".charCodeAt(0);
+ Keyboard.I = "I".charCodeAt(0);
+ Keyboard.J = "J".charCodeAt(0);
+ Keyboard.K = "K".charCodeAt(0);
+ Keyboard.L = "L".charCodeAt(0);
+ Keyboard.M = "M".charCodeAt(0);
+ Keyboard.N = "N".charCodeAt(0);
+ Keyboard.O = "O".charCodeAt(0);
+ Keyboard.P = "P".charCodeAt(0);
+ Keyboard.Q = "Q".charCodeAt(0);
+ Keyboard.R = "R".charCodeAt(0);
+ Keyboard.S = "S".charCodeAt(0);
+ Keyboard.T = "T".charCodeAt(0);
+ Keyboard.U = "U".charCodeAt(0);
+ Keyboard.V = "V".charCodeAt(0);
+ Keyboard.W = "W".charCodeAt(0);
+ Keyboard.X = "X".charCodeAt(0);
+ Keyboard.Y = "Y".charCodeAt(0);
+ Keyboard.Z = "Z".charCodeAt(0);
+ Keyboard.ZERO = "0".charCodeAt(0);
+ Keyboard.ONE = "1".charCodeAt(0);
+ Keyboard.TWO = "2".charCodeAt(0);
+ Keyboard.THREE = "3".charCodeAt(0);
+ Keyboard.FOUR = "4".charCodeAt(0);
+ Keyboard.FIVE = "5".charCodeAt(0);
+ Keyboard.SIX = "6".charCodeAt(0);
+ Keyboard.SEVEN = "7".charCodeAt(0);
+ Keyboard.EIGHT = "8".charCodeAt(0);
+ Keyboard.NINE = "9".charCodeAt(0);
+ Keyboard.NUMPAD_0 = 96;
+ Keyboard.NUMPAD_1 = 97;
+ Keyboard.NUMPAD_2 = 98;
+ Keyboard.NUMPAD_3 = 99;
+ Keyboard.NUMPAD_4 = 100;
+ Keyboard.NUMPAD_5 = 101;
+ Keyboard.NUMPAD_6 = 102;
+ Keyboard.NUMPAD_7 = 103;
+ Keyboard.NUMPAD_8 = 104;
+ Keyboard.NUMPAD_9 = 105;
+ Keyboard.NUMPAD_MULTIPLY = 106;
+ Keyboard.NUMPAD_ADD = 107;
+ Keyboard.NUMPAD_ENTER = 108;
+ Keyboard.NUMPAD_SUBTRACT = 109;
+ Keyboard.NUMPAD_DECIMAL = 110;
+ Keyboard.NUMPAD_DIVIDE = 111;
+ Keyboard.F1 = 112;
+ Keyboard.F2 = 113;
+ Keyboard.F3 = 114;
+ Keyboard.F4 = 115;
+ Keyboard.F5 = 116;
+ Keyboard.F6 = 117;
+ Keyboard.F7 = 118;
+ Keyboard.F8 = 119;
+ Keyboard.F9 = 120;
+ Keyboard.F10 = 121;
+ Keyboard.F11 = 122;
+ Keyboard.F12 = 123;
+ Keyboard.F13 = 124;
+ Keyboard.F14 = 125;
+ Keyboard.F15 = 126;
+ Keyboard.COLON = 186;
+ Keyboard.EQUALS = 187;
+ Keyboard.UNDERSCORE = 189;
+ Keyboard.QUESTION_MARK = 191;
+ Keyboard.TILDE = 192;
+ Keyboard.OPEN_BRACKET = 219;
+ Keyboard.BACKWARD_SLASH = 220;
+ Keyboard.CLOSED_BRACKET = 221;
+ Keyboard.QUOTES = 222;
+ Keyboard.BACKSPACE = 8;
+ Keyboard.TAB = 9;
+ Keyboard.CLEAR = 12;
+ Keyboard.ENTER = 13;
+ Keyboard.SHIFT = 16;
+ Keyboard.CONTROL = 17;
+ Keyboard.ALT = 18;
+ Keyboard.CAPS_LOCK = 20;
+ Keyboard.ESC = 27;
+ Keyboard.SPACEBAR = 32;
+ Keyboard.PAGE_UP = 33;
+ Keyboard.PAGE_DOWN = 34;
+ Keyboard.END = 35;
+ Keyboard.HOME = 36;
+ Keyboard.LEFT = 37;
+ Keyboard.UP = 38;
+ Keyboard.RIGHT = 39;
+ Keyboard.DOWN = 40;
+ Keyboard.INSERT = 45;
+ Keyboard.DELETE = 46;
+ Keyboard.HELP = 47;
+ Keyboard.NUM_LOCK = 144;
+ return Keyboard;
+ })();
+ Phaser.Keyboard = Keyboard;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Mouse = (function () {
+ function Mouse(game) {
+ this.disabled = false;
+ this.mouseDownCallback = null;
+ this.mouseMoveCallback = null;
+ this.mouseUpCallback = null;
+ this.game = game;
+ this.callbackContext = this.game;
+ }
+ Mouse.LEFT_BUTTON = 0;
+ Mouse.MIDDLE_BUTTON = 1;
+ Mouse.RIGHT_BUTTON = 2;
+ Mouse.prototype.start = function () {
+ var _this = this;
+ if(this.game.device.android && this.game.device.chrome == false) {
+ return;
+ }
+ this._onMouseDown = function (event) {
+ return _this.onMouseDown(event);
+ };
+ this._onMouseMove = function (event) {
+ return _this.onMouseMove(event);
+ };
+ this._onMouseUp = function (event) {
+ return _this.onMouseUp(event);
+ };
+ this.game.stage.canvas.addEventListener('mousedown', this._onMouseDown, true);
+ this.game.stage.canvas.addEventListener('mousemove', this._onMouseMove, true);
+ this.game.stage.canvas.addEventListener('mouseup', this._onMouseUp, true);
+ };
+ Mouse.prototype.onMouseDown = function (event) {
+ if(this.mouseDownCallback) {
+ this.mouseDownCallback.call(this.callbackContext, event);
+ }
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event['identifier'] = 0;
+ this.game.input.mousePointer.start(event);
+ };
+ Mouse.prototype.onMouseMove = function (event) {
+ if(this.mouseMoveCallback) {
+ this.mouseMoveCallback.call(this.callbackContext, event);
+ }
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event['identifier'] = 0;
+ this.game.input.mousePointer.move(event);
+ };
+ Mouse.prototype.onMouseUp = function (event) {
+ if(this.mouseUpCallback) {
+ this.mouseUpCallback.call(this.callbackContext, event);
+ }
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event['identifier'] = 0;
+ this.game.input.mousePointer.stop(event);
+ };
+ Mouse.prototype.stop = function () {
+ this.game.stage.canvas.removeEventListener('mousedown', this._onMouseDown);
+ this.game.stage.canvas.removeEventListener('mousemove', this._onMouseMove);
+ this.game.stage.canvas.removeEventListener('mouseup', this._onMouseUp);
+ };
+ return Mouse;
+ })();
+ Phaser.Mouse = Mouse;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var MSPointer = (function () {
+ function MSPointer(game) {
+ this.disabled = false;
+ this.game = game;
+ }
+ MSPointer.prototype.start = function () {
+ var _this = this;
+ if(this.game.device.mspointer == true) {
+ this._onMSPointerDown = function (event) {
+ return _this.onPointerDown(event);
+ };
+ this._onMSPointerMove = function (event) {
+ return _this.onPointerMove(event);
+ };
+ this._onMSPointerUp = function (event) {
+ return _this.onPointerUp(event);
+ };
+ this.game.stage.canvas.addEventListener('MSPointerDown', this._onMSPointerDown, false);
+ this.game.stage.canvas.addEventListener('MSPointerMove', this._onMSPointerMove, false);
+ this.game.stage.canvas.addEventListener('MSPointerUp', this._onMSPointerUp, false);
+ }
+ };
+ MSPointer.prototype.onPointerDown = function (event) {
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event.preventDefault();
+ event.identifier = event.pointerId;
+ this.game.input.startPointer(event);
+ };
+ MSPointer.prototype.onPointerMove = function (event) {
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event.preventDefault();
+ event.identifier = event.pointerId;
+ this.game.input.updatePointer(event);
+ };
+ MSPointer.prototype.onPointerUp = function (event) {
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event.preventDefault();
+ event.identifier = event.pointerId;
+ this.game.input.stopPointer(event);
+ };
+ MSPointer.prototype.stop = function () {
+ if(this.game.device.mspointer == true) {
+ this.game.stage.canvas.removeEventListener('MSPointerDown', this._onMSPointerDown);
+ this.game.stage.canvas.removeEventListener('MSPointerMove', this._onMSPointerMove);
+ this.game.stage.canvas.removeEventListener('MSPointerUp', this._onMSPointerUp);
+ }
+ };
+ return MSPointer;
+ })();
+ Phaser.MSPointer = MSPointer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Touch = (function () {
+ function Touch(game) {
+ this.disabled = false;
+ this.touchStartCallback = null;
+ this.touchMoveCallback = null;
+ this.touchEndCallback = null;
+ this.touchEnterCallback = null;
+ this.touchLeaveCallback = null;
+ this.touchCancelCallback = null;
+ this.game = game;
+ this.callbackContext = this.game;
+ }
+ Touch.prototype.start = function () {
+ var _this = this;
+ if(this.game.device.touch) {
+ this._onTouchStart = function (event) {
+ return _this.onTouchStart(event);
+ };
+ this._onTouchMove = function (event) {
+ return _this.onTouchMove(event);
+ };
+ this._onTouchEnd = function (event) {
+ return _this.onTouchEnd(event);
+ };
+ this._onTouchEnter = function (event) {
+ return _this.onTouchEnter(event);
+ };
+ this._onTouchLeave = function (event) {
+ return _this.onTouchLeave(event);
+ };
+ this._onTouchCancel = function (event) {
+ return _this.onTouchCancel(event);
+ };
+ this._documentTouchMove = function (event) {
+ return _this.consumeTouchMove(event);
+ };
+ this.game.stage.canvas.addEventListener('touchstart', this._onTouchStart, false);
+ this.game.stage.canvas.addEventListener('touchmove', this._onTouchMove, false);
+ this.game.stage.canvas.addEventListener('touchend', this._onTouchEnd, false);
+ this.game.stage.canvas.addEventListener('touchenter', this._onTouchEnter, false);
+ this.game.stage.canvas.addEventListener('touchleave', this._onTouchLeave, false);
+ this.game.stage.canvas.addEventListener('touchcancel', this._onTouchCancel, false);
+ document.addEventListener('touchmove', this._documentTouchMove, false);
+ }
+ };
+ Touch.prototype.consumeTouchMove = function (event) {
+ event.preventDefault();
+ };
+ Touch.prototype.onTouchStart = function (event) {
+ if(this.touchStartCallback) {
+ this.touchStartCallback.call(this.callbackContext, event);
+ }
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event.preventDefault();
+ for(var i = 0; i < event.changedTouches.length; i++) {
+ this.game.input.startPointer(event.changedTouches[i]);
+ }
+ };
+ Touch.prototype.onTouchCancel = function (event) {
+ if(this.touchCancelCallback) {
+ this.touchCancelCallback.call(this.callbackContext, event);
+ }
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event.preventDefault();
+ for(var i = 0; i < event.changedTouches.length; i++) {
+ this.game.input.stopPointer(event.changedTouches[i]);
+ }
+ };
+ Touch.prototype.onTouchEnter = function (event) {
+ if(this.touchEnterCallback) {
+ this.touchEnterCallback.call(this.callbackContext, event);
+ }
+ if(this.game.input.disabled || this.disabled) {
+ return;
+ }
+ event.preventDefault();
+ for(var i = 0; i < event.changedTouches.length; i++) {
+ }
+ };
+ Touch.prototype.onTouchLeave = function (event) {
+ if(this.touchLeaveCallback) {
+ this.touchLeaveCallback.call(this.callbackContext, event);
+ }
+ event.preventDefault();
+ for(var i = 0; i < event.changedTouches.length; i++) {
+ }
+ };
+ Touch.prototype.onTouchMove = function (event) {
+ if(this.touchMoveCallback) {
+ this.touchMoveCallback.call(this.callbackContext, event);
+ }
+ event.preventDefault();
+ for(var i = 0; i < event.changedTouches.length; i++) {
+ this.game.input.updatePointer(event.changedTouches[i]);
+ }
+ };
+ Touch.prototype.onTouchEnd = function (event) {
+ if(this.touchEndCallback) {
+ this.touchEndCallback.call(this.callbackContext, event);
+ }
+ event.preventDefault();
+ for(var i = 0; i < event.changedTouches.length; i++) {
+ this.game.input.stopPointer(event.changedTouches[i]);
+ }
+ };
+ Touch.prototype.stop = function () {
+ if(this.game.device.touch) {
+ this.game.stage.canvas.removeEventListener('touchstart', this._onTouchStart);
+ this.game.stage.canvas.removeEventListener('touchmove', this._onTouchMove);
+ this.game.stage.canvas.removeEventListener('touchend', this._onTouchEnd);
+ this.game.stage.canvas.removeEventListener('touchenter', this._onTouchEnter);
+ this.game.stage.canvas.removeEventListener('touchleave', this._onTouchLeave);
+ this.game.stage.canvas.removeEventListener('touchcancel', this._onTouchCancel);
+ document.removeEventListener('touchmove', this._documentTouchMove);
+ }
+ };
+ return Touch;
+ })();
+ Phaser.Touch = Touch;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Pointer = (function () {
+ function Pointer(game, id) {
+ this._holdSent = false;
+ this._history = [];
+ this._nextDrop = 0;
+ this._stateReset = false;
+ this.positionDown = null;
+ this.position = null;
+ this.circle = null;
+ this.withinGame = false;
+ this.clientX = -1;
+ this.clientY = -1;
+ this.pageX = -1;
+ this.pageY = -1;
+ this.screenX = -1;
+ this.screenY = -1;
+ this.x = -1;
+ this.y = -1;
+ this.isMouse = false;
+ this.isDown = false;
+ this.isUp = true;
+ this.timeDown = 0;
+ this.timeUp = 0;
+ this.previousTapTime = 0;
+ this.totalTouches = 0;
+ this.msSinceLastClick = Number.MAX_VALUE;
+ this.targetObject = null;
+ this.camera = null;
+ this.game = game;
+ this.id = id;
+ this.active = false;
+ this.position = new Phaser.Vec2();
+ this.positionDown = new Phaser.Vec2();
+ this.circle = new Phaser.Circle(0, 0, 44);
+ if(id == 0) {
+ this.isMouse = true;
+ }
+ }
+ Object.defineProperty(Pointer.prototype, "duration", {
+ get: function () {
+ if(this.isUp) {
+ return -1;
+ }
+ return this.game.time.now - this.timeDown;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Pointer.prototype, "worldX", {
+ get: function () {
+ if(this.camera) {
+ return (this.camera.worldView.x - this.camera.screenView.x) + this.x;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Pointer.prototype, "worldY", {
+ get: function () {
+ if(this.camera) {
+ return (this.camera.worldView.y - this.camera.screenView.y) + this.y;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Pointer.prototype.start = function (event) {
+ this.identifier = event.identifier;
+ this.target = event.target;
+ if(event.button) {
+ this.button = event.button;
+ }
+ if(this.game.paused == true && this.game.stage.scale.incorrectOrientation == false) {
+ this.game.stage.resumeGame();
+ return this;
+ }
+ this._history.length = 0;
+ this.active = true;
+ this.withinGame = true;
+ this.isDown = true;
+ this.isUp = false;
+ this.msSinceLastClick = this.game.time.now - this.timeDown;
+ this.timeDown = this.game.time.now;
+ this._holdSent = false;
+ this.move(event);
+ this.positionDown.setTo(this.x, this.y);
+ if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
+ this.game.input.x = this.x;
+ this.game.input.y = this.y;
+ this.game.input.position.setTo(this.x, this.y);
+ this.game.input.onDown.dispatch(this);
+ this.game.input.resetSpeed(this.x, this.y);
+ }
+ this._stateReset = false;
+ this.totalTouches++;
+ if(this.isMouse == false) {
+ this.game.input.currentPointers++;
+ }
+ if(this.targetObject !== null) {
+ this.targetObject.input._touchedHandler(this);
+ }
+ return this;
+ };
+ Pointer.prototype.update = function () {
+ if(this.active) {
+ if(this._holdSent == false && this.duration >= this.game.input.holdRate) {
+ if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
+ this.game.input.onHold.dispatch(this);
+ }
+ this._holdSent = true;
+ }
+ if(this.game.input.recordPointerHistory && this.game.time.now >= this._nextDrop) {
+ this._nextDrop = this.game.time.now + this.game.input.recordRate;
+ this._history.push({
+ x: this.position.x,
+ y: this.position.y
+ });
+ if(this._history.length > this.game.input.recordLimit) {
+ this._history.shift();
+ }
+ }
+ this.camera = this.game.world.cameras.getCameraUnderPoint(this.x, this.y);
+ }
+ };
+ Pointer.prototype.move = function (event) {
+ if(this.game.input.pollLocked) {
+ return;
+ }
+ if(event.button) {
+ this.button = event.button;
+ }
+ this.clientX = event.clientX;
+ this.clientY = event.clientY;
+ this.pageX = event.pageX;
+ this.pageY = event.pageY;
+ this.screenX = event.screenX;
+ this.screenY = event.screenY;
+ this.x = (this.pageX - this.game.stage.offset.x) * this.game.input.scale.x;
+ this.y = (this.pageY - this.game.stage.offset.y) * this.game.input.scale.y;
+ this.position.setTo(this.x, this.y);
+ this.circle.x = this.x;
+ this.circle.y = this.y;
+ if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
+ this.game.input.activePointer = this;
+ this.game.input.x = this.x;
+ this.game.input.y = this.y;
+ this.game.input.position.setTo(this.game.input.x, this.game.input.y);
+ this.game.input.circle.x = this.game.input.x;
+ this.game.input.circle.y = this.game.input.y;
+ }
+ if(this.game.paused) {
+ return this;
+ }
+ if(this.targetObject !== null && this.targetObject.input && this.targetObject.input.isDragged == true) {
+ if(this.targetObject.input.update(this) == false) {
+ this.targetObject = null;
+ }
+ return this;
+ }
+ this._highestRenderOrderID = -1;
+ this._highestRenderObject = -1;
+ this._highestInputPriorityID = -1;
+ for(var i = 0; i < this.game.input.totalTrackedObjects; i++) {
+ if(this.game.input.inputObjects[i] && this.game.input.inputObjects[i].input && this.game.input.inputObjects[i].input.checkPointerOver(this)) {
+ if(this.game.input.inputObjects[i].input.priorityID > this._highestInputPriorityID || (this.game.input.inputObjects[i].input.priorityID == this._highestInputPriorityID && this.game.input.inputObjects[i].renderOrderID > this._highestRenderOrderID)) {
+ this._highestRenderOrderID = this.game.input.inputObjects[i].renderOrderID;
+ this._highestRenderObject = i;
+ this._highestInputPriorityID = this.game.input.inputObjects[i].input.priorityID;
+ }
+ }
+ }
+ if(this._highestRenderObject == -1) {
+ if(this.targetObject !== null) {
+ this.targetObject.input._pointerOutHandler(this);
+ this.targetObject = null;
+ }
+ } else {
+ if(this.targetObject == null) {
+ this.targetObject = this.game.input.inputObjects[this._highestRenderObject];
+ this.targetObject.input._pointerOverHandler(this);
+ } else {
+ if(this.targetObject == this.game.input.inputObjects[this._highestRenderObject]) {
+ if(this.targetObject.input.update(this) == false) {
+ this.targetObject = null;
+ }
+ } else {
+ this.targetObject.input._pointerOutHandler(this);
+ this.targetObject = this.game.input.inputObjects[this._highestRenderObject];
+ this.targetObject.input._pointerOverHandler(this);
+ }
+ }
+ }
+ return this;
+ };
+ Pointer.prototype.leave = function (event) {
+ this.withinGame = false;
+ this.move(event);
+ };
+ Pointer.prototype.stop = function (event) {
+ if(this._stateReset) {
+ event.preventDefault();
+ return;
+ }
+ this.timeUp = this.game.time.now;
+ if(this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.InputManager.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.InputManager.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers == 0)) {
+ this.game.input.onUp.dispatch(this);
+ if(this.duration >= 0 && this.duration <= this.game.input.tapRate) {
+ if(this.timeUp - this.previousTapTime < this.game.input.doubleTapRate) {
+ this.game.input.onTap.dispatch(this, true);
+ } else {
+ this.game.input.onTap.dispatch(this, false);
+ }
+ this.previousTapTime = this.timeUp;
+ }
+ }
+ if(this.id > 0) {
+ this.active = false;
+ }
+ this.withinGame = false;
+ this.isDown = false;
+ this.isUp = true;
+ if(this.isMouse == false) {
+ this.game.input.currentPointers--;
+ }
+ for(var i = 0; i < this.game.input.totalTrackedObjects; i++) {
+ if(this.game.input.inputObjects[i] && this.game.input.inputObjects[i].input && this.game.input.inputObjects[i].input.enabled) {
+ this.game.input.inputObjects[i].input._releasedHandler(this);
+ }
+ }
+ if(this.targetObject) {
+ this.targetObject.input._releasedHandler(this);
+ }
+ this.targetObject = null;
+ return this;
+ };
+ Pointer.prototype.justPressed = function (duration) {
+ if (typeof duration === "undefined") { duration = this.game.input.justPressedRate; }
+ if(this.isDown === true && (this.timeDown + duration) > this.game.time.now) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ Pointer.prototype.justReleased = function (duration) {
+ if (typeof duration === "undefined") { duration = this.game.input.justReleasedRate; }
+ if(this.isUp === true && (this.timeUp + duration) > this.game.time.now) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ Pointer.prototype.reset = function () {
+ if(this.isMouse == false) {
+ this.active = false;
+ }
+ this.identifier = null;
+ this.isDown = false;
+ this.isUp = true;
+ this.totalTouches = 0;
+ this._holdSent = false;
+ this._history.length = 0;
+ this._stateReset = true;
+ if(this.targetObject && this.targetObject.input) {
+ this.targetObject.input._releasedHandler(this);
+ }
+ this.targetObject = null;
+ };
+ Pointer.prototype.toString = function () {
+ return "[{Pointer (id=" + this.id + " identifer=" + this.identifier + " active=" + this.active + " duration=" + this.duration + " withinGame=" + this.withinGame + " x=" + this.x + " y=" + this.y + " clientX=" + this.clientX + " clientY=" + this.clientY + " screenX=" + this.screenX + " screenY=" + this.screenY + " pageX=" + this.pageX + " pageY=" + this.pageY + ")}]";
+ };
+ return Pointer;
+ })();
+ Phaser.Pointer = Pointer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Components) {
+ var InputHandler = (function () {
+ function InputHandler(parent) {
+ this.priorityID = 0;
+ this.indexID = 0;
+ this.isDragged = false;
+ this.dragPixelPerfect = false;
+ this.allowHorizontalDrag = true;
+ this.allowVerticalDrag = true;
+ this.bringToTop = false;
+ this.snapOnDrag = false;
+ this.snapOnRelease = false;
+ this.snapX = 0;
+ this.snapY = 0;
+ this.draggable = false;
+ this.boundsRect = null;
+ this.boundsSprite = null;
+ this.consumePointerEvent = false;
+ this.game = parent.game;
+ this._parent = parent;
+ this.enabled = false;
+ }
+ InputHandler.prototype.pointerX = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].x;
+ };
+ InputHandler.prototype.pointerY = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].y;
+ };
+ InputHandler.prototype.pointerDown = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].isDown;
+ };
+ InputHandler.prototype.pointerUp = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].isUp;
+ };
+ InputHandler.prototype.pointerTimeDown = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].timeDown;
+ };
+ InputHandler.prototype.pointerTimeUp = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].timeUp;
+ };
+ InputHandler.prototype.pointerOver = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].isOver;
+ };
+ InputHandler.prototype.pointerOut = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].isOut;
+ };
+ InputHandler.prototype.pointerTimeOver = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].timeOver;
+ };
+ InputHandler.prototype.pointerTimeOut = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].timeOut;
+ };
+ InputHandler.prototype.pointerDragged = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ return this._pointerData[pointer].isDragged;
+ };
+ InputHandler.prototype.start = function (priority, checkBody, useHandCursor) {
+ if (typeof priority === "undefined") { priority = 0; }
+ if (typeof checkBody === "undefined") { checkBody = false; }
+ if (typeof useHandCursor === "undefined") { useHandCursor = false; }
+ if(this.enabled == false) {
+ this.checkBody = checkBody;
+ this.useHandCursor = useHandCursor;
+ this.priorityID = priority;
+ this._pointerData = [];
+ for(var i = 0; i < 10; i++) {
+ this._pointerData.push({
+ id: i,
+ x: 0,
+ y: 0,
+ isDown: false,
+ isUp: false,
+ isOver: false,
+ isOut: false,
+ timeOver: 0,
+ timeOut: 0,
+ timeDown: 0,
+ timeUp: 0,
+ downDuration: 0,
+ isDragged: false
+ });
+ }
+ this.snapOffset = new Phaser.Point();
+ this.enabled = true;
+ this.game.input.addGameObject(this._parent);
+ if(this._parent.events.onInputOver == null) {
+ this._parent.events.onInputOver = new Phaser.Signal();
+ this._parent.events.onInputOut = new Phaser.Signal();
+ this._parent.events.onInputDown = new Phaser.Signal();
+ this._parent.events.onInputUp = new Phaser.Signal();
+ this._parent.events.onDragStart = new Phaser.Signal();
+ this._parent.events.onDragStop = new Phaser.Signal();
+ }
+ }
+ return this._parent;
+ };
+ InputHandler.prototype.reset = function () {
+ this.enabled = false;
+ for(var i = 0; i < 10; i++) {
+ this._pointerData[i] = {
+ id: i,
+ x: 0,
+ y: 0,
+ isDown: false,
+ isUp: false,
+ isOver: false,
+ isOut: false,
+ timeOver: 0,
+ timeOut: 0,
+ timeDown: 0,
+ timeUp: 0,
+ downDuration: 0,
+ isDragged: false
+ };
+ }
+ };
+ InputHandler.prototype.stop = function () {
+ if(this.enabled == false) {
+ return;
+ } else {
+ this.enabled = false;
+ this.game.input.removeGameObject(this.indexID);
+ }
+ };
+ InputHandler.prototype.destroy = function () {
+ if(this.enabled) {
+ this.enabled = false;
+ this.game.input.removeGameObject(this.indexID);
+ }
+ };
+ InputHandler.prototype.checkPointerOver = function (pointer) {
+ if(this.enabled == false || this._parent.visible == false) {
+ return false;
+ } else {
+ return Phaser.SpriteUtils.overlapsPointer(this._parent, pointer);
+ }
+ };
+ InputHandler.prototype.update = function (pointer) {
+ if(this.enabled == false || this._parent.visible == false) {
+ this._pointerOutHandler(pointer);
+ return false;
+ }
+ if(this.draggable && this._draggedPointerID == pointer.id) {
+ return this.updateDrag(pointer);
+ } else if(this._pointerData[pointer.id].isOver == true) {
+ if(Phaser.SpriteUtils.overlapsPointer(this._parent, pointer)) {
+ this._pointerData[pointer.id].x = pointer.x - this._parent.x;
+ this._pointerData[pointer.id].y = pointer.y - this._parent.y;
+ return true;
+ } else {
+ this._pointerOutHandler(pointer);
+ return false;
+ }
+ }
+ };
+ InputHandler.prototype._pointerOverHandler = function (pointer) {
+ if(this._pointerData[pointer.id].isOver == false) {
+ this._pointerData[pointer.id].isOver = true;
+ this._pointerData[pointer.id].isOut = false;
+ this._pointerData[pointer.id].timeOver = this.game.time.now;
+ this._pointerData[pointer.id].x = pointer.x - this._parent.x;
+ this._pointerData[pointer.id].y = pointer.y - this._parent.y;
+ if(this.useHandCursor && this._pointerData[pointer.id].isDragged == false) {
+ this.game.stage.canvas.style.cursor = "pointer";
+ }
+ this._parent.events.onInputOver.dispatch(this._parent, pointer);
+ }
+ };
+ InputHandler.prototype._pointerOutHandler = function (pointer) {
+ this._pointerData[pointer.id].isOver = false;
+ this._pointerData[pointer.id].isOut = true;
+ this._pointerData[pointer.id].timeOut = this.game.time.now;
+ if(this.useHandCursor && this._pointerData[pointer.id].isDragged == false) {
+ this.game.stage.canvas.style.cursor = "default";
+ }
+ this._parent.events.onInputOut.dispatch(this._parent, pointer);
+ };
+ InputHandler.prototype._touchedHandler = function (pointer) {
+ if(this._pointerData[pointer.id].isDown == false && this._pointerData[pointer.id].isOver == true) {
+ this._pointerData[pointer.id].isDown = true;
+ this._pointerData[pointer.id].isUp = false;
+ this._pointerData[pointer.id].timeDown = this.game.time.now;
+ this._parent.events.onInputDown.dispatch(this._parent, pointer);
+ if(this.draggable && this.isDragged == false) {
+ this.startDrag(pointer);
+ }
+ if(this.bringToTop) {
+ this._parent.bringToTop();
+ }
+ }
+ return this.consumePointerEvent;
+ };
+ InputHandler.prototype._releasedHandler = function (pointer) {
+ if(this._pointerData[pointer.id].isDown && pointer.isUp) {
+ this._pointerData[pointer.id].isDown = false;
+ this._pointerData[pointer.id].isUp = true;
+ this._pointerData[pointer.id].timeUp = this.game.time.now;
+ this._pointerData[pointer.id].downDuration = this._pointerData[pointer.id].timeUp - this._pointerData[pointer.id].timeDown;
+ if(Phaser.SpriteUtils.overlapsPointer(this._parent, pointer)) {
+ this._parent.events.onInputUp.dispatch(this._parent, pointer);
+ } else {
+ if(this.useHandCursor) {
+ this.game.stage.canvas.style.cursor = "default";
+ }
+ }
+ if(this.draggable && this.isDragged && this._draggedPointerID == pointer.id) {
+ this.stopDrag(pointer);
+ }
+ }
+ };
+ InputHandler.prototype.updateDrag = function (pointer) {
+ if(pointer.isUp) {
+ this.stopDrag(pointer);
+ return false;
+ }
+ if(this.allowHorizontalDrag) {
+ this._parent.x = pointer.x + this._dragPoint.x + this.dragOffset.x;
+ }
+ if(this.allowVerticalDrag) {
+ this._parent.y = pointer.y + this._dragPoint.y + this.dragOffset.y;
+ }
+ if(this.boundsRect) {
+ this.checkBoundsRect();
+ }
+ if(this.boundsSprite) {
+ this.checkBoundsSprite();
+ }
+ if(this.snapOnDrag) {
+ this._parent.x = Math.floor(this._parent.x / this.snapX) * this.snapX;
+ this._parent.y = Math.floor(this._parent.y / this.snapY) * this.snapY;
+ }
+ return true;
+ };
+ InputHandler.prototype.justOver = function (pointer, delay) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ if (typeof delay === "undefined") { delay = 500; }
+ return (this._pointerData[pointer].isOver && this.overDuration(pointer) < delay);
+ };
+ InputHandler.prototype.justOut = function (pointer, delay) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ if (typeof delay === "undefined") { delay = 500; }
+ return (this._pointerData[pointer].isOut && (this.game.time.now - this._pointerData[pointer].timeOut < delay));
+ };
+ InputHandler.prototype.justPressed = function (pointer, delay) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ if (typeof delay === "undefined") { delay = 500; }
+ return (this._pointerData[pointer].isDown && this.downDuration(pointer) < delay);
+ };
+ InputHandler.prototype.justReleased = function (pointer, delay) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ if (typeof delay === "undefined") { delay = 500; }
+ return (this._pointerData[pointer].isUp && (this.game.time.now - this._pointerData[pointer].timeUp < delay));
+ };
+ InputHandler.prototype.overDuration = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ if(this._pointerData[pointer].isOver) {
+ return this.game.time.now - this._pointerData[pointer].timeOver;
+ }
+ return -1;
+ };
+ InputHandler.prototype.downDuration = function (pointer) {
+ if (typeof pointer === "undefined") { pointer = 0; }
+ if(this._pointerData[pointer].isDown) {
+ return this.game.time.now - this._pointerData[pointer].timeDown;
+ }
+ return -1;
+ };
+ InputHandler.prototype.enableDrag = function (lockCenter, bringToTop, pixelPerfect, alphaThreshold, boundsRect, boundsSprite) {
+ if (typeof lockCenter === "undefined") { lockCenter = false; }
+ if (typeof bringToTop === "undefined") { bringToTop = false; }
+ if (typeof pixelPerfect === "undefined") { pixelPerfect = false; }
+ if (typeof alphaThreshold === "undefined") { alphaThreshold = 255; }
+ if (typeof boundsRect === "undefined") { boundsRect = null; }
+ if (typeof boundsSprite === "undefined") { boundsSprite = null; }
+ this._dragPoint = new Phaser.Point();
+ this.draggable = true;
+ this.bringToTop = bringToTop;
+ this.dragOffset = new Phaser.Point();
+ this.dragFromCenter = lockCenter;
+ this.dragPixelPerfect = pixelPerfect;
+ this.dragPixelPerfectAlpha = alphaThreshold;
+ if(boundsRect) {
+ this.boundsRect = boundsRect;
+ }
+ if(boundsSprite) {
+ this.boundsSprite = boundsSprite;
+ }
+ };
+ InputHandler.prototype.disableDrag = function () {
+ if(this._pointerData) {
+ for(var i = 0; i < 10; i++) {
+ this._pointerData[i].isDragged = false;
+ }
+ }
+ this.draggable = false;
+ this.isDragged = false;
+ this._draggedPointerID = -1;
+ };
+ InputHandler.prototype.startDrag = function (pointer) {
+ this.isDragged = true;
+ this._draggedPointerID = pointer.id;
+ this._pointerData[pointer.id].isDragged = true;
+ if(this.dragFromCenter) {
+ this._parent.transform.centerOn(pointer.worldX, pointer.worldY);
+ this._dragPoint.setTo(this._parent.x - pointer.x, this._parent.y - pointer.y);
+ } else {
+ this._dragPoint.setTo(this._parent.x - pointer.x, this._parent.y - pointer.y);
+ }
+ this.updateDrag(pointer);
+ if(this.bringToTop) {
+ this._parent.bringToTop();
+ }
+ this._parent.events.onDragStart.dispatch(this._parent, pointer);
+ };
+ InputHandler.prototype.stopDrag = function (pointer) {
+ this.isDragged = false;
+ this._draggedPointerID = -1;
+ this._pointerData[pointer.id].isDragged = false;
+ if(this.snapOnRelease) {
+ this._parent.x = Math.floor(this._parent.x / this.snapX) * this.snapX;
+ this._parent.y = Math.floor(this._parent.y / this.snapY) * this.snapY;
+ }
+ this._parent.events.onDragStop.dispatch(this._parent, pointer);
+ this._parent.events.onInputUp.dispatch(this._parent, pointer);
+ };
+ InputHandler.prototype.setDragLock = function (allowHorizontal, allowVertical) {
+ if (typeof allowHorizontal === "undefined") { allowHorizontal = true; }
+ if (typeof allowVertical === "undefined") { allowVertical = true; }
+ this.allowHorizontalDrag = allowHorizontal;
+ this.allowVerticalDrag = allowVertical;
+ };
+ InputHandler.prototype.enableSnap = function (snapX, snapY, onDrag, onRelease) {
+ if (typeof onDrag === "undefined") { onDrag = true; }
+ if (typeof onRelease === "undefined") { onRelease = false; }
+ this.snapOnDrag = onDrag;
+ this.snapOnRelease = onRelease;
+ this.snapX = snapX;
+ this.snapY = snapY;
+ };
+ InputHandler.prototype.disableSnap = function () {
+ this.snapOnDrag = false;
+ this.snapOnRelease = false;
+ };
+ InputHandler.prototype.checkBoundsRect = function () {
+ if(this._parent.x < this.boundsRect.left) {
+ this._parent.x = this.boundsRect.x;
+ } else if((this._parent.x + this._parent.width) > this.boundsRect.right) {
+ this._parent.x = this.boundsRect.right - this._parent.width;
+ }
+ if(this._parent.y < this.boundsRect.top) {
+ this._parent.y = this.boundsRect.top;
+ } else if((this._parent.y + this._parent.height) > this.boundsRect.bottom) {
+ this._parent.y = this.boundsRect.bottom - this._parent.height;
+ }
+ };
+ InputHandler.prototype.checkBoundsSprite = function () {
+ if(this._parent.x < this.boundsSprite.x) {
+ this._parent.x = this.boundsSprite.x;
+ } else if((this._parent.x + this._parent.width) > (this.boundsSprite.x + this.boundsSprite.width)) {
+ this._parent.x = (this.boundsSprite.x + this.boundsSprite.width) - this._parent.width;
+ }
+ if(this._parent.y < this.boundsSprite.y) {
+ this._parent.y = this.boundsSprite.y;
+ } else if((this._parent.y + this._parent.height) > (this.boundsSprite.y + this.boundsSprite.height)) {
+ this._parent.y = (this.boundsSprite.y + this.boundsSprite.height) - this._parent.height;
+ }
+ };
+ return InputHandler;
+ })();
+ Components.InputHandler = InputHandler;
+ })(Phaser.Components || (Phaser.Components = {}));
+ var Components = Phaser.Components;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var InputManager = (function () {
+ function InputManager(game) {
+ this.pollRate = 0;
+ this._pollCounter = 0;
+ this._oldPosition = null;
+ this._x = 0;
+ this._y = 0;
+ this.disabled = false;
+ this.multiInputOverride = InputManager.MOUSE_TOUCH_COMBINE;
+ this.position = null;
+ this.speed = null;
+ this.circle = null;
+ this.scale = null;
+ this.maxPointers = 10;
+ this.currentPointers = 0;
+ this.tapRate = 200;
+ this.doubleTapRate = 300;
+ this.holdRate = 2000;
+ this.justPressedRate = 200;
+ this.justReleasedRate = 200;
+ this.recordPointerHistory = false;
+ this.recordRate = 100;
+ this.recordLimit = 100;
+ this.pointer3 = null;
+ this.pointer4 = null;
+ this.pointer5 = null;
+ this.pointer6 = null;
+ this.pointer7 = null;
+ this.pointer8 = null;
+ this.pointer9 = null;
+ this.pointer10 = null;
+ this.activePointer = null;
+ this.inputObjects = [];
+ this.totalTrackedObjects = 0;
+ this.game = game;
+ this.mousePointer = new Phaser.Pointer(this.game, 0);
+ this.pointer1 = new Phaser.Pointer(this.game, 1);
+ this.pointer2 = new Phaser.Pointer(this.game, 2);
+ this.mouse = new Phaser.Mouse(this.game);
+ this.keyboard = new Phaser.Keyboard(this.game);
+ this.touch = new Phaser.Touch(this.game);
+ this.mspointer = new Phaser.MSPointer(this.game);
+ this.onDown = new Phaser.Signal();
+ this.onUp = new Phaser.Signal();
+ this.onTap = new Phaser.Signal();
+ this.onHold = new Phaser.Signal();
+ this.scale = new Phaser.Vec2(1, 1);
+ this.speed = new Phaser.Vec2();
+ this.position = new Phaser.Vec2();
+ this._oldPosition = new Phaser.Vec2();
+ this.circle = new Phaser.Circle(0, 0, 44);
+ this.activePointer = this.mousePointer;
+ this.currentPointers = 0;
+ this.hitCanvas = document.createElement('canvas');
+ this.hitCanvas.width = 1;
+ this.hitCanvas.height = 1;
+ this.hitContext = this.hitCanvas.getContext('2d');
+ }
+ InputManager.MOUSE_OVERRIDES_TOUCH = 0;
+ InputManager.TOUCH_OVERRIDES_MOUSE = 1;
+ InputManager.MOUSE_TOUCH_COMBINE = 2;
+ Object.defineProperty(InputManager.prototype, "camera", {
+ get: function () {
+ return this.activePointer.camera;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(InputManager.prototype, "x", {
+ get: function () {
+ return this._x;
+ },
+ set: function (value) {
+ this._x = Math.floor(value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(InputManager.prototype, "y", {
+ get: function () {
+ return this._y;
+ },
+ set: function (value) {
+ this._y = Math.floor(value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ InputManager.prototype.addPointer = function () {
+ var next = 0;
+ for(var i = 10; i > 0; i--) {
+ if(this['pointer' + i] === null) {
+ next = i;
+ }
+ }
+ if(next == 0) {
+ throw new Error("You can only have 10 Pointer objects");
+ return null;
+ } else {
+ this['pointer' + next] = new Phaser.Pointer(this.game, next);
+ return this['pointer' + next];
+ }
+ };
+ InputManager.prototype.boot = function () {
+ this.mouse.start();
+ this.keyboard.start();
+ this.touch.start();
+ this.mspointer.start();
+ this.mousePointer.active = true;
+ };
+ InputManager.prototype.addGameObject = function (object) {
+ for(var i = 0; i < this.inputObjects.length; i++) {
+ if(this.inputObjects[i] == null) {
+ this.inputObjects[i] = object;
+ object.input.indexID = i;
+ this.totalTrackedObjects++;
+ return;
+ }
+ }
+ object.input.indexID = this.inputObjects.length;
+ this.inputObjects.push(object);
+ this.totalTrackedObjects++;
+ };
+ InputManager.prototype.removeGameObject = function (index) {
+ if(this.inputObjects[index]) {
+ this.inputObjects[index] = null;
+ }
+ };
+ Object.defineProperty(InputManager.prototype, "pollLocked", {
+ get: function () {
+ return (this.pollRate > 0 && this._pollCounter < this.pollRate);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ InputManager.prototype.update = function () {
+ if(this.pollRate > 0 && this._pollCounter < this.pollRate) {
+ this._pollCounter++;
+ return;
+ }
+ this.speed.x = this.position.x - this._oldPosition.x;
+ this.speed.y = this.position.y - this._oldPosition.y;
+ this._oldPosition.copyFrom(this.position);
+ this.mousePointer.update();
+ this.pointer1.update();
+ this.pointer2.update();
+ if(this.pointer3) {
+ this.pointer3.update();
+ }
+ if(this.pointer4) {
+ this.pointer4.update();
+ }
+ if(this.pointer5) {
+ this.pointer5.update();
+ }
+ if(this.pointer6) {
+ this.pointer6.update();
+ }
+ if(this.pointer7) {
+ this.pointer7.update();
+ }
+ if(this.pointer8) {
+ this.pointer8.update();
+ }
+ if(this.pointer9) {
+ this.pointer9.update();
+ }
+ if(this.pointer10) {
+ this.pointer10.update();
+ }
+ this._pollCounter = 0;
+ };
+ InputManager.prototype.reset = function (hard) {
+ if (typeof hard === "undefined") { hard = false; }
+ this.keyboard.reset();
+ this.mousePointer.reset();
+ for(var i = 1; i <= 10; i++) {
+ if(this['pointer' + i]) {
+ this['pointer' + i].reset();
+ }
+ }
+ this.currentPointers = 0;
+ this.game.stage.canvas.style.cursor = "default";
+ if(hard == true) {
+ this.onDown.dispose();
+ this.onUp.dispose();
+ this.onTap.dispose();
+ this.onHold.dispose();
+ this.onDown = new Phaser.Signal();
+ this.onUp = new Phaser.Signal();
+ this.onTap = new Phaser.Signal();
+ this.onHold = new Phaser.Signal();
+ for(var i = 0; i < this.totalTrackedObjects; i++) {
+ if(this.inputObjects[i] && this.inputObjects[i].input) {
+ this.inputObjects[i].input.reset();
+ }
+ }
+ this.inputObjects.length = 0;
+ this.totalTrackedObjects = 0;
+ }
+ this._pollCounter = 0;
+ };
+ InputManager.prototype.resetSpeed = function (x, y) {
+ this._oldPosition.setTo(x, y);
+ this.speed.setTo(0, 0);
+ };
+ Object.defineProperty(InputManager.prototype, "totalInactivePointers", {
+ get: function () {
+ return 10 - this.currentPointers;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(InputManager.prototype, "totalActivePointers", {
+ get: function () {
+ this.currentPointers = 0;
+ for(var i = 1; i <= 10; i++) {
+ if(this['pointer' + i] && this['pointer' + i].active) {
+ this.currentPointers++;
+ }
+ }
+ return this.currentPointers;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ InputManager.prototype.startPointer = function (event) {
+ if(this.maxPointers < 10 && this.totalActivePointers == this.maxPointers) {
+ return null;
+ }
+ if(this.pointer1.active == false) {
+ return this.pointer1.start(event);
+ } else if(this.pointer2.active == false) {
+ return this.pointer2.start(event);
+ } else {
+ for(var i = 3; i <= 10; i++) {
+ if(this['pointer' + i] && this['pointer' + i].active == false) {
+ return this['pointer' + i].start(event);
+ }
+ }
+ }
+ return null;
+ };
+ InputManager.prototype.updatePointer = function (event) {
+ if(this.pointer1.active && this.pointer1.identifier == event.identifier) {
+ return this.pointer1.move(event);
+ } else if(this.pointer2.active && this.pointer2.identifier == event.identifier) {
+ return this.pointer2.move(event);
+ } else {
+ for(var i = 3; i <= 10; i++) {
+ if(this['pointer' + i] && this['pointer' + i].active && this['pointer' + i].identifier == event.identifier) {
+ return this['pointer' + i].move(event);
+ }
+ }
+ }
+ return null;
+ };
+ InputManager.prototype.stopPointer = function (event) {
+ if(this.pointer1.active && this.pointer1.identifier == event.identifier) {
+ return this.pointer1.stop(event);
+ } else if(this.pointer2.active && this.pointer2.identifier == event.identifier) {
+ return this.pointer2.stop(event);
+ } else {
+ for(var i = 3; i <= 10; i++) {
+ if(this['pointer' + i] && this['pointer' + i].active && this['pointer' + i].identifier == event.identifier) {
+ return this['pointer' + i].stop(event);
+ }
+ }
+ }
+ return null;
+ };
+ InputManager.prototype.getPointer = function (state) {
+ if (typeof state === "undefined") { state = false; }
+ if(this.pointer1.active == state) {
+ return this.pointer1;
+ } else if(this.pointer2.active == state) {
+ return this.pointer2;
+ } else {
+ for(var i = 3; i <= 10; i++) {
+ if(this['pointer' + i] && this['pointer' + i].active == state) {
+ return this['pointer' + i];
+ }
+ }
+ }
+ return null;
+ };
+ InputManager.prototype.getPointerFromIdentifier = function (identifier) {
+ if(this.pointer1.identifier == identifier) {
+ return this.pointer1;
+ } else if(this.pointer2.identifier == identifier) {
+ return this.pointer2;
+ } else {
+ for(var i = 3; i <= 10; i++) {
+ if(this['pointer' + i] && this['pointer' + i].identifier == identifier) {
+ return this['pointer' + i];
+ }
+ }
+ }
+ return null;
+ };
+ Object.defineProperty(InputManager.prototype, "worldX", {
+ get: function () {
+ if(this.camera) {
+ return (this.camera.worldView.x - this.camera.screenView.x) + this.x;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(InputManager.prototype, "worldY", {
+ get: function () {
+ if(this.camera) {
+ return (this.camera.worldView.y - this.camera.screenView.y) + this.y;
+ }
+ return null;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ InputManager.prototype.getDistance = function (pointer1, pointer2) {
+ return Phaser.Vec2Utils.distance(pointer1.position, pointer2.position);
+ };
+ InputManager.prototype.getAngle = function (pointer1, pointer2) {
+ return Phaser.Vec2Utils.angle(pointer1.position, pointer2.position);
+ };
+ InputManager.prototype.pixelPerfectCheck = function (sprite, pointer, alpha) {
+ if (typeof alpha === "undefined") { alpha = 255; }
+ this.hitContext.clearRect(0, 0, 1, 1);
+ return true;
+ };
+ return InputManager;
+ })();
+ Phaser.InputManager = InputManager;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Device = (function () {
+ function Device() {
+ this.patchAndroidClearRectBug = false;
+ this.desktop = false;
+ this.iOS = false;
+ this.android = false;
+ this.chromeOS = false;
+ this.linux = false;
+ this.macOS = false;
+ this.windows = false;
+ this.canvas = false;
+ this.file = false;
+ this.fileSystem = false;
+ this.localStorage = false;
+ this.webGL = false;
+ this.worker = false;
+ this.touch = false;
+ this.mspointer = false;
+ this.css3D = false;
+ this.arora = false;
+ this.chrome = false;
+ this.epiphany = false;
+ this.firefox = false;
+ this.ie = false;
+ this.ieVersion = 0;
+ this.mobileSafari = false;
+ this.midori = false;
+ this.opera = false;
+ this.safari = false;
+ this.webApp = false;
+ this.audioData = false;
+ this.webAudio = false;
+ this.ogg = false;
+ this.opus = false;
+ this.mp3 = false;
+ this.wav = false;
+ this.m4a = false;
+ this.webm = false;
+ this.iPhone = false;
+ this.iPhone4 = false;
+ this.iPad = false;
+ this.pixelRatio = 0;
+ this._checkAudio();
+ this._checkBrowser();
+ this._checkCSS3D();
+ this._checkDevice();
+ this._checkFeatures();
+ this._checkOS();
+ }
+ Device.prototype._checkOS = function () {
+ var ua = navigator.userAgent;
+ if(/Android/.test(ua)) {
+ this.android = true;
+ } else if(/CrOS/.test(ua)) {
+ this.chromeOS = true;
+ } else if(/iP[ao]d|iPhone/i.test(ua)) {
+ this.iOS = true;
+ } else if(/Linux/.test(ua)) {
+ this.linux = true;
+ } else if(/Mac OS/.test(ua)) {
+ this.macOS = true;
+ } else if(/Windows/.test(ua)) {
+ this.windows = true;
+ }
+ if(this.windows || this.macOS || this.linux) {
+ this.desktop = true;
+ }
+ };
+ Device.prototype._checkFeatures = function () {
+ this.canvas = !!window['CanvasRenderingContext2D'];
+ try {
+ this.localStorage = !!localStorage.getItem;
+ } catch (error) {
+ this.localStorage = false;
+ }
+ this.file = !!window['File'] && !!window['FileReader'] && !!window['FileList'] && !!window['Blob'];
+ this.fileSystem = !!window['requestFileSystem'];
+ this.webGL = !!window['WebGLRenderingContext'];
+ this.worker = !!window['Worker'];
+ if('ontouchstart' in document.documentElement || window.navigator.msPointerEnabled) {
+ this.touch = true;
+ }
+ if(window.navigator.msPointerEnabled) {
+ this.mspointer = true;
+ }
+ };
+ Device.prototype._checkBrowser = function () {
+ var ua = navigator.userAgent;
+ if(/Arora/.test(ua)) {
+ this.arora = true;
+ } else if(/Chrome/.test(ua)) {
+ this.chrome = true;
+ } else if(/Epiphany/.test(ua)) {
+ this.epiphany = true;
+ } else if(/Firefox/.test(ua)) {
+ this.firefox = true;
+ } else if(/Mobile Safari/.test(ua)) {
+ this.mobileSafari = true;
+ } else if(/MSIE (\d+\.\d+);/.test(ua)) {
+ this.ie = true;
+ this.ieVersion = parseInt(RegExp.$1);
+ } else if(/Midori/.test(ua)) {
+ this.midori = true;
+ } else if(/Opera/.test(ua)) {
+ this.opera = true;
+ } else if(/Safari/.test(ua)) {
+ this.safari = true;
+ }
+ if(navigator['standalone']) {
+ this.webApp = true;
+ }
+ };
+ Device.prototype.canPlayAudio = function (type) {
+ if(type == 'mp3' && this.mp3) {
+ return true;
+ } else if(type == 'ogg' && (this.ogg || this.opus)) {
+ return true;
+ } else if(type == 'm4a' && this.m4a) {
+ return true;
+ } else if(type == 'wav' && this.wav) {
+ return true;
+ } else if(type == 'webm' && this.webm) {
+ return true;
+ }
+ return false;
+ };
+ Device.prototype._checkAudio = function () {
+ this.audioData = !!(window['Audio']);
+ this.webAudio = !!(window['webkitAudioContext'] || window['AudioContext']);
+ var audioElement = document.createElement('audio');
+ var result = false;
+ try {
+ if(result = !!audioElement.canPlayType) {
+ if(audioElement.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, '')) {
+ this.ogg = true;
+ }
+ if(audioElement.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, '')) {
+ this.opus = true;
+ }
+ if(audioElement.canPlayType('audio/mpeg;').replace(/^no$/, '')) {
+ this.mp3 = true;
+ }
+ if(audioElement.canPlayType('audio/wav; codecs="1"').replace(/^no$/, '')) {
+ this.wav = true;
+ }
+ if(audioElement.canPlayType('audio/x-m4a;') || audioElement.canPlayType('audio/aac;').replace(/^no$/, '')) {
+ this.m4a = true;
+ }
+ if(audioElement.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, '')) {
+ this.webm = true;
+ }
+ }
+ } catch (e) {
+ }
+ };
+ Device.prototype._checkDevice = function () {
+ this.pixelRatio = window['devicePixelRatio'] || 1;
+ this.iPhone = navigator.userAgent.toLowerCase().indexOf('iphone') != -1;
+ this.iPhone4 = (this.pixelRatio == 2 && this.iPhone);
+ this.iPad = navigator.userAgent.toLowerCase().indexOf('ipad') != -1;
+ };
+ Device.prototype._checkCSS3D = function () {
+ var el = document.createElement('p');
+ var has3d;
+ var transforms = {
+ 'webkitTransform': '-webkit-transform',
+ 'OTransform': '-o-transform',
+ 'msTransform': '-ms-transform',
+ 'MozTransform': '-moz-transform',
+ 'transform': 'transform'
+ };
+ document.body.insertBefore(el, null);
+ for(var t in transforms) {
+ if(el.style[t] !== undefined) {
+ el.style[t] = "translate3d(1px,1px,1px)";
+ has3d = window.getComputedStyle(el).getPropertyValue(transforms[t]);
+ }
+ }
+ document.body.removeChild(el);
+ this.css3D = (has3d !== undefined && has3d.length > 0 && has3d !== "none");
+ };
+ Device.prototype.isConsoleOpen = function () {
+ if(window.console && window.console['firebug']) {
+ return true;
+ }
+ if(window.console) {
+ console.profile();
+ console.profileEnd();
+ if(console.clear) {
+ console.clear();
+ }
+ return console['profiles'].length > 0;
+ }
+ return false;
+ };
+ return Device;
+ })();
+ Phaser.Device = Device;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var RequestAnimationFrame = (function () {
+ function RequestAnimationFrame(game, callback) {
+ this._isSetTimeOut = false;
+ this.isRunning = false;
+ this.game = game;
+ this.callback = callback;
+ var vendors = [
+ 'ms',
+ 'moz',
+ 'webkit',
+ 'o'
+ ];
+ for(var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
+ window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'];
+ }
+ this.start();
+ }
+ RequestAnimationFrame.prototype.isUsingSetTimeOut = function () {
+ return this._isSetTimeOut;
+ };
+ RequestAnimationFrame.prototype.isUsingRAF = function () {
+ return this._isSetTimeOut === true;
+ };
+ RequestAnimationFrame.prototype.start = function (callback) {
+ if (typeof callback === "undefined") { callback = null; }
+ var _this = this;
+ if(callback) {
+ this.callback = callback;
+ }
+ if(!window.requestAnimationFrame) {
+ this._isSetTimeOut = true;
+ this._onLoop = function () {
+ return _this.SetTimeoutUpdate();
+ };
+ this._timeOutID = window.setTimeout(this._onLoop, 0);
+ } else {
+ this._isSetTimeOut = false;
+ this._onLoop = function () {
+ return _this.RAFUpdate(0);
+ };
+ window.requestAnimationFrame(this._onLoop);
+ }
+ this.isRunning = true;
+ };
+ RequestAnimationFrame.prototype.stop = function () {
+ if(this._isSetTimeOut) {
+ clearTimeout(this._timeOutID);
+ } else {
+ window.cancelAnimationFrame;
+ }
+ this.isRunning = false;
+ };
+ RequestAnimationFrame.prototype.RAFUpdate = function (time) {
+ var _this = this;
+ this.game.time.update(time);
+ if(this.callback) {
+ this.callback.call(this.game);
+ }
+ this._onLoop = function (time) {
+ return _this.RAFUpdate(time);
+ };
+ window.requestAnimationFrame(this._onLoop);
+ };
+ RequestAnimationFrame.prototype.SetTimeoutUpdate = function () {
+ var _this = this;
+ this.game.time.update(Date.now());
+ this._onLoop = function () {
+ return _this.SetTimeoutUpdate();
+ };
+ this._timeOutID = window.setTimeout(this._onLoop, 16);
+ if(this.callback) {
+ this.callback.call(this.game);
+ }
+ };
+ return RequestAnimationFrame;
+ })();
+ Phaser.RequestAnimationFrame = RequestAnimationFrame;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var StageScaleMode = (function () {
+ function StageScaleMode(game, width, height) {
+ var _this = this;
+ this._startHeight = 0;
+ this.forceLandscape = false;
+ this.forcePortrait = false;
+ this.incorrectOrientation = false;
+ this.pageAlignHorizontally = false;
+ this.pageAlignVeritcally = false;
+ this.minWidth = null;
+ this.maxWidth = null;
+ this.minHeight = null;
+ this.maxHeight = null;
+ this.width = 0;
+ this.height = 0;
+ this.maxIterations = 5;
+ this.game = game;
+ this.enterLandscape = new Phaser.Signal();
+ this.enterPortrait = new Phaser.Signal();
+ if(window['orientation']) {
+ this.orientation = window['orientation'];
+ } else {
+ if(window.outerWidth > window.outerHeight) {
+ this.orientation = 90;
+ } else {
+ this.orientation = 0;
+ }
+ }
+ this.scaleFactor = new Phaser.Vec2(1, 1);
+ this.aspectRatio = 0;
+ this.minWidth = width;
+ this.minHeight = height;
+ this.maxWidth = width;
+ this.maxHeight = height;
+ window.addEventListener('orientationchange', function (event) {
+ return _this.checkOrientation(event);
+ }, false);
+ window.addEventListener('resize', function (event) {
+ return _this.checkResize(event);
+ }, false);
+ }
+ StageScaleMode.EXACT_FIT = 0;
+ StageScaleMode.NO_SCALE = 1;
+ StageScaleMode.SHOW_ALL = 2;
+ Object.defineProperty(StageScaleMode.prototype, "isFullScreen", {
+ get: function () {
+ if(document['fullscreenElement'] === null || document['mozFullScreenElement'] === null || document['webkitFullscreenElement'] === null) {
+ return false;
+ }
+ return true;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ StageScaleMode.prototype.startFullScreen = function () {
+ if(this.isFullScreen) {
+ return;
+ }
+ var element = this.game.stage.canvas;
+ if(element['requestFullScreen']) {
+ element['requestFullScreen']();
+ } else if(element['mozRequestFullScreen']) {
+ element['mozRequestFullScreen']();
+ } else if(element['webkitRequestFullScreen']) {
+ element['webkitRequestFullScreen']();
+ }
+ };
+ StageScaleMode.prototype.stopFullScreen = function () {
+ if(document['cancelFullScreen']) {
+ document['cancelFullScreen']();
+ } else if(document['mozCancelFullScreen']) {
+ document['mozCancelFullScreen']();
+ } else if(document['webkitCancelFullScreen']) {
+ document['webkitCancelFullScreen']();
+ }
+ };
+ StageScaleMode.prototype.update = function () {
+ if(this.forceLandscape || this.forcePortrait) {
+ this.checkOrientationState();
+ }
+ };
+ StageScaleMode.prototype.checkOrientationState = function () {
+ if(this.incorrectOrientation) {
+ if((this.forceLandscape && window.innerWidth > window.innerHeight) || (this.forcePortrait && window.innerHeight > window.innerWidth)) {
+ this.game.paused = false;
+ this.incorrectOrientation = false;
+ this.refresh();
+ }
+ } else {
+ if((this.forceLandscape && window.innerWidth < window.innerHeight) || (this.forcePortrait && window.innerHeight < window.innerWidth)) {
+ this.game.paused = true;
+ this.incorrectOrientation = true;
+ this.refresh();
+ }
+ }
+ };
+ Object.defineProperty(StageScaleMode.prototype, "isPortrait", {
+ get: function () {
+ return this.orientation == 0 || this.orientation == 180;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(StageScaleMode.prototype, "isLandscape", {
+ get: function () {
+ return this.orientation === 90 || this.orientation === -90;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ StageScaleMode.prototype.checkOrientation = function (event) {
+ this.orientation = window['orientation'];
+ if(this.isLandscape) {
+ this.enterLandscape.dispatch(this.orientation, true, false);
+ } else {
+ this.enterPortrait.dispatch(this.orientation, false, true);
+ }
+ if(this.game.stage.scaleMode !== StageScaleMode.NO_SCALE) {
+ this.refresh();
+ }
+ };
+ StageScaleMode.prototype.checkResize = function (event) {
+ if(window.outerWidth > window.outerHeight) {
+ this.orientation = 90;
+ } else {
+ this.orientation = 0;
+ }
+ if(this.isLandscape) {
+ this.enterLandscape.dispatch(this.orientation, true, false);
+ } else {
+ this.enterPortrait.dispatch(this.orientation, false, true);
+ }
+ if(this.game.stage.scaleMode !== StageScaleMode.NO_SCALE) {
+ this.refresh();
+ }
+ };
+ StageScaleMode.prototype.refresh = function () {
+ var _this = this;
+ if(this.game.device.iPad == false && this.game.device.webApp == false && this.game.device.desktop == false) {
+ document.documentElement['style'].minHeight = '2000px';
+ this._startHeight = window.innerHeight;
+ if(this.game.device.android && this.game.device.chrome == false) {
+ window.scrollTo(0, 1);
+ } else {
+ window.scrollTo(0, 0);
+ }
+ }
+ if(this._check == null && this.maxIterations > 0) {
+ this._iterations = this.maxIterations;
+ this._check = window.setInterval(function () {
+ return _this.setScreenSize();
+ }, 10);
+ this.setScreenSize();
+ }
+ };
+ StageScaleMode.prototype.setScreenSize = function (force) {
+ if (typeof force === "undefined") { force = false; }
+ if(this.game.device.iPad == false && this.game.device.webApp == false && this.game.device.desktop == false) {
+ if(this.game.device.android && this.game.device.chrome == false) {
+ window.scrollTo(0, 1);
+ } else {
+ window.scrollTo(0, 0);
+ }
+ }
+ this._iterations--;
+ if(force || window.innerHeight > this._startHeight || this._iterations < 0) {
+ document.documentElement['style'].minHeight = window.innerHeight + 'px';
+ if(this.incorrectOrientation == true) {
+ this.setMaximum();
+ } else if(this.game.stage.scaleMode == StageScaleMode.EXACT_FIT) {
+ this.setExactFit();
+ } else if(this.game.stage.scaleMode == StageScaleMode.SHOW_ALL) {
+ this.setShowAll();
+ }
+ this.setSize();
+ clearInterval(this._check);
+ this._check = null;
+ }
+ };
+ StageScaleMode.prototype.setSize = function () {
+ if(this.incorrectOrientation == false) {
+ if(this.maxWidth && this.width > this.maxWidth) {
+ this.width = this.maxWidth;
+ }
+ if(this.maxHeight && this.height > this.maxHeight) {
+ this.height = this.maxHeight;
+ }
+ if(this.minWidth && this.width < this.minWidth) {
+ this.width = this.minWidth;
+ }
+ if(this.minHeight && this.height < this.minHeight) {
+ this.height = this.minHeight;
+ }
+ }
+ this.game.stage.canvas.style.width = this.width + 'px';
+ this.game.stage.canvas.style.height = this.height + 'px';
+ this.game.input.scale.setTo(this.game.stage.width / this.width, this.game.stage.height / this.height);
+ if(this.pageAlignHorizontally) {
+ if(this.width < window.innerWidth && this.incorrectOrientation == false) {
+ this.game.stage.canvas.style.marginLeft = Math.round((window.innerWidth - this.width) / 2) + 'px';
+ } else {
+ this.game.stage.canvas.style.marginLeft = '0px';
+ }
+ }
+ if(this.pageAlignVeritcally) {
+ if(this.height < window.innerHeight && this.incorrectOrientation == false) {
+ this.game.stage.canvas.style.marginTop = Math.round((window.innerHeight - this.height) / 2) + 'px';
+ } else {
+ this.game.stage.canvas.style.marginTop = '0px';
+ }
+ }
+ this.game.stage.getOffset(this.game.stage.canvas);
+ this.aspectRatio = this.width / this.height;
+ this.scaleFactor.x = this.game.stage.width / this.width;
+ this.scaleFactor.y = this.game.stage.height / this.height;
+ };
+ StageScaleMode.prototype.setMaximum = function () {
+ this.width = window.innerWidth;
+ this.height = window.innerHeight;
+ };
+ StageScaleMode.prototype.setShowAll = function () {
+ var multiplier = Math.min((window.innerHeight / this.game.stage.height), (window.innerWidth / this.game.stage.width));
+ this.width = Math.round(this.game.stage.width * multiplier);
+ this.height = Math.round(this.game.stage.height * multiplier);
+ };
+ StageScaleMode.prototype.setExactFit = function () {
+ if(this.maxWidth && window.innerWidth > this.maxWidth) {
+ this.width = this.maxWidth;
+ } else {
+ this.width = window.innerWidth;
+ }
+ if(this.maxHeight && window.innerHeight > this.maxHeight) {
+ this.height = this.maxHeight;
+ } else {
+ this.height = window.innerHeight;
+ }
+ };
+ return StageScaleMode;
+ })();
+ Phaser.StageScaleMode = StageScaleMode;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var BootScreen = (function () {
+ function BootScreen(game) {
+ this._logoData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAAZCAYAAADdYmvFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAstJREFUeNrsWlFuwjAMbavdZGcAcRm4AXzvCPuGG8BlEJxhZ+l4TJ48z3actGGthqUI1MaO/V6cmIT2/fW10eTt46NvKshtvDZlG31yfOL9a/ldU6x4IZ0GQs0gS217enMkJYr5ixXkYrFoVqtV1kDn8/n+KfXw/Hq9Nin7h8MhScB2u3Xtav2ivsNWrh7XLcWMYqA4eUZ1kj0MAifHJEeKFojWzyIH+rL/0Cwif2AX9nN1oQOgrTg8XcTFx+ScdEOJ4WBxXQ1EjRyrn0cOzzQLzFyQSQcgw/5Qkkr0JVEQpNIdhL4vm4DL5fLulNTHcy6Uxl4/6iMLiePx2KzX6/v30+n0aynUlrnSeNq2/VN9bgM4dFPdNPmsJnIg/PuQbJmLdFN3UNu0SzbyJ0GOWJVWZE/QMkY+owrqXxGEdZA37BVyX6lJTipT6J1lf7fbqc+xh8nYeIvikatP+PGW0nEJ4jOydHYOIcfKnmgWoZDQSIIeio4Sf1IthYWskCO4vqQ6lFYjl8tl9L1H67PZbMz3VO3t93uVXHofmUjReLyMwHi5eCb3ICwJj5ZU9nCg+SzUgPYyif+2epTk4pkkyDp+eXTlZu2BkUybEkklePZfK9lPuTnc07vbmt1bYulHBeNQgx18SsH4ni/cV2rSLtqNDNUH2JQ2SsXS57Y9PHlfumkwCdICt5rnkNdPjpMiIEWgRlAJSdF4SvCQMWj+VyfI0h8D/EgWSYKiJKXi8VrOhJUxaFiFCOKKUJAtR78k9eX4USLHXqLGXOIiWUT4Vj9JiP4W0io3VDz8AJXblNWQrOimLjIGy/9uLICH6mrVmFbxEFHauzmc0fGJJmPg/v+6D0oB7N2bj0FsNHtSWTQniWTR931QlHXvasDTHXLjqY0/1/8hSDxACD+lAGH8dKQbQk5N3TFtzDmLWutvV0+pL5FVoHvCNG35FGAAayS4KUoKC9QAAAAASUVORK5CYII=";
+ this._color1 = {
+ r: 20,
+ g: 20,
+ b: 20
+ };
+ this._color2 = {
+ r: 200,
+ g: 200,
+ b: 200
+ };
+ this._fade = null;
+ this.game = game;
+ this._logo = new Image();
+ this._logo.src = this._logoData;
+ }
+ BootScreen.prototype.update = function () {
+ if(this._fade == null) {
+ this.colorCycle();
+ }
+ this._color1.r = Math.round(this._color1.r);
+ this._color1.g = Math.round(this._color1.g);
+ this._color1.b = Math.round(this._color1.b);
+ this._color2.r = Math.round(this._color2.r);
+ this._color2.g = Math.round(this._color2.g);
+ this._color2.b = Math.round(this._color2.b);
+ };
+ BootScreen.prototype.render = function () {
+ var grd = this.game.stage.context.createLinearGradient(0, 0, 0, this.game.stage.height);
+ grd.addColorStop(0, 'rgb(' + this._color1.r + ', ' + this._color1.g + ', ' + this._color1.b + ')');
+ grd.addColorStop(0.5, 'rgb(' + this._color2.r + ', ' + this._color2.g + ', ' + this._color2.b + ')');
+ grd.addColorStop(1, 'rgb(' + this._color1.r + ', ' + this._color1.g + ', ' + this._color1.b + ')');
+ this.game.stage.context.fillStyle = grd;
+ this.game.stage.context.fillRect(0, 0, this.game.stage.width, this.game.stage.height);
+ this.game.stage.context.shadowOffsetX = 0;
+ this.game.stage.context.shadowOffsetY = 0;
+ if(this._logo) {
+ this.game.stage.context.drawImage(this._logo, 32, 32);
+ }
+ this.game.stage.context.shadowColor = 'rgb(0,0,0)';
+ this.game.stage.context.shadowOffsetX = 1;
+ this.game.stage.context.shadowOffsetY = 1;
+ this.game.stage.context.shadowBlur = 0;
+ this.game.stage.context.fillStyle = 'rgb(255,255,255)';
+ this.game.stage.context.font = 'bold 18px Arial';
+ this.game.stage.context.textBaseline = 'top';
+ this.game.stage.context.fillText(Phaser.VERSION, 32, 64 + 32);
+ this.game.stage.context.fillText('Game Size: ' + this.game.stage.width + ' x ' + this.game.stage.height, 32, 64 + 64);
+ this.game.stage.context.fillText('www.photonstorm.com', 32, 64 + 96);
+ this.game.stage.context.font = '16px Arial';
+ this.game.stage.context.fillText('You are seeing this screen because you didn\'t specify any default', 32, 64 + 160);
+ this.game.stage.context.fillText('functions in the Game constructor or use Game.switchState()', 32, 64 + 184);
+ };
+ BootScreen.prototype.colorCycle = function () {
+ this._fade = this.game.add.tween(this._color2);
+ this._fade.to({
+ r: Math.random() * 250,
+ g: Math.random() * 250,
+ b: Math.random() * 250
+ }, 3000, Phaser.Easing.Linear.None);
+ this._fade.onComplete.add(this.colorCycle, this);
+ this._fade.start();
+ };
+ return BootScreen;
+ })();
+ Phaser.BootScreen = BootScreen;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var OrientationScreen = (function () {
+ function OrientationScreen(game) {
+ this._enabled = false;
+ this.game = game;
+ }
+ OrientationScreen.prototype.enable = function (imageKey) {
+ this._enabled = true;
+ this.image = this.game.cache.getImage(imageKey);
+ };
+ OrientationScreen.prototype.update = function () {
+ };
+ OrientationScreen.prototype.render = function () {
+ if(this._enabled) {
+ this.game.stage.context.drawImage(this.image, 0, 0, this.image.width, this.image.height, 0, 0, this.game.stage.width, this.game.stage.height);
+ }
+ };
+ return OrientationScreen;
+ })();
+ Phaser.OrientationScreen = OrientationScreen;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var PauseScreen = (function () {
+ function PauseScreen(game, width, height) {
+ this.game = game;
+ this._canvas = document.createElement('canvas');
+ this._canvas.width = width;
+ this._canvas.height = height;
+ this._context = this._canvas.getContext('2d');
+ }
+ PauseScreen.prototype.onPaused = function () {
+ this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);
+ this._context.drawImage(this.game.stage.canvas, 0, 0);
+ this._color = {
+ r: 255,
+ g: 255,
+ b: 255
+ };
+ this.fadeOut();
+ };
+ PauseScreen.prototype.onResume = function () {
+ this._fade.stop();
+ this.game.tweens.remove(this._fade);
+ };
+ PauseScreen.prototype.update = function () {
+ this._color.r = Math.round(this._color.r);
+ this._color.g = Math.round(this._color.g);
+ this._color.b = Math.round(this._color.b);
+ };
+ PauseScreen.prototype.render = function () {
+ this.game.stage.context.drawImage(this._canvas, 0, 0);
+ this.game.stage.context.fillStyle = 'rgba(0, 0, 0, 0.4)';
+ this.game.stage.context.fillRect(0, 0, this.game.stage.width, this.game.stage.height);
+ var arrowWidth = Math.round(this.game.stage.width / 2);
+ var arrowHeight = Math.round(this.game.stage.height / 2);
+ var sx = this.game.stage.centerX - arrowWidth / 2;
+ var sy = this.game.stage.centerY - arrowHeight / 2;
+ this.game.stage.context.beginPath();
+ this.game.stage.context.moveTo(sx, sy);
+ this.game.stage.context.lineTo(sx, sy + arrowHeight);
+ this.game.stage.context.lineTo(sx + arrowWidth, this.game.stage.centerY);
+ this.game.stage.context.fillStyle = 'rgba(' + this._color.r + ', ' + this._color.g + ', ' + this._color.b + ', 0.8)';
+ this.game.stage.context.fill();
+ this.game.stage.context.closePath();
+ };
+ PauseScreen.prototype.fadeOut = function () {
+ this._fade = this.game.add.tween(this._color);
+ this._fade.to({
+ r: 50,
+ g: 50,
+ b: 50
+ }, 1000, Phaser.Easing.Linear.None);
+ this._fade.onComplete.add(this.fadeIn, this);
+ this._fade.start();
+ };
+ PauseScreen.prototype.fadeIn = function () {
+ this._fade = this.game.add.tween(this._color);
+ this._fade.to({
+ r: 255,
+ g: 255,
+ b: 255
+ }, 1000, Phaser.Easing.Linear.None);
+ this._fade.onComplete.add(this.fadeOut, this);
+ this._fade.start();
+ };
+ return PauseScreen;
+ })();
+ Phaser.PauseScreen = PauseScreen;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var SoundManager = (function () {
+ function SoundManager(game) {
+ this.usingWebAudio = false;
+ this.usingAudioTag = false;
+ this.noAudio = false;
+ this.context = null;
+ this._muted = false;
+ this.touchLocked = false;
+ this._unlockSource = null;
+ this.onSoundDecode = new Phaser.Signal();
+ this.game = game;
+ this._volume = 1;
+ this._muted = false;
+ this._sounds = [];
+ if(this.game.device.iOS && this.game.device.webAudio == false) {
+ this.channels = 1;
+ }
+ if(this.game.device.iOS || (window['PhaserGlobal'] && window['PhaserGlobal'].fakeiOSTouchLock)) {
+ this.game.input.touch.callbackContext = this;
+ this.game.input.touch.touchStartCallback = this.unlock;
+ this.game.input.mouse.callbackContext = this;
+ this.game.input.mouse.mouseDownCallback = this.unlock;
+ this.touchLocked = true;
+ } else {
+ this.touchLocked = false;
+ }
+ if(window['PhaserGlobal']) {
+ if(window['PhaserGlobal'].disableAudio == true) {
+ this.usingWebAudio = false;
+ this.noAudio = true;
+ return;
+ }
+ if(window['PhaserGlobal'].disableWebAudio == true) {
+ this.usingWebAudio = false;
+ this.usingAudioTag = true;
+ this.noAudio = false;
+ return;
+ }
+ }
+ this.usingWebAudio = true;
+ this.noAudio = false;
+ if(!!window['AudioContext']) {
+ this.context = new window['AudioContext']();
+ } else if(!!window['webkitAudioContext']) {
+ this.context = new window['webkitAudioContext']();
+ } else if(!!window['Audio']) {
+ this.usingWebAudio = false;
+ this.usingAudioTag = true;
+ } else {
+ this.usingWebAudio = false;
+ this.noAudio = true;
+ }
+ if(this.context !== null) {
+ if(typeof this.context.createGain === 'undefined') {
+ this.masterGain = this.context.createGainNode();
+ } else {
+ this.masterGain = this.context.createGain();
+ }
+ this.masterGain.gain.value = 1;
+ this.masterGain.connect(this.context.destination);
+ }
+ }
+ SoundManager.prototype.unlock = function () {
+ if(this.touchLocked == false) {
+ return;
+ }
+ if(this.game.device.webAudio && (window['PhaserGlobal'] && window['PhaserGlobal'].disableWebAudio == false)) {
+ var buffer = this.context.createBuffer(1, 1, 22050);
+ this._unlockSource = this.context.createBufferSource();
+ this._unlockSource.buffer = buffer;
+ this._unlockSource.connect(this.context.destination);
+ this._unlockSource.noteOn(0);
+ } else {
+ this.touchLocked = false;
+ this._unlockSource = null;
+ this.game.input.touch.callbackContext = null;
+ this.game.input.touch.touchStartCallback = null;
+ this.game.input.mouse.callbackContext = null;
+ this.game.input.mouse.mouseDownCallback = null;
+ }
+ };
+ Object.defineProperty(SoundManager.prototype, "mute", {
+ get: function () {
+ return this._muted;
+ },
+ set: function (value) {
+ if(value) {
+ if(this._muted) {
+ return;
+ }
+ this._muted = true;
+ if(this.usingWebAudio) {
+ this._muteVolume = this.masterGain.gain.value;
+ this.masterGain.gain.value = 0;
+ }
+ for(var i = 0; i < this._sounds.length; i++) {
+ if(this._sounds[i].usingAudioTag) {
+ this._sounds[i].mute = true;
+ }
+ }
+ } else {
+ if(this._muted == false) {
+ return;
+ }
+ this._muted = false;
+ if(this.usingWebAudio) {
+ this.masterGain.gain.value = this._muteVolume;
+ }
+ for(var i = 0; i < this._sounds.length; i++) {
+ if(this._sounds[i].usingAudioTag) {
+ this._sounds[i].mute = false;
+ }
+ }
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SoundManager.prototype, "volume", {
+ get: function () {
+ if(this.usingWebAudio) {
+ return this.masterGain.gain.value;
+ } else {
+ return this._volume;
+ }
+ },
+ set: function (value) {
+ value = this.game.math.clamp(value, 1, 0);
+ this._volume = value;
+ if(this.usingWebAudio) {
+ this.masterGain.gain.value = value;
+ }
+ for(var i = 0; i < this._sounds.length; i++) {
+ if(this._sounds[i].usingAudioTag) {
+ this._sounds[i].volume = this._sounds[i].volume * value;
+ }
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SoundManager.prototype.stopAll = function () {
+ for(var i = 0; i < this._sounds.length; i++) {
+ if(this._sounds[i]) {
+ this._sounds[i].stop();
+ }
+ }
+ };
+ SoundManager.prototype.pauseAll = function () {
+ for(var i = 0; i < this._sounds.length; i++) {
+ if(this._sounds[i]) {
+ this._sounds[i].pause();
+ }
+ }
+ };
+ SoundManager.prototype.resumeAll = function () {
+ for(var i = 0; i < this._sounds.length; i++) {
+ if(this._sounds[i]) {
+ this._sounds[i].resume();
+ }
+ }
+ };
+ SoundManager.prototype.decode = function (key, sound) {
+ if (typeof sound === "undefined") { sound = null; }
+ var soundData = this.game.cache.getSoundData(key);
+ if(soundData) {
+ if(this.game.cache.isSoundDecoded(key) === false) {
+ this.game.cache.updateSound(key, 'isDecoding', true);
+ var that = this;
+ this.context.decodeAudioData(soundData, function (buffer) {
+ that.game.cache.decodedSound(key, buffer);
+ if(sound) {
+ that.onSoundDecode.dispatch(sound);
+ }
+ });
+ }
+ }
+ };
+ SoundManager.prototype.update = function () {
+ if(this.touchLocked) {
+ if(this.game.device.webAudio && this._unlockSource !== null) {
+ if((this._unlockSource.playbackState === this._unlockSource.PLAYING_STATE || this._unlockSource.playbackState === this._unlockSource.FINISHED_STATE)) {
+ this.touchLocked = false;
+ this._unlockSource = null;
+ this.game.input.touch.callbackContext = null;
+ this.game.input.touch.touchStartCallback = null;
+ }
+ }
+ }
+ for(var i = 0; i < this._sounds.length; i++) {
+ this._sounds[i].update();
+ }
+ };
+ SoundManager.prototype.add = function (key, volume, loop) {
+ if (typeof volume === "undefined") { volume = 1; }
+ if (typeof loop === "undefined") { loop = false; }
+ var sound = new Phaser.Sound(this.game, key, volume, loop);
+ this._sounds.push(sound);
+ return sound;
+ };
+ return SoundManager;
+ })();
+ Phaser.SoundManager = SoundManager;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Sound = (function () {
+ function Sound(game, key, volume, loop) {
+ if (typeof volume === "undefined") { volume = 1; }
+ if (typeof loop === "undefined") { loop = false; }
+ this.context = null;
+ this._buffer = null;
+ this._muted = false;
+ this.usingWebAudio = false;
+ this.usingAudioTag = false;
+ this.name = '';
+ this.autoplay = false;
+ this.totalDuration = 0;
+ this.startTime = 0;
+ this.currentTime = 0;
+ this.duration = 0;
+ this.stopTime = 0;
+ this.paused = false;
+ this.loop = false;
+ this.isPlaying = false;
+ this.currentMarker = '';
+ this.pendingPlayback = false;
+ this.override = false;
+ this.game = game;
+ this.usingWebAudio = this.game.sound.usingWebAudio;
+ this.usingAudioTag = this.game.sound.usingAudioTag;
+ this.key = key;
+ if(this.usingWebAudio) {
+ this.context = this.game.sound.context;
+ this.masterGainNode = this.game.sound.masterGain;
+ if(typeof this.context.createGain === 'undefined') {
+ this.gainNode = this.context.createGainNode();
+ } else {
+ this.gainNode = this.context.createGain();
+ }
+ this.gainNode.gain.value = volume * this.game.sound.volume;
+ this.gainNode.connect(this.masterGainNode);
+ } else {
+ if(this.game.cache.getSound(key) && this.game.cache.getSound(key).locked == false) {
+ this._sound = this.game.cache.getSoundData(key);
+ this.totalDuration = this._sound.duration;
+ } else {
+ this.game.cache.onSoundUnlock.add(this.soundHasUnlocked, this);
+ }
+ }
+ this._volume = volume;
+ this.loop = loop;
+ this.markers = {
+ };
+ this.onDecoded = new Phaser.Signal();
+ this.onPlay = new Phaser.Signal();
+ this.onPause = new Phaser.Signal();
+ this.onResume = new Phaser.Signal();
+ this.onLoop = new Phaser.Signal();
+ this.onStop = new Phaser.Signal();
+ this.onMute = new Phaser.Signal();
+ this.onMarkerComplete = new Phaser.Signal();
+ }
+ Sound.prototype.soundHasUnlocked = function (key) {
+ if(key == this.key) {
+ this._sound = this.game.cache.getSoundData(this.key);
+ this.totalDuration = this._sound.duration;
+ }
+ };
+ Object.defineProperty(Sound.prototype, "isDecoding", {
+ get: function () {
+ return this.game.cache.getSound(this.key).isDecoding;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sound.prototype, "isDecoded", {
+ get: function () {
+ return this.game.cache.isSoundDecoded(this.key);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Sound.prototype.addMarker = function (name, start, stop, volume, loop) {
+ if (typeof volume === "undefined") { volume = 1; }
+ if (typeof loop === "undefined") { loop = false; }
+ this.markers[name] = {
+ name: name,
+ start: start,
+ stop: stop,
+ volume: volume,
+ duration: stop - start,
+ loop: loop
+ };
+ };
+ Sound.prototype.removeMarker = function (name) {
+ delete this.markers[name];
+ };
+ Sound.prototype.update = function () {
+ if(this.pendingPlayback && this.game.cache.isSoundReady(this.key)) {
+ this.pendingPlayback = false;
+ this.play(this._tempMarker, this._tempPosition, this._tempVolume, this._tempLoop);
+ }
+ if(this.isPlaying) {
+ this.currentTime = this.game.time.now - this.startTime;
+ if(this.currentTime >= this.duration) {
+ if(this.usingWebAudio) {
+ if(this.loop) {
+ this.onLoop.dispatch(this);
+ if(this.currentMarker == '') {
+ this.currentTime = 0;
+ this.startTime = this.game.time.now;
+ } else {
+ this.play(this.currentMarker, 0, this.volume, true, true);
+ }
+ } else {
+ this.stop();
+ }
+ } else {
+ if(this.loop) {
+ this.onLoop.dispatch(this);
+ this.play(this.currentMarker, 0, this.volume, true, true);
+ } else {
+ this.stop();
+ }
+ }
+ }
+ }
+ };
+ Sound.prototype.play = function (marker, position, volume, loop, forceRestart) {
+ if (typeof marker === "undefined") { marker = ''; }
+ if (typeof position === "undefined") { position = 0; }
+ if (typeof volume === "undefined") { volume = 1; }
+ if (typeof loop === "undefined") { loop = false; }
+ if (typeof forceRestart === "undefined") { forceRestart = false; }
+ if(this.isPlaying == true && forceRestart == false && this.override == false) {
+ return;
+ }
+ if(this.isPlaying && this.override) {
+ if(this.usingWebAudio) {
+ if(typeof this._sound.stop === 'undefined') {
+ this._sound.noteOff(0);
+ } else {
+ this._sound.stop(0);
+ }
+ } else if(this.usingAudioTag) {
+ this._sound.pause();
+ this._sound.currentTime = 0;
+ }
+ }
+ this.currentMarker = marker;
+ if(marker !== '' && this.markers[marker]) {
+ this.position = this.markers[marker].start;
+ this.volume = this.markers[marker].volume;
+ this.loop = this.markers[marker].loop;
+ this.duration = this.markers[marker].duration * 1000;
+ this._tempMarker = marker;
+ this._tempPosition = this.position;
+ this._tempVolume = this.volume;
+ this._tempLoop = this.loop;
+ } else {
+ this.position = position;
+ this.volume = volume;
+ this.loop = loop;
+ this.duration = 0;
+ this._tempMarker = marker;
+ this._tempPosition = position;
+ this._tempVolume = volume;
+ this._tempLoop = loop;
+ }
+ if(this.usingWebAudio) {
+ if(this.game.cache.isSoundDecoded(this.key)) {
+ if(this._buffer == null) {
+ this._buffer = this.game.cache.getSoundData(this.key);
+ }
+ this._sound = this.context.createBufferSource();
+ this._sound.buffer = this._buffer;
+ this._sound.connect(this.gainNode);
+ this.totalDuration = this._sound.buffer.duration;
+ if(this.duration == 0) {
+ this.duration = this.totalDuration * 1000;
+ }
+ if(this.loop && marker == '') {
+ this._sound.loop = true;
+ }
+ if(typeof this._sound.start === 'undefined') {
+ this._sound.noteGrainOn(0, this.position, this.duration / 1000);
+ } else {
+ this._sound.start(0, this.position, this.duration / 1000);
+ }
+ this.isPlaying = true;
+ this.startTime = this.game.time.now;
+ this.currentTime = 0;
+ this.stopTime = this.startTime + this.duration;
+ this.onPlay.dispatch(this);
+ } else {
+ this.pendingPlayback = true;
+ if(this.game.cache.getSound(this.key) && this.game.cache.getSound(this.key).isDecoding == false) {
+ this.game.sound.decode(this.key, this);
+ }
+ }
+ } else {
+ if(this.game.cache.getSound(this.key) && this.game.cache.getSound(this.key).locked) {
+ this.game.cache.reloadSound(this.key);
+ this.pendingPlayback = true;
+ } else {
+ if(this._sound && this._sound.readyState == 4) {
+ if(this.duration == 0) {
+ this.duration = this.totalDuration * 1000;
+ }
+ this._sound.currentTime = this.position;
+ this._sound.muted = this._muted;
+ if(this._muted) {
+ this._sound.volume = 0;
+ } else {
+ this._sound.volume = this._volume;
+ }
+ this._sound.play();
+ this.isPlaying = true;
+ this.startTime = this.game.time.now;
+ this.currentTime = 0;
+ this.stopTime = this.startTime + this.duration;
+ this.onPlay.dispatch(this);
+ } else {
+ this.pendingPlayback = true;
+ }
+ }
+ }
+ };
+ Sound.prototype.restart = function (marker, position, volume, loop) {
+ if (typeof marker === "undefined") { marker = ''; }
+ if (typeof position === "undefined") { position = 0; }
+ if (typeof volume === "undefined") { volume = 1; }
+ if (typeof loop === "undefined") { loop = false; }
+ this.play(marker, position, volume, loop, true);
+ };
+ Sound.prototype.pause = function () {
+ if(this.isPlaying && this._sound) {
+ this.stop();
+ this.isPlaying = false;
+ this.paused = true;
+ this.onPause.dispatch(this);
+ }
+ };
+ Sound.prototype.resume = function () {
+ if(this.paused && this._sound) {
+ if(this.usingWebAudio) {
+ if(typeof this._sound.start === 'undefined') {
+ this._sound.noteGrainOn(0, this.position, this.duration);
+ } else {
+ this._sound.start(0, this.position, this.duration);
+ }
+ } else {
+ this._sound.play();
+ }
+ this.isPlaying = true;
+ this.paused = false;
+ this.onResume.dispatch(this);
+ }
+ };
+ Sound.prototype.stop = function () {
+ if(this.isPlaying && this._sound) {
+ if(this.usingWebAudio) {
+ if(typeof this._sound.stop === 'undefined') {
+ this._sound.noteOff(0);
+ } else {
+ this._sound.stop(0);
+ }
+ } else if(this.usingAudioTag) {
+ this._sound.pause();
+ this._sound.currentTime = 0;
+ }
+ }
+ this.isPlaying = false;
+ var prevMarker = this.currentMarker;
+ this.currentMarker = '';
+ this.onStop.dispatch(this, prevMarker);
+ };
+ Object.defineProperty(Sound.prototype, "mute", {
+ get: function () {
+ return this._muted;
+ },
+ set: function (value) {
+ if(value) {
+ this._muted = true;
+ if(this.usingWebAudio) {
+ this._muteVolume = this.gainNode.gain.value;
+ this.gainNode.gain.value = 0;
+ } else if(this.usingAudioTag && this._sound) {
+ this._muteVolume = this._sound.volume;
+ this._sound.volume = 0;
+ }
+ } else {
+ this._muted = false;
+ if(this.usingWebAudio) {
+ this.gainNode.gain.value = this._muteVolume;
+ } else if(this.usingAudioTag && this._sound) {
+ this._sound.volume = this._muteVolume;
+ }
+ }
+ this.onMute.dispatch(this);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sound.prototype, "volume", {
+ get: function () {
+ return this._volume;
+ },
+ set: function (value) {
+ this._volume = value;
+ if(this.usingWebAudio) {
+ this.gainNode.gain.value = value;
+ } else if(this.usingAudioTag && this._sound) {
+ this._sound.volume = value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Sound;
+ })();
+ Phaser.Sound = Sound;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Animation = (function () {
+ function Animation(game, parent, frameData, name, frames, delay, looped) {
+ this.game = game;
+ this._parent = parent;
+ this._frames = frames;
+ this._frameData = frameData;
+ this.name = name;
+ this.delay = 1000 / delay;
+ this.looped = looped;
+ this.isFinished = false;
+ this.isPlaying = false;
+ this._frameIndex = 0;
+ this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
+ }
+ Object.defineProperty(Animation.prototype, "frameTotal", {
+ get: function () {
+ return this._frames.length;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Animation.prototype, "frame", {
+ get: function () {
+ if(this.currentFrame !== null) {
+ return this.currentFrame.index;
+ } else {
+ return this._frameIndex;
+ }
+ },
+ set: function (value) {
+ this.currentFrame = this._frameData.getFrame(value);
+ if(this.currentFrame !== null) {
+ this._parent.texture.width = this.currentFrame.width;
+ this._parent.texture.height = this.currentFrame.height;
+ this._frameIndex = value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Animation.prototype.play = function (frameRate, loop) {
+ if (typeof frameRate === "undefined") { frameRate = null; }
+ if (typeof loop === "undefined") { loop = null; }
+ if(frameRate !== null) {
+ this.delay = 1000 / frameRate;
+ }
+ if(loop !== null) {
+ this.looped = loop;
+ }
+ this.isPlaying = true;
+ this.isFinished = false;
+ this._timeLastFrame = this.game.time.now;
+ this._timeNextFrame = this.game.time.now + this.delay;
+ this._frameIndex = 0;
+ this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
+ this._parent.events.onAnimationStart.dispatch(this._parent, this);
+ return this;
+ };
+ Animation.prototype.restart = function () {
+ this.isPlaying = true;
+ this.isFinished = false;
+ this._timeLastFrame = this.game.time.now;
+ this._timeNextFrame = this.game.time.now + this.delay;
+ this._frameIndex = 0;
+ this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
+ };
+ Animation.prototype.stop = function () {
+ this.isPlaying = false;
+ this.isFinished = true;
+ };
+ Animation.prototype.update = function () {
+ if(this.isPlaying == true && this.game.time.now >= this._timeNextFrame) {
+ this._frameIndex++;
+ if(this._frameIndex == this._frames.length) {
+ if(this.looped) {
+ this._frameIndex = 0;
+ this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
+ this._parent.events.onAnimationLoop.dispatch(this._parent, this);
+ } else {
+ this.onComplete();
+ }
+ } else {
+ this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]);
+ }
+ this._timeLastFrame = this.game.time.now;
+ this._timeNextFrame = this.game.time.now + this.delay;
+ return true;
+ }
+ return false;
+ };
+ Animation.prototype.destroy = function () {
+ this.game = null;
+ this._parent = null;
+ this._frames = null;
+ this._frameData = null;
+ this.currentFrame = null;
+ this.isPlaying = false;
+ };
+ Animation.prototype.onComplete = function () {
+ this.isPlaying = false;
+ this.isFinished = true;
+ this._parent.events.onAnimationComplete.dispatch(this._parent, this);
+ };
+ return Animation;
+ })();
+ Phaser.Animation = Animation;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Components) {
+ var AnimationManager = (function () {
+ function AnimationManager(parent) {
+ this._frameData = null;
+ this.autoUpdateBounds = true;
+ this.currentFrame = null;
+ this._parent = parent;
+ this.game = parent.game;
+ this._anims = {
+ };
+ }
+ AnimationManager.prototype.loadFrameData = function (frameData) {
+ this._frameData = frameData;
+ this.frame = 0;
+ };
+ AnimationManager.prototype.add = function (name, frames, frameRate, loop, useNumericIndex) {
+ if (typeof frames === "undefined") { frames = null; }
+ if (typeof frameRate === "undefined") { frameRate = 60; }
+ if (typeof loop === "undefined") { loop = false; }
+ if (typeof useNumericIndex === "undefined") { useNumericIndex = true; }
+ if(this._frameData == null) {
+ return;
+ }
+ if(this._parent.events.onAnimationStart == null) {
+ this._parent.events.onAnimationStart = new Phaser.Signal();
+ this._parent.events.onAnimationComplete = new Phaser.Signal();
+ this._parent.events.onAnimationLoop = new Phaser.Signal();
+ }
+ if(frames == null) {
+ frames = this._frameData.getFrameIndexes();
+ } else {
+ if(this.validateFrames(frames, useNumericIndex) == false) {
+ throw Error('Invalid frames given to Animation ' + name);
+ return;
+ }
+ }
+ if(useNumericIndex == false) {
+ frames = this._frameData.getFrameIndexesByName(frames);
+ }
+ this._anims[name] = new Phaser.Animation(this.game, this._parent, this._frameData, name, frames, frameRate, loop);
+ this.currentAnim = this._anims[name];
+ this.currentFrame = this.currentAnim.currentFrame;
+ return this._anims[name];
+ };
+ AnimationManager.prototype.validateFrames = function (frames, useNumericIndex) {
+ for(var i = 0; i < frames.length; i++) {
+ if(useNumericIndex == true) {
+ if(frames[i] > this._frameData.total) {
+ return false;
+ }
+ } else {
+ if(this._frameData.checkFrameName(frames[i]) == false) {
+ return false;
+ }
+ }
+ }
+ return true;
+ };
+ AnimationManager.prototype.play = function (name, frameRate, loop) {
+ if (typeof frameRate === "undefined") { frameRate = null; }
+ if (typeof loop === "undefined") { loop = null; }
+ if(this._anims[name]) {
+ if(this.currentAnim == this._anims[name]) {
+ if(this.currentAnim.isPlaying == false) {
+ return this.currentAnim.play(frameRate, loop);
+ }
+ } else {
+ this.currentAnim = this._anims[name];
+ return this.currentAnim.play(frameRate, loop);
+ }
+ }
+ };
+ AnimationManager.prototype.stop = function (name) {
+ if(this._anims[name]) {
+ this.currentAnim = this._anims[name];
+ this.currentAnim.stop();
+ }
+ };
+ AnimationManager.prototype.update = function () {
+ if(this.currentAnim && this.currentAnim.update() == true) {
+ this.currentFrame = this.currentAnim.currentFrame;
+ this._parent.texture.width = this.currentFrame.width;
+ this._parent.texture.height = this.currentFrame.height;
+ }
+ };
+ Object.defineProperty(AnimationManager.prototype, "frameData", {
+ get: function () {
+ return this._frameData;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AnimationManager.prototype, "frameTotal", {
+ get: function () {
+ if(this._frameData) {
+ return this._frameData.total;
+ } else {
+ return -1;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AnimationManager.prototype, "frame", {
+ get: function () {
+ return this._frameIndex;
+ },
+ set: function (value) {
+ if(this._frameData && this._frameData.getFrame(value) !== null) {
+ this.currentFrame = this._frameData.getFrame(value);
+ this._parent.texture.width = this.currentFrame.width;
+ this._parent.texture.height = this.currentFrame.height;
+ if(this.autoUpdateBounds && this._parent['body']) {
+ this._parent.body.bounds.width = this.currentFrame.width;
+ this._parent.body.bounds.height = this.currentFrame.height;
+ }
+ this._frameIndex = value;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AnimationManager.prototype, "frameName", {
+ get: function () {
+ return this.currentFrame.name;
+ },
+ set: function (value) {
+ if(this._frameData && this._frameData.getFrameByName(value)) {
+ this.currentFrame = this._frameData.getFrameByName(value);
+ this._parent.texture.width = this.currentFrame.width;
+ this._parent.texture.height = this.currentFrame.height;
+ this._frameIndex = this.currentFrame.index;
+ } else {
+ throw new Error("Cannot set frameName: " + value);
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ AnimationManager.prototype.destroy = function () {
+ this._anims = {
+ };
+ this._frameData = null;
+ this._frameIndex = 0;
+ this.currentAnim = null;
+ this.currentFrame = null;
+ };
+ return AnimationManager;
+ })();
+ Components.AnimationManager = AnimationManager;
+ })(Phaser.Components || (Phaser.Components = {}));
+ var Components = Phaser.Components;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Frame = (function () {
+ function Frame(x, y, width, height, name) {
+ this.name = '';
+ this.rotated = false;
+ this.rotationDirection = 'cw';
+ this.x = x;
+ this.y = y;
+ this.width = width;
+ this.height = height;
+ this.name = name;
+ this.rotated = false;
+ this.trimmed = false;
+ }
+ Frame.prototype.setRotation = function (rotated, rotationDirection) {
+ };
+ Frame.prototype.setTrim = function (trimmed, actualWidth, actualHeight, destX, destY, destWidth, destHeight) {
+ this.trimmed = trimmed;
+ if(trimmed) {
+ this.width = actualWidth;
+ this.height = actualHeight;
+ this.sourceSizeW = actualWidth;
+ this.sourceSizeH = actualHeight;
+ this.spriteSourceSizeX = destX;
+ this.spriteSourceSizeY = destY;
+ this.spriteSourceSizeW = destWidth;
+ this.spriteSourceSizeH = destHeight;
+ }
+ };
+ return Frame;
+ })();
+ Phaser.Frame = Frame;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var FrameData = (function () {
+ function FrameData() {
+ this._frames = [];
+ this._frameNames = [];
+ }
+ Object.defineProperty(FrameData.prototype, "total", {
+ get: function () {
+ return this._frames.length;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ FrameData.prototype.addFrame = function (frame) {
+ frame.index = this._frames.length;
+ this._frames.push(frame);
+ if(frame.name !== '') {
+ this._frameNames[frame.name] = frame.index;
+ }
+ return frame;
+ };
+ FrameData.prototype.getFrame = function (index) {
+ if(this._frames[index]) {
+ return this._frames[index];
+ }
+ return null;
+ };
+ FrameData.prototype.getFrameByName = function (name) {
+ if(this._frameNames[name] !== '') {
+ return this._frames[this._frameNames[name]];
+ }
+ return null;
+ };
+ FrameData.prototype.checkFrameName = function (name) {
+ if(this._frameNames[name] == null) {
+ return false;
+ }
+ return true;
+ };
+ FrameData.prototype.getFrameRange = function (start, end, output) {
+ if (typeof output === "undefined") { output = []; }
+ for(var i = start; i <= end; i++) {
+ output.push(this._frames[i]);
+ }
+ return output;
+ };
+ FrameData.prototype.getFrameIndexes = function (output) {
+ if (typeof output === "undefined") { output = []; }
+ output.length = 0;
+ for(var i = 0; i < this._frames.length; i++) {
+ output.push(i);
+ }
+ return output;
+ };
+ FrameData.prototype.getFrameIndexesByName = function (input) {
+ var output = [];
+ for(var i = 0; i < input.length; i++) {
+ if(this.getFrameByName(input[i])) {
+ output.push(this.getFrameByName(input[i]).index);
+ }
+ }
+ return output;
+ };
+ FrameData.prototype.getAllFrames = function () {
+ return this._frames;
+ };
+ FrameData.prototype.getFrames = function (range) {
+ var output = [];
+ for(var i = 0; i < range.length; i++) {
+ output.push(this._frames[i]);
+ }
+ return output;
+ };
+ return FrameData;
+ })();
+ Phaser.FrameData = FrameData;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Cache = (function () {
+ function Cache(game) {
+ this.onSoundUnlock = new Phaser.Signal();
+ this.game = game;
+ this._canvases = {
+ };
+ this._images = {
+ };
+ this._sounds = {
+ };
+ this._text = {
+ };
+ }
+ Cache.prototype.addCanvas = function (key, canvas, context) {
+ this._canvases[key] = {
+ canvas: canvas,
+ context: context
+ };
+ };
+ Cache.prototype.addSpriteSheet = function (key, url, data, frameWidth, frameHeight, frameMax) {
+ this._images[key] = {
+ url: url,
+ data: data,
+ spriteSheet: true,
+ frameWidth: frameWidth,
+ frameHeight: frameHeight
+ };
+ this._images[key].frameData = Phaser.AnimationLoader.parseSpriteSheet(this.game, key, frameWidth, frameHeight, frameMax);
+ };
+ Cache.prototype.addTextureAtlas = function (key, url, data, atlasData, format) {
+ this._images[key] = {
+ url: url,
+ data: data,
+ spriteSheet: true
+ };
+ if(format == Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY) {
+ this._images[key].frameData = Phaser.AnimationLoader.parseJSONData(this.game, atlasData);
+ } else if(format == Phaser.Loader.TEXTURE_ATLAS_XML_STARLING) {
+ this._images[key].frameData = Phaser.AnimationLoader.parseXMLData(this.game, atlasData, format);
+ }
+ };
+ Cache.prototype.addImage = function (key, url, data) {
+ this._images[key] = {
+ url: url,
+ data: data,
+ spriteSheet: false
+ };
+ };
+ Cache.prototype.addSound = function (key, url, data, webAudio, audioTag) {
+ if (typeof webAudio === "undefined") { webAudio = true; }
+ if (typeof audioTag === "undefined") { audioTag = false; }
+ var locked = this.game.sound.touchLocked;
+ var decoded = false;
+ if(audioTag) {
+ decoded = true;
+ }
+ this._sounds[key] = {
+ url: url,
+ data: data,
+ locked: locked,
+ isDecoding: false,
+ decoded: decoded,
+ webAudio: webAudio,
+ audioTag: audioTag
+ };
+ };
+ Cache.prototype.reloadSound = function (key) {
+ var _this = this;
+ if(this._sounds[key]) {
+ this._sounds[key].data.src = this._sounds[key].url;
+ this._sounds[key].data.addEventListener('canplaythrough', function () {
+ return _this.reloadSoundComplete(key);
+ }, false);
+ this._sounds[key].data.load();
+ }
+ };
+ Cache.prototype.reloadSoundComplete = function (key) {
+ if(this._sounds[key]) {
+ this._sounds[key].locked = false;
+ this.onSoundUnlock.dispatch(key);
+ }
+ };
+ Cache.prototype.updateSound = function (key, property, value) {
+ if(this._sounds[key]) {
+ this._sounds[key][property] = value;
+ }
+ };
+ Cache.prototype.decodedSound = function (key, data) {
+ this._sounds[key].data = data;
+ this._sounds[key].decoded = true;
+ this._sounds[key].isDecoding = false;
+ };
+ Cache.prototype.addText = function (key, url, data) {
+ this._text[key] = {
+ url: url,
+ data: data
+ };
+ };
+ Cache.prototype.getCanvas = function (key) {
+ if(this._canvases[key]) {
+ return this._canvases[key].canvas;
+ }
+ return null;
+ };
+ Cache.prototype.getImage = function (key) {
+ if(this._images[key]) {
+ return this._images[key].data;
+ }
+ return null;
+ };
+ Cache.prototype.getFrameData = function (key) {
+ if(this._images[key] && this._images[key].spriteSheet == true) {
+ return this._images[key].frameData;
+ }
+ return null;
+ };
+ Cache.prototype.getSound = function (key) {
+ if(this._sounds[key]) {
+ return this._sounds[key];
+ }
+ return null;
+ };
+ Cache.prototype.getSoundData = function (key) {
+ if(this._sounds[key]) {
+ return this._sounds[key].data;
+ }
+ return null;
+ };
+ Cache.prototype.isSoundDecoded = function (key) {
+ if(this._sounds[key]) {
+ return this._sounds[key].decoded;
+ }
+ };
+ Cache.prototype.isSoundReady = function (key) {
+ if(this._sounds[key] && this._sounds[key].decoded == true && this._sounds[key].locked == false) {
+ return true;
+ }
+ return false;
+ };
+ Cache.prototype.isSpriteSheet = function (key) {
+ if(this._images[key]) {
+ return this._images[key].spriteSheet;
+ }
+ };
+ Cache.prototype.getText = function (key) {
+ if(this._text[key]) {
+ return this._text[key].data;
+ }
+ return null;
+ };
+ Cache.prototype.getImageKeys = function () {
+ var output = [];
+ for(var item in this._images) {
+ output.push(item);
+ }
+ return output;
+ };
+ Cache.prototype.getSoundKeys = function () {
+ var output = [];
+ for(var item in this._sounds) {
+ output.push(item);
+ }
+ return output;
+ };
+ Cache.prototype.getTextKeys = function () {
+ var output = [];
+ for(var item in this._text) {
+ output.push(item);
+ }
+ return output;
+ };
+ Cache.prototype.removeCanvas = function (key) {
+ delete this._canvases[key];
+ };
+ Cache.prototype.removeImage = function (key) {
+ delete this._images[key];
+ };
+ Cache.prototype.removeSound = function (key) {
+ delete this._sounds[key];
+ };
+ Cache.prototype.removeText = function (key) {
+ delete this._text[key];
+ };
+ Cache.prototype.destroy = function () {
+ for(var item in this._canvases) {
+ delete this._canvases[item['key']];
+ }
+ for(var item in this._images) {
+ delete this._images[item['key']];
+ }
+ for(var item in this._sounds) {
+ delete this._sounds[item['key']];
+ }
+ for(var item in this._text) {
+ delete this._text[item['key']];
+ }
+ };
+ return Cache;
+ })();
+ Phaser.Cache = Cache;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Loader = (function () {
+ function Loader(game) {
+ this.crossOrigin = '';
+ this.baseURL = '';
+ this.game = game;
+ this._keys = [];
+ this._fileList = {
+ };
+ this._xhr = new XMLHttpRequest();
+ this._queueSize = 0;
+ this.isLoading = false;
+ this.onFileComplete = new Phaser.Signal();
+ this.onFileError = new Phaser.Signal();
+ this.onLoadStart = new Phaser.Signal();
+ this.onLoadComplete = new Phaser.Signal();
+ }
+ Loader.TEXTURE_ATLAS_JSON_ARRAY = 0;
+ Loader.TEXTURE_ATLAS_JSON_HASH = 1;
+ Loader.TEXTURE_ATLAS_XML_STARLING = 2;
+ Loader.prototype.reset = function () {
+ this._queueSize = 0;
+ this.isLoading = false;
+ };
+ Object.defineProperty(Loader.prototype, "queueSize", {
+ get: function () {
+ return this._queueSize;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Loader.prototype.image = function (key, url, overwrite) {
+ if (typeof overwrite === "undefined") { overwrite = false; }
+ if(overwrite == true || this.checkKeyExists(key) == false) {
+ this._queueSize++;
+ this._fileList[key] = {
+ type: 'image',
+ key: key,
+ url: url,
+ data: null,
+ error: false,
+ loaded: false
+ };
+ this._keys.push(key);
+ }
+ };
+ Loader.prototype.spritesheet = function (key, url, frameWidth, frameHeight, frameMax) {
+ if (typeof frameMax === "undefined") { frameMax = -1; }
+ if(this.checkKeyExists(key) === false) {
+ this._queueSize++;
+ this._fileList[key] = {
+ type: 'spritesheet',
+ key: key,
+ url: url,
+ data: null,
+ frameWidth: frameWidth,
+ frameHeight: frameHeight,
+ frameMax: frameMax,
+ error: false,
+ loaded: false
+ };
+ this._keys.push(key);
+ }
+ };
+ Loader.prototype.atlas = function (key, textureURL, atlasURL, atlasData, format) {
+ if (typeof atlasURL === "undefined") { atlasURL = null; }
+ if (typeof atlasData === "undefined") { atlasData = null; }
+ if (typeof format === "undefined") { format = Loader.TEXTURE_ATLAS_JSON_ARRAY; }
+ if(this.checkKeyExists(key) === false) {
+ if(atlasURL !== null) {
+ this._queueSize++;
+ this._fileList[key] = {
+ type: 'textureatlas',
+ key: key,
+ url: textureURL,
+ atlasURL: atlasURL,
+ data: null,
+ format: format,
+ error: false,
+ loaded: false
+ };
+ this._keys.push(key);
+ } else {
+ if(format == Loader.TEXTURE_ATLAS_JSON_ARRAY) {
+ if(typeof atlasData === 'string') {
+ atlasData = JSON.parse(atlasData);
+ }
+ this._queueSize++;
+ this._fileList[key] = {
+ type: 'textureatlas',
+ key: key,
+ url: textureURL,
+ data: null,
+ atlasURL: null,
+ atlasData: atlasData,
+ format: format,
+ error: false,
+ loaded: false
+ };
+ this._keys.push(key);
+ } else if(format == Loader.TEXTURE_ATLAS_XML_STARLING) {
+ if(typeof atlasData === 'string') {
+ var xml;
+ try {
+ if(window['DOMParser']) {
+ var domparser = new DOMParser();
+ xml = domparser.parseFromString(atlasData, "text/xml");
+ } else {
+ xml = new ActiveXObject("Microsoft.XMLDOM");
+ xml.async = 'false';
+ xml.loadXML(atlasData);
+ }
+ } catch (e) {
+ xml = undefined;
+ }
+ if(!xml || !xml.documentElement || xml.getElementsByTagName("parsererror").length) {
+ throw new Error("Phaser.Loader. Invalid Texture Atlas XML given");
+ } else {
+ atlasData = xml;
+ }
+ }
+ this._queueSize++;
+ this._fileList[key] = {
+ type: 'textureatlas',
+ key: key,
+ url: textureURL,
+ data: null,
+ atlasURL: null,
+ atlasData: atlasData,
+ format: format,
+ error: false,
+ loaded: false
+ };
+ this._keys.push(key);
+ }
+ }
+ }
+ };
+ Loader.prototype.audio = function (key, urls, autoDecode) {
+ if (typeof autoDecode === "undefined") { autoDecode = true; }
+ if(this.checkKeyExists(key) === false) {
+ this._queueSize++;
+ this._fileList[key] = {
+ type: 'audio',
+ key: key,
+ url: urls,
+ data: null,
+ buffer: null,
+ error: false,
+ loaded: false,
+ autoDecode: autoDecode
+ };
+ this._keys.push(key);
+ }
+ };
+ Loader.prototype.text = function (key, url) {
+ if(this.checkKeyExists(key) === false) {
+ this._queueSize++;
+ this._fileList[key] = {
+ type: 'text',
+ key: key,
+ url: url,
+ data: null,
+ error: false,
+ loaded: false
+ };
+ this._keys.push(key);
+ }
+ };
+ Loader.prototype.removeFile = function (key) {
+ delete this._fileList[key];
+ };
+ Loader.prototype.removeAll = function () {
+ this._fileList = {
+ };
+ };
+ Loader.prototype.start = function () {
+ if(this.isLoading) {
+ return;
+ }
+ this.progress = 0;
+ this.hasLoaded = false;
+ this.isLoading = true;
+ this.onLoadStart.dispatch(this.queueSize);
+ if(this._keys.length > 0) {
+ this._progressChunk = 100 / this._keys.length;
+ this.loadFile();
+ } else {
+ this.progress = 100;
+ this.hasLoaded = true;
+ this.onLoadComplete.dispatch();
+ }
+ };
+ Loader.prototype.loadFile = function () {
+ var _this = this;
+ var file = this._fileList[this._keys.pop()];
+ switch(file.type) {
+ case 'image':
+ case 'spritesheet':
+ case 'textureatlas':
+ file.data = new Image();
+ file.data.name = file.key;
+ file.data.onload = function () {
+ return _this.fileComplete(file.key);
+ };
+ file.data.onerror = function () {
+ return _this.fileError(file.key);
+ };
+ file.data.crossOrigin = this.crossOrigin;
+ file.data.src = this.baseURL + file.url;
+ break;
+ case 'audio':
+ file.url = this.getAudioURL(file.url);
+ if(file.url !== null) {
+ if(this.game.sound.usingWebAudio) {
+ this._xhr.open("GET", this.baseURL + file.url, true);
+ this._xhr.responseType = "arraybuffer";
+ this._xhr.onload = function () {
+ return _this.fileComplete(file.key);
+ };
+ this._xhr.onerror = function () {
+ return _this.fileError(file.key);
+ };
+ this._xhr.send();
+ } else if(this.game.sound.usingAudioTag) {
+ if(this.game.sound.touchLocked) {
+ file.data = new Audio();
+ file.data.name = file.key;
+ file.data.preload = 'auto';
+ file.data.src = this.baseURL + file.url;
+ this.fileComplete(file.key);
+ } else {
+ file.data = new Audio();
+ file.data.name = file.key;
+ file.data.onerror = function () {
+ return _this.fileError(file.key);
+ };
+ file.data.preload = 'auto';
+ file.data.src = this.baseURL + file.url;
+ file.data.addEventListener('canplaythrough', Phaser.GAMES[this.game.id].load.fileComplete(file.key), false);
+ file.data.load();
+ }
+ }
+ }
+ break;
+ case 'text':
+ this._xhr.open("GET", this.baseURL + file.url, true);
+ this._xhr.responseType = "text";
+ this._xhr.onload = function () {
+ return _this.fileComplete(file.key);
+ };
+ this._xhr.onerror = function () {
+ return _this.fileError(file.key);
+ };
+ this._xhr.send();
+ break;
+ }
+ };
+ Loader.prototype.getAudioURL = function (urls) {
+ var extension;
+ for(var i = 0; i < urls.length; i++) {
+ extension = urls[i].toLowerCase();
+ extension = extension.substr((Math.max(0, extension.lastIndexOf(".")) || Infinity) + 1);
+ if(this.game.device.canPlayAudio(extension)) {
+ return urls[i];
+ }
+ }
+ return null;
+ };
+ Loader.prototype.fileError = function (key) {
+ this._fileList[key].loaded = true;
+ this._fileList[key].error = true;
+ this.onFileError.dispatch(key);
+ throw new Error("Phaser.Loader error loading file: " + key);
+ this.nextFile(key, false);
+ };
+ Loader.prototype.fileComplete = function (key) {
+ var _this = this;
+ if(!this._fileList[key]) {
+ throw new Error('Phaser.Loader fileComplete invalid key ' + key);
+ return;
+ }
+ this._fileList[key].loaded = true;
+ var file = this._fileList[key];
+ var loadNext = true;
+ switch(file.type) {
+ case 'image':
+ this.game.cache.addImage(file.key, file.url, file.data);
+ break;
+ case 'spritesheet':
+ this.game.cache.addSpriteSheet(file.key, file.url, file.data, file.frameWidth, file.frameHeight, file.frameMax);
+ break;
+ case 'textureatlas':
+ if(file.atlasURL == null) {
+ this.game.cache.addTextureAtlas(file.key, file.url, file.data, file.atlasData, file.format);
+ } else {
+ loadNext = false;
+ this._xhr.open("GET", this.baseURL + file.atlasURL, true);
+ this._xhr.responseType = "text";
+ if(file.format == Loader.TEXTURE_ATLAS_JSON_ARRAY) {
+ this._xhr.onload = function () {
+ return _this.jsonLoadComplete(file.key);
+ };
+ } else if(file.format == Loader.TEXTURE_ATLAS_XML_STARLING) {
+ this._xhr.onload = function () {
+ return _this.xmlLoadComplete(file.key);
+ };
+ }
+ this._xhr.onerror = function () {
+ return _this.dataLoadError(file.key);
+ };
+ this._xhr.send();
+ }
+ break;
+ case 'audio':
+ if(this.game.sound.usingWebAudio) {
+ file.data = this._xhr.response;
+ this.game.cache.addSound(file.key, file.url, file.data, true, false);
+ if(file.autoDecode) {
+ this.game.cache.updateSound(key, 'isDecoding', true);
+ var that = this;
+ var key = file.key;
+ this.game.sound.context.decodeAudioData(file.data, function (buffer) {
+ if(buffer) {
+ that.game.cache.decodedSound(key, buffer);
+ }
+ });
+ }
+ } else {
+ file.data.removeEventListener('canplaythrough', Phaser.GAMES[this.game.id].load.fileComplete);
+ this.game.cache.addSound(file.key, file.url, file.data, false, true);
+ }
+ break;
+ case 'text':
+ file.data = this._xhr.response;
+ this.game.cache.addText(file.key, file.url, file.data);
+ break;
+ }
+ if(loadNext) {
+ this.nextFile(key, true);
+ }
+ };
+ Loader.prototype.jsonLoadComplete = function (key) {
+ var data = JSON.parse(this._xhr.response);
+ var file = this._fileList[key];
+ this.game.cache.addTextureAtlas(file.key, file.url, file.data, data, file.format);
+ this.nextFile(key, true);
+ };
+ Loader.prototype.dataLoadError = function (key) {
+ var file = this._fileList[key];
+ file.error = true;
+ throw new Error("Phaser.Loader dataLoadError: " + key);
+ this.nextFile(key, true);
+ };
+ Loader.prototype.xmlLoadComplete = function (key) {
+ var atlasData = this._xhr.response;
+ var xml;
+ try {
+ if(window['DOMParser']) {
+ var domparser = new DOMParser();
+ xml = domparser.parseFromString(atlasData, "text/xml");
+ } else {
+ xml = new ActiveXObject("Microsoft.XMLDOM");
+ xml.async = 'false';
+ xml.loadXML(atlasData);
+ }
+ } catch (e) {
+ xml = undefined;
+ }
+ if(!xml || !xml.documentElement || xml.getElementsByTagName("parsererror").length) {
+ throw new Error("Phaser.Loader. Invalid XML given");
+ }
+ var file = this._fileList[key];
+ this.game.cache.addTextureAtlas(file.key, file.url, file.data, xml, file.format);
+ this.nextFile(key, true);
+ };
+ Loader.prototype.nextFile = function (previousKey, success) {
+ this.progress = Math.round(this.progress + this._progressChunk);
+ if(this.progress > 100) {
+ this.progress = 100;
+ }
+ this.onFileComplete.dispatch(this.progress, previousKey, success, this._queueSize - this._keys.length, this._queueSize);
+ if(this._keys.length > 0) {
+ this.loadFile();
+ } else {
+ this.hasLoaded = true;
+ this.isLoading = false;
+ this.removeAll();
+ this.onLoadComplete.dispatch();
+ }
+ };
+ Loader.prototype.checkKeyExists = function (key) {
+ if(this._fileList[key]) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ return Loader;
+ })();
+ Phaser.Loader = Loader;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var AnimationLoader = (function () {
+ function AnimationLoader() { }
+ AnimationLoader.parseSpriteSheet = function parseSpriteSheet(game, key, frameWidth, frameHeight, frameMax) {
+ var img = game.cache.getImage(key);
+ if(img == null) {
+ return null;
+ }
+ var width = img.width;
+ var height = img.height;
+ var row = Math.round(width / frameWidth);
+ var column = Math.round(height / frameHeight);
+ var total = row * column;
+ if(frameMax !== -1) {
+ total = frameMax;
+ }
+ if(width == 0 || height == 0 || width < frameWidth || height < frameHeight || total === 0) {
+ throw new Error("AnimationLoader.parseSpriteSheet: width/height zero or width/height < given frameWidth/frameHeight");
+ return null;
+ }
+ var data = new Phaser.FrameData();
+ var x = 0;
+ var y = 0;
+ for(var i = 0; i < total; i++) {
+ data.addFrame(new Phaser.Frame(x, y, frameWidth, frameHeight, ''));
+ x += frameWidth;
+ if(x === width) {
+ x = 0;
+ y += frameHeight;
+ }
+ }
+ return data;
+ };
+ AnimationLoader.parseJSONData = function parseJSONData(game, json) {
+ if(!json['frames']) {
+ console.log(json);
+ throw new Error("Phaser.AnimationLoader.parseJSONData: Invalid Texture Atlas JSON given, missing 'frames' array");
+ }
+ var data = new Phaser.FrameData();
+ var frames = json['frames'];
+ var newFrame;
+ for(var i = 0; i < frames.length; i++) {
+ newFrame = data.addFrame(new Phaser.Frame(frames[i].frame.x, frames[i].frame.y, frames[i].frame.w, frames[i].frame.h, frames[i].filename));
+ newFrame.setTrim(frames[i].trimmed, frames[i].sourceSize.w, frames[i].sourceSize.h, frames[i].spriteSourceSize.x, frames[i].spriteSourceSize.y, frames[i].spriteSourceSize.w, frames[i].spriteSourceSize.h);
+ }
+ return data;
+ };
+ AnimationLoader.parseXMLData = function parseXMLData(game, xml, format) {
+ if(!xml.getElementsByTagName('TextureAtlas')) {
+ throw new Error("Phaser.AnimationLoader.parseXMLData: Invalid Texture Atlas XML given, missing tag");
+ }
+ var data = new Phaser.FrameData();
+ var frames = xml.getElementsByTagName('SubTexture');
+ var newFrame;
+ for(var i = 0; i < frames.length; i++) {
+ var frame = frames[i].attributes;
+ newFrame = data.addFrame(new Phaser.Frame(frame.x.nodeValue, frame.y.nodeValue, frame.width.nodeValue, frame.height.nodeValue, frame.name.nodeValue));
+ if(frame.frameX.nodeValue != '-0' || frame.frameY.nodeValue != '-0') {
+ newFrame.setTrim(true, frame.width.nodeValue, frame.height.nodeValue, Math.abs(frame.frameX.nodeValue), Math.abs(frame.frameY.nodeValue), frame.frameWidth.nodeValue, frame.frameHeight.nodeValue);
+ }
+ }
+ return data;
+ };
+ return AnimationLoader;
+ })();
+ Phaser.AnimationLoader = AnimationLoader;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Tile = (function () {
+ function Tile(game, tilemap, index, width, height) {
+ this.mass = 1.0;
+ this.collideLeft = false;
+ this.collideRight = false;
+ this.collideUp = false;
+ this.collideDown = false;
+ this.separateX = true;
+ this.separateY = true;
+ this.game = game;
+ this.tilemap = tilemap;
+ this.index = index;
+ this.width = width;
+ this.height = height;
+ this.allowCollisions = Phaser.Types.NONE;
+ }
+ Tile.prototype.destroy = function () {
+ this.tilemap = null;
+ };
+ Tile.prototype.setCollision = function (collision, resetCollisions, separateX, separateY) {
+ if(resetCollisions) {
+ this.resetCollision();
+ }
+ this.separateX = separateX;
+ this.separateY = separateY;
+ this.allowCollisions = collision;
+ if(collision & Phaser.Types.ANY) {
+ this.collideLeft = true;
+ this.collideRight = true;
+ this.collideUp = true;
+ this.collideDown = true;
+ return;
+ }
+ if(collision & Phaser.Types.LEFT || collision & Phaser.Types.WALL) {
+ this.collideLeft = true;
+ }
+ if(collision & Phaser.Types.RIGHT || collision & Phaser.Types.WALL) {
+ this.collideRight = true;
+ }
+ if(collision & Phaser.Types.UP || collision & Phaser.Types.CEILING) {
+ this.collideUp = true;
+ }
+ if(collision & Phaser.Types.DOWN || collision & Phaser.Types.CEILING) {
+ this.collideDown = true;
+ }
+ };
+ Tile.prototype.resetCollision = function () {
+ this.allowCollisions = Phaser.Types.NONE;
+ this.collideLeft = false;
+ this.collideRight = false;
+ this.collideUp = false;
+ this.collideDown = false;
+ };
+ Tile.prototype.toString = function () {
+ return "[{Tile (index=" + this.index + " collisions=" + this.allowCollisions + " width=" + this.width + " height=" + this.height + ")}]";
+ };
+ return Tile;
+ })();
+ Phaser.Tile = Tile;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Tilemap = (function () {
+ function Tilemap(game, key, mapData, format, resizeWorld, tileWidth, tileHeight) {
+ if (typeof resizeWorld === "undefined") { resizeWorld = true; }
+ if (typeof tileWidth === "undefined") { tileWidth = 0; }
+ if (typeof tileHeight === "undefined") { tileHeight = 0; }
+ this.z = -1;
+ this.renderOrderID = 0;
+ this.collisionCallback = null;
+ this.game = game;
+ this.type = Phaser.Types.TILEMAP;
+ this.exists = true;
+ this.active = true;
+ this.visible = true;
+ this.alive = true;
+ this.z = -1;
+ this.group = null;
+ this.name = '';
+ this.texture = new Phaser.Display.Texture(this);
+ this.transform = new Phaser.Components.TransformManager(this);
+ this.tiles = [];
+ this.layers = [];
+ this.mapFormat = format;
+ switch(format) {
+ case Tilemap.FORMAT_CSV:
+ this.parseCSV(game.cache.getText(mapData), key, tileWidth, tileHeight);
+ break;
+ case Tilemap.FORMAT_TILED_JSON:
+ this.parseTiledJSON(game.cache.getText(mapData), key);
+ break;
+ }
+ if(this.currentLayer && resizeWorld) {
+ this.game.world.setSize(this.currentLayer.widthInPixels, this.currentLayer.heightInPixels, true);
+ }
+ }
+ Tilemap.FORMAT_CSV = 0;
+ Tilemap.FORMAT_TILED_JSON = 1;
+ Tilemap.prototype.parseCSV = function (data, key, tileWidth, tileHeight) {
+ var layer = new Phaser.TilemapLayer(this, 0, key, Tilemap.FORMAT_CSV, 'TileLayerCSV' + this.layers.length.toString(), tileWidth, tileHeight);
+ data = data.trim();
+ var rows = data.split("\n");
+ for(var i = 0; i < rows.length; i++) {
+ var column = rows[i].split(",");
+ if(column.length > 0) {
+ layer.addColumn(column);
+ }
+ }
+ layer.updateBounds();
+ var tileQuantity = layer.parseTileOffsets();
+ this.currentLayer = layer;
+ this.collisionLayer = layer;
+ this.layers.push(layer);
+ this.generateTiles(tileQuantity);
+ };
+ Tilemap.prototype.parseTiledJSON = function (data, key) {
+ data = data.trim();
+ var json = JSON.parse(data);
+ for(var i = 0; i < json.layers.length; i++) {
+ var layer = new Phaser.TilemapLayer(this, i, key, Tilemap.FORMAT_TILED_JSON, json.layers[i].name, json.tilewidth, json.tileheight);
+ if(!json.layers[i].data) {
+ continue;
+ }
+ layer.alpha = json.layers[i].opacity;
+ layer.visible = json.layers[i].visible;
+ layer.tileMargin = json.tilesets[0].margin;
+ layer.tileSpacing = json.tilesets[0].spacing;
+ var c = 0;
+ var row;
+ for(var t = 0; t < json.layers[i].data.length; t++) {
+ if(c == 0) {
+ row = [];
+ }
+ row.push(json.layers[i].data[t]);
+ c++;
+ if(c == json.layers[i].width) {
+ layer.addColumn(row);
+ c = 0;
+ }
+ }
+ layer.updateBounds();
+ var tileQuantity = layer.parseTileOffsets();
+ this.currentLayer = layer;
+ this.collisionLayer = layer;
+ this.layers.push(layer);
+ }
+ this.generateTiles(tileQuantity);
+ };
+ Tilemap.prototype.generateTiles = function (qty) {
+ for(var i = 0; i < qty; i++) {
+ this.tiles.push(new Phaser.Tile(this.game, this, i, this.currentLayer.tileWidth, this.currentLayer.tileHeight));
+ }
+ };
+ Object.defineProperty(Tilemap.prototype, "widthInPixels", {
+ get: function () {
+ return this.currentLayer.widthInPixels;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Tilemap.prototype, "heightInPixels", {
+ get: function () {
+ return this.currentLayer.heightInPixels;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Tilemap.prototype.setCollisionCallback = function (context, callback) {
+ this.collisionCallbackContext = context;
+ this.collisionCallback = callback;
+ };
+ Tilemap.prototype.setCollisionRange = function (start, end, collision, resetCollisions, separateX, separateY) {
+ if (typeof collision === "undefined") { collision = Phaser.Types.ANY; }
+ if (typeof resetCollisions === "undefined") { resetCollisions = false; }
+ if (typeof separateX === "undefined") { separateX = true; }
+ if (typeof separateY === "undefined") { separateY = true; }
+ for(var i = start; i < end; i++) {
+ this.tiles[i].setCollision(collision, resetCollisions, separateX, separateY);
+ }
+ };
+ Tilemap.prototype.setCollisionByIndex = function (values, collision, resetCollisions, separateX, separateY) {
+ if (typeof collision === "undefined") { collision = Phaser.Types.ANY; }
+ if (typeof resetCollisions === "undefined") { resetCollisions = false; }
+ if (typeof separateX === "undefined") { separateX = true; }
+ if (typeof separateY === "undefined") { separateY = true; }
+ for(var i = 0; i < values.length; i++) {
+ this.tiles[values[i]].setCollision(collision, resetCollisions, separateX, separateY);
+ }
+ };
+ Tilemap.prototype.getTileByIndex = function (value) {
+ if(this.tiles[value]) {
+ return this.tiles[value];
+ }
+ return null;
+ };
+ Tilemap.prototype.getTile = function (x, y, layer) {
+ if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
+ return this.tiles[this.layers[layer].getTileIndex(x, y)];
+ };
+ Tilemap.prototype.getTileFromWorldXY = function (x, y, layer) {
+ if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
+ return this.tiles[this.layers[layer].getTileFromWorldXY(x, y)];
+ };
+ Tilemap.prototype.getTileFromInputXY = function (layer) {
+ if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
+ return this.tiles[this.layers[layer].getTileFromWorldXY(this.game.input.worldX, this.game.input.worldY)];
+ };
+ Tilemap.prototype.getTileOverlaps = function (object) {
+ return this.currentLayer.getTileOverlaps(object);
+ };
+ Tilemap.prototype.collide = function (objectOrGroup, callback, context) {
+ if (typeof objectOrGroup === "undefined") { objectOrGroup = null; }
+ if (typeof callback === "undefined") { callback = null; }
+ if (typeof context === "undefined") { context = null; }
+ if(callback !== null && context !== null) {
+ this.collisionCallback = callback;
+ this.collisionCallbackContext = context;
+ }
+ if(objectOrGroup == null) {
+ objectOrGroup = this.game.world.group;
+ }
+ if(objectOrGroup.isGroup == false) {
+ this.collideGameObject(objectOrGroup);
+ } else {
+ objectOrGroup.forEachAlive(this, this.collideGameObject, true);
+ }
+ };
+ Tilemap.prototype.collideGameObject = function (object) {
+ if(object.body.type == Phaser.Types.BODY_DYNAMIC && object.exists == true && object.body.allowCollisions != Phaser.Types.NONE) {
+ this._tempCollisionData = this.collisionLayer.getTileOverlaps(object);
+ if(this.collisionCallback !== null && this._tempCollisionData.length > 0) {
+ this.collisionCallback.call(this.collisionCallbackContext, object, this._tempCollisionData);
+ }
+ return true;
+ } else {
+ return false;
+ }
+ };
+ Tilemap.prototype.putTile = function (x, y, index, layer) {
+ if (typeof layer === "undefined") { layer = this.currentLayer.ID; }
+ this.layers[layer].putTile(x, y, index);
+ };
+ Tilemap.prototype.preUpdate = function () {
+ };
+ Tilemap.prototype.update = function () {
+ };
+ Tilemap.prototype.postUpdate = function () {
+ };
+ Tilemap.prototype.destroy = function () {
+ this.texture = null;
+ this.transform = null;
+ this.tiles.length = 0;
+ this.layers.length = 0;
+ };
+ return Tilemap;
+ })();
+ Phaser.Tilemap = Tilemap;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var TilemapLayer = (function () {
+ function TilemapLayer(parent, id, key, mapFormat, name, tileWidth, tileHeight) {
+ this.exists = true;
+ this.visible = true;
+ this.widthInTiles = 0;
+ this.heightInTiles = 0;
+ this.widthInPixels = 0;
+ this.heightInPixels = 0;
+ this.tileMargin = 0;
+ this.tileSpacing = 0;
+ this.parent = parent;
+ this.game = parent.game;
+ this.ID = id;
+ this.name = name;
+ this.mapFormat = mapFormat;
+ this.tileWidth = tileWidth;
+ this.tileHeight = tileHeight;
+ this.boundsInTiles = new Phaser.Rectangle();
+ this.texture = new Phaser.Display.Texture(this);
+ this.transform = new Phaser.Components.TransformManager(this);
+ if(key !== null) {
+ this.texture.loadImage(key, false);
+ } else {
+ this.texture.opaque = true;
+ }
+ this.alpha = this.texture.alpha;
+ this.mapData = [];
+ this._tempTileBlock = [];
+ }
+ TilemapLayer.prototype.putTileWorldXY = function (x, y, index) {
+ x = this.game.math.snapToFloor(x, this.tileWidth) / this.tileWidth;
+ y = this.game.math.snapToFloor(y, this.tileHeight) / this.tileHeight;
+ if(y >= 0 && y < this.mapData.length) {
+ if(x >= 0 && x < this.mapData[y].length) {
+ this.mapData[y][x] = index;
+ }
+ }
+ };
+ TilemapLayer.prototype.putTile = function (x, y, index) {
+ if(y >= 0 && y < this.mapData.length) {
+ if(x >= 0 && x < this.mapData[y].length) {
+ this.mapData[y][x] = index;
+ }
+ }
+ };
+ TilemapLayer.prototype.swapTile = function (tileA, tileB, x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = this.widthInTiles; }
+ if (typeof height === "undefined") { height = this.heightInTiles; }
+ this.getTempBlock(x, y, width, height);
+ for(var r = 0; r < this._tempTileBlock.length; r++) {
+ if(this._tempTileBlock[r].tile.index == tileA) {
+ this._tempTileBlock[r].newIndex = true;
+ }
+ if(this._tempTileBlock[r].tile.index == tileB) {
+ this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = tileA;
+ }
+ }
+ for(var r = 0; r < this._tempTileBlock.length; r++) {
+ if(this._tempTileBlock[r].newIndex == true) {
+ this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = tileB;
+ }
+ }
+ };
+ TilemapLayer.prototype.fillTile = function (index, x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = this.widthInTiles; }
+ if (typeof height === "undefined") { height = this.heightInTiles; }
+ this.getTempBlock(x, y, width, height);
+ for(var r = 0; r < this._tempTileBlock.length; r++) {
+ this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = index;
+ }
+ };
+ TilemapLayer.prototype.randomiseTiles = function (tiles, x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = this.widthInTiles; }
+ if (typeof height === "undefined") { height = this.heightInTiles; }
+ this.getTempBlock(x, y, width, height);
+ for(var r = 0; r < this._tempTileBlock.length; r++) {
+ this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = this.game.math.getRandom(tiles);
+ }
+ };
+ TilemapLayer.prototype.replaceTile = function (tileA, tileB, x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = this.widthInTiles; }
+ if (typeof height === "undefined") { height = this.heightInTiles; }
+ this.getTempBlock(x, y, width, height);
+ for(var r = 0; r < this._tempTileBlock.length; r++) {
+ if(this._tempTileBlock[r].tile.index == tileA) {
+ this.mapData[this._tempTileBlock[r].y][this._tempTileBlock[r].x] = tileB;
+ }
+ }
+ };
+ TilemapLayer.prototype.getTileBlock = function (x, y, width, height) {
+ var output = [];
+ this.getTempBlock(x, y, width, height);
+ for(var r = 0; r < this._tempTileBlock.length; r++) {
+ output.push({
+ x: this._tempTileBlock[r].x,
+ y: this._tempTileBlock[r].y,
+ tile: this._tempTileBlock[r].tile
+ });
+ }
+ return output;
+ };
+ TilemapLayer.prototype.getTileFromWorldXY = function (x, y) {
+ x = this.game.math.snapToFloor(x, this.tileWidth) / this.tileWidth;
+ y = this.game.math.snapToFloor(y, this.tileHeight) / this.tileHeight;
+ return this.getTileIndex(x, y);
+ };
+ TilemapLayer.prototype.getTileOverlaps = function (object) {
+ if(object.body.bounds.x < 0 || object.body.bounds.x > this.widthInPixels || object.body.bounds.y < 0 || object.body.bounds.bottom > this.heightInPixels) {
+ return;
+ }
+ this._tempTileX = this.game.math.snapToFloor(object.body.bounds.x, this.tileWidth) / this.tileWidth;
+ this._tempTileY = this.game.math.snapToFloor(object.body.bounds.y, this.tileHeight) / this.tileHeight;
+ this._tempTileW = (this.game.math.snapToCeil(object.body.bounds.width, this.tileWidth) + this.tileWidth) / this.tileWidth;
+ this._tempTileH = (this.game.math.snapToCeil(object.body.bounds.height, this.tileHeight) + this.tileHeight) / this.tileHeight;
+ this._tempBlockResults = [];
+ this.getTempBlock(this._tempTileX, this._tempTileY, this._tempTileW, this._tempTileH, true);
+ return this._tempBlockResults;
+ };
+ TilemapLayer.prototype.getTempBlock = function (x, y, width, height, collisionOnly) {
+ if (typeof collisionOnly === "undefined") { collisionOnly = false; }
+ if(x < 0) {
+ x = 0;
+ }
+ if(y < 0) {
+ y = 0;
+ }
+ if(width > this.widthInTiles) {
+ width = this.widthInTiles;
+ }
+ if(height > this.heightInTiles) {
+ height = this.heightInTiles;
+ }
+ this._tempTileBlock = [];
+ for(var ty = y; ty < y + height; ty++) {
+ for(var tx = x; tx < x + width; tx++) {
+ if(collisionOnly) {
+ if(this.mapData[ty] && this.mapData[ty][tx] && this.parent.tiles[this.mapData[ty][tx]].allowCollisions != Phaser.Types.NONE) {
+ this._tempTileBlock.push({
+ x: tx,
+ y: ty,
+ tile: this.parent.tiles[this.mapData[ty][tx]]
+ });
+ }
+ } else {
+ if(this.mapData[ty] && this.mapData[ty][tx]) {
+ this._tempTileBlock.push({
+ x: tx,
+ y: ty,
+ tile: this.parent.tiles[this.mapData[ty][tx]]
+ });
+ }
+ }
+ }
+ }
+ };
+ TilemapLayer.prototype.getTileIndex = function (x, y) {
+ if(y >= 0 && y < this.mapData.length) {
+ if(x >= 0 && x < this.mapData[y].length) {
+ return this.mapData[y][x];
+ }
+ }
+ return null;
+ };
+ TilemapLayer.prototype.addColumn = function (column) {
+ var data = [];
+ for(var c = 0; c < column.length; c++) {
+ data[c] = parseInt(column[c]);
+ }
+ if(this.widthInTiles == 0) {
+ this.widthInTiles = data.length;
+ this.widthInPixels = this.widthInTiles * this.tileWidth;
+ }
+ this.mapData.push(data);
+ this.heightInTiles++;
+ this.heightInPixels += this.tileHeight;
+ };
+ TilemapLayer.prototype.updateBounds = function () {
+ this.boundsInTiles.setTo(0, 0, this.widthInTiles, this.heightInTiles);
+ };
+ TilemapLayer.prototype.parseTileOffsets = function () {
+ this.tileOffsets = [];
+ var i = 0;
+ if(this.mapFormat == Phaser.Tilemap.FORMAT_TILED_JSON) {
+ this.tileOffsets[0] = null;
+ i = 1;
+ }
+ for(var ty = this.tileMargin; ty < this.texture.height; ty += (this.tileHeight + this.tileSpacing)) {
+ for(var tx = this.tileMargin; tx < this.texture.width; tx += (this.tileWidth + this.tileSpacing)) {
+ this.tileOffsets[i] = {
+ x: tx,
+ y: ty
+ };
+ i++;
+ }
+ }
+ return this.tileOffsets.length;
+ };
+ return TilemapLayer;
+ })();
+ Phaser.TilemapLayer = TilemapLayer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ var PhysicsManager = (function () {
+ function PhysicsManager(game) {
+ this._length = 0;
+ this.grav = 0.2;
+ this.drag = 1;
+ this.bounce = 0.3;
+ this.friction = 0.05;
+ this.min_f = 0;
+ this.max_f = 1;
+ this.min_b = 0;
+ this.max_b = 1;
+ this.min_g = 0;
+ this.max_g = 1;
+ this.xmin = 0;
+ this.xmax = 800;
+ this.ymin = 0;
+ this.ymax = 600;
+ this.objrad = 24;
+ this.tilerad = 24 * 2;
+ this.objspeed = 0.2;
+ this.maxspeed = 20;
+ this.game = game;
+ }
+ PhysicsManager.prototype.update = function () {
+ };
+ PhysicsManager.prototype.updateMotion = function (body) {
+ this._velocityDelta = (this.computeVelocity(body.angularVelocity, body.gravity.x, body.angularAcceleration, body.angularDrag, body.maxAngular) - body.angularVelocity) / 2;
+ body.angularVelocity += this._velocityDelta;
+ body.sprite.transform.rotation += body.angularVelocity * this.game.time.physicsElapsed;
+ body.angularVelocity += this._velocityDelta;
+ this._velocityDelta = (this.computeVelocity(body.velocity.x, body.gravity.x, body.acceleration.x, body.drag.x) - body.velocity.x) / 2;
+ body.velocity.x += this._velocityDelta;
+ this._delta = body.velocity.x * this.game.time.physicsElapsed;
+ body.aabb.pos.x += this._delta;
+ body.deltaX = this._delta;
+ this._velocityDelta = (this.computeVelocity(body.velocity.y, body.gravity.y, body.acceleration.y, body.drag.y) - body.velocity.y) / 2;
+ body.velocity.y += this._velocityDelta;
+ this._delta = body.velocity.y * this.game.time.physicsElapsed;
+ body.aabb.pos.y += this._delta;
+ body.deltaY = this._delta;
+ };
+ PhysicsManager.prototype.computeVelocity = function (velocity, gravity, acceleration, drag, max) {
+ if (typeof gravity === "undefined") { gravity = 0; }
+ if (typeof acceleration === "undefined") { acceleration = 0; }
+ if (typeof drag === "undefined") { drag = 0; }
+ if (typeof max === "undefined") { max = 10000; }
+ if(acceleration !== 0) {
+ velocity += (acceleration + gravity) * this.game.time.physicsElapsed;
+ } else if(drag !== 0) {
+ this._drag = drag * this.game.time.physicsElapsed;
+ if(velocity - this._drag > 0) {
+ velocity = velocity - this._drag;
+ } else if(velocity + this._drag < 0) {
+ velocity += this._drag;
+ } else {
+ velocity = 0;
+ }
+ }
+ velocity += gravity;
+ if(velocity != 0) {
+ if(velocity > max) {
+ velocity = max;
+ } else if(velocity < -max) {
+ velocity = -max;
+ }
+ }
+ return velocity;
+ };
+ return PhysicsManager;
+ })();
+ Physics.PhysicsManager = PhysicsManager;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ var Body = (function () {
+ function Body(sprite, type) {
+ this.angularVelocity = 0;
+ this.angularAcceleration = 0;
+ this.angularDrag = 0;
+ this.maxAngular = 10000;
+ this.deltaX = 0;
+ this.deltaY = 0;
+ this.sprite = sprite;
+ this.game = sprite.game;
+ this.type = type;
+ this.aabb = new Phaser.Physics.AABB(sprite.game, sprite.x, sprite.y, sprite.width, sprite.height);
+ this.velocity = new Phaser.Vec2();
+ this.acceleration = new Phaser.Vec2();
+ this.drag = new Phaser.Vec2();
+ this.gravity = new Phaser.Vec2();
+ this.maxVelocity = new Phaser.Vec2(10000, 10000);
+ this.angularVelocity = 0;
+ this.angularAcceleration = 0;
+ this.angularDrag = 0;
+ this.maxAngular = 10000;
+ this.allowCollisions = Phaser.Types.ANY;
+ }
+ return Body;
+ })();
+ Physics.Body = Body;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ var AABB = (function () {
+ function AABB(game, x, y, width, height) {
+ this.type = 0;
+ this._vx = 0;
+ this._vy = 0;
+ this._deltaX = 0;
+ this._deltaY = 0;
+ this.game = game;
+ this.pos = new Phaser.Vec2(x, y);
+ this.oldpos = new Phaser.Vec2(x, y);
+ this.width = Math.abs(width);
+ this.height = Math.abs(height);
+ this.velocity = new Phaser.Vec2();
+ this.acceleration = new Phaser.Vec2();
+ this.bounce = new Phaser.Vec2(0, 0);
+ this.drag = new Phaser.Vec2(0, 0);
+ this.gravity = new Phaser.Vec2(0, 2);
+ this.maxVelocity = new Phaser.Vec2(1000, 1000);
+ this.aabbTileProjections = {
+ };
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGs] = Phaser.Physics.Projection.AABB22Deg.CollideS;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGb] = Phaser.Physics.Projection.AABB22Deg.CollideB;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_45DEG] = Phaser.Physics.Projection.AABB45Deg.Collide;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGs] = Phaser.Physics.Projection.AABB67Deg.CollideS;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGb] = Phaser.Physics.Projection.AABB67Deg.CollideB;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONCAVE] = Phaser.Physics.Projection.AABBConcave.Collide;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONVEX] = Phaser.Physics.Projection.AABBConvex.Collide;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_FULL] = Phaser.Physics.Projection.AABBFull.Collide;
+ this.aabbTileProjections[Phaser.Physics.TileMapCell.CTYPE_HALF] = Phaser.Physics.Projection.AABBHalf.Collide;
+ }
+ AABB.COL_NONE = 0;
+ AABB.COL_AXIS = 1;
+ AABB.COL_OTHER = 2;
+ AABB.prototype.update = function () {
+ this.oldpos.x = this.pos.x;
+ this.oldpos.y = this.pos.y;
+ this._vx = (this.game.physics.computeVelocity(this.velocity.x, this.gravity.x, this.acceleration.x, this.drag.x, this.maxVelocity.x) - this.velocity.x) / 2;
+ this.velocity.x += this._vx;
+ this._deltaX = this.velocity.x * this.game.time.physicsElapsed;
+ this._vy = (this.game.physics.computeVelocity(this.velocity.y, this.gravity.y, this.acceleration.y, this.drag.y, this.maxVelocity.y) - this.velocity.y) / 2;
+ this.velocity.y += this._vy;
+ this._deltaY = this.velocity.y * this.game.time.physicsElapsed;
+ this.pos.x += this._deltaX;
+ this.pos.y += this._deltaY;
+ };
+ AABB.prototype.FFupdate = function () {
+ this.oldpos.x = this.pos.x;
+ this.oldpos.y = this.pos.y;
+ if(this.acceleration.x != 0) {
+ this.velocity.x += (this.acceleration.x / 1000 * this.game.time.delta);
+ }
+ if(this.acceleration.y != 0) {
+ this.velocity.y += (this.acceleration.y / 1000 * this.game.time.delta);
+ }
+ this._vx = ((this.velocity.x / 1000) * this.game.time.delta);
+ this._vy = ((this.velocity.y / 1000) * this.game.time.delta);
+ if(this._vx != 0) {
+ if(this.drag.x != 0) {
+ this._vx * this.drag.x;
+ }
+ if(this.gravity.x != 0) {
+ this._vx * this.gravity.x;
+ }
+ if(this.velocity.x > this.maxVelocity.x) {
+ this.velocity.x = this.maxVelocity.x;
+ } else if(this.velocity.x < -this.maxVelocity.x) {
+ this.velocity.x = -this.maxVelocity.x;
+ }
+ }
+ if(this._vy != 0) {
+ if(this.drag.y != 0) {
+ this._vy * this.drag.y;
+ }
+ if(this.gravity.y != 0) {
+ this._vy * this.gravity.y;
+ }
+ if(this.velocity.y > this.maxVelocity.y) {
+ this.velocity.y = this.maxVelocity.y;
+ } else if(this.velocity.y < -this.maxVelocity.y) {
+ this.velocity.y = -this.maxVelocity.y;
+ }
+ }
+ this.pos.x += this._vx;
+ this.pos.y += this._vy;
+ };
+ AABB.prototype.integrateVerlet = function () {
+ var px = this.pos.x;
+ var py = this.pos.y;
+ var ox = this.oldpos.x;
+ var oy = this.oldpos.y;
+ this.oldpos.x = this.pos.x;
+ this.oldpos.y = this.pos.y;
+ this.pos.x += (this.drag.x * px) - (this.drag.x * ox) + this.gravity.x;
+ this.pos.y += (this.drag.y * py) - (this.drag.y * oy) + this.gravity.y;
+ };
+ AABB.prototype.reportCollisionVsWorld = function (px, py, dx, dy, obj) {
+ if (typeof obj === "undefined") { obj = null; }
+ var dp = (this._vx * dx + this._vy * dy);
+ var nx = dp * dx;
+ var ny = dp * dy;
+ var tx = this._vx - nx;
+ var ty = this._vy - ny;
+ this.pos.x += px;
+ this.pos.y += py;
+ if(dp < 0) {
+ this.velocity.x += nx;
+ this.velocity.y += ny;
+ if(dx !== 0) {
+ }
+ if(dy !== 0) {
+ }
+ }
+ };
+ AABB.prototype.collideAABBVsTile = function (tile) {
+ var pos = this.pos;
+ var c = tile;
+ var tx = c.pos.x;
+ var ty = c.pos.y;
+ var txw = c.xw;
+ var tyw = c.yw;
+ var dx = pos.x - tx;
+ var px = (txw + this.width) - Math.abs(dx);
+ if(0 < px) {
+ var dy = pos.y - ty;
+ var py = (tyw + this.height) - Math.abs(dy);
+ if(0 < py) {
+ if(px < py) {
+ if(dx < 0) {
+ px *= -1;
+ py = 0;
+ } else {
+ py = 0;
+ }
+ } else {
+ if(dy < 0) {
+ px = 0;
+ py *= -1;
+ } else {
+ px = 0;
+ }
+ }
+ this.resolveBoxTile(px, py, this, c);
+ }
+ }
+ };
+ AABB.prototype.collideAABBVsWorldBounds = function () {
+ var p = this.pos;
+ var xw = this.width;
+ var yw = this.height;
+ var XMIN = 0;
+ var XMAX = 800;
+ var YMIN = 0;
+ var YMAX = 600;
+ var dx = XMIN - (p.x - xw);
+ if(0 < dx) {
+ this.reportCollisionVsWorld(dx, 0, 1, 0, null);
+ } else {
+ dx = (p.x + xw) - XMAX;
+ if(0 < dx) {
+ this.reportCollisionVsWorld(-dx, 0, -1, 0, null);
+ }
+ }
+ var dy = YMIN - (p.y - yw);
+ if(0 < dy) {
+ this.reportCollisionVsWorld(0, dy, 0, 1, null);
+ } else {
+ dy = (p.y + yw) - YMAX;
+ if(0 < dy) {
+ this.reportCollisionVsWorld(0, -dy, 0, -1, null);
+ }
+ }
+ };
+ AABB.prototype.resolveBoxTile = function (x, y, box, t) {
+ if(0 < t.ID) {
+ return this.aabbTileProjections[t.CTYPE](x, y, box, t);
+ } else {
+ return false;
+ }
+ };
+ AABB.prototype.render = function (context) {
+ context.beginPath();
+ context.strokeStyle = 'rgb(0,255,0)';
+ context.strokeRect(this.pos.x - this.width, this.pos.y - this.height, this.width * 2, this.height * 2);
+ context.stroke();
+ context.closePath();
+ context.fillStyle = 'rgb(0,255,0)';
+ context.fillRect(this.pos.x, this.pos.y, 2, 2);
+ };
+ return AABB;
+ })();
+ Physics.AABB = AABB;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ var Circle = (function () {
+ function Circle(game, x, y, radius) {
+ this.type = 1;
+ this.game = game;
+ this.pos = new Phaser.Vec2(x, y);
+ this.oldpos = new Phaser.Vec2(x, y);
+ this.radius = radius;
+ this.circleTileProjections = {
+ };
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGs] = Phaser.Physics.Projection.Circle22Deg.CollideS;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_22DEGb] = Phaser.Physics.Projection.Circle22Deg.CollideB;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_45DEG] = Phaser.Physics.Projection.Circle45Deg.Collide;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGs] = Phaser.Physics.Projection.Circle67Deg.CollideS;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_67DEGb] = Phaser.Physics.Projection.Circle67Deg.CollideB;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONCAVE] = Phaser.Physics.Projection.CircleConcave.Collide;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_CONVEX] = Phaser.Physics.Projection.CircleConvex.Collide;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_FULL] = Phaser.Physics.Projection.CircleFull.Collide;
+ this.circleTileProjections[Phaser.Physics.TileMapCell.CTYPE_HALF] = Phaser.Physics.Projection.CircleHalf.Collide;
+ }
+ Circle.COL_NONE = 0;
+ Circle.COL_AXIS = 1;
+ Circle.COL_OTHER = 2;
+ Circle.prototype.integrateVerlet = function () {
+ var d = 1;
+ var g = 0.2;
+ var p = this.pos;
+ var o = this.oldpos;
+ var px;
+ var py;
+ var ox = o.x;
+ var oy = o.y;
+ o.x = px = p.x;
+ o.y = py = p.y;
+ p.x += (d * px) - (d * ox);
+ p.y += (d * py) - (d * oy) + g;
+ };
+ Circle.prototype.reportCollisionVsWorld = function (px, py, dx, dy, obj) {
+ if (typeof obj === "undefined") { obj = null; }
+ var p = this.pos;
+ var o = this.oldpos;
+ var vx = p.x - o.x;
+ var vy = p.y - o.y;
+ var dp = (vx * dx + vy * dy);
+ var nx = dp * dx;
+ var ny = dp * dy;
+ var tx = vx - nx;
+ var ty = vy - ny;
+ var b, bx, by, f, fx, fy;
+ if(dp < 0) {
+ f = 0.05;
+ fx = tx * f;
+ fy = ty * f;
+ b = 1 + 0.3;
+ bx = (nx * b);
+ by = (ny * b);
+ } else {
+ bx = by = fx = fy = 0;
+ }
+ p.x += px;
+ p.y += py;
+ o.x += px + bx + fx;
+ o.y += py + by + fy;
+ };
+ Circle.prototype.collideCircleVsWorldBounds = function () {
+ var p = this.pos;
+ var r = this.radius;
+ var XMIN = 0;
+ var XMAX = 800;
+ var YMIN = 0;
+ var YMAX = 600;
+ var dx = XMIN - (p.x - r);
+ if(0 < dx) {
+ this.reportCollisionVsWorld(dx, 0, 1, 0, null);
+ } else {
+ dx = (p.x + r) - XMAX;
+ if(0 < dx) {
+ this.reportCollisionVsWorld(-dx, 0, -1, 0, null);
+ }
+ }
+ var dy = YMIN - (p.y - r);
+ if(0 < dy) {
+ this.reportCollisionVsWorld(0, dy, 0, 1, null);
+ } else {
+ dy = (p.y + r) - YMAX;
+ if(0 < dy) {
+ this.reportCollisionVsWorld(0, -dy, 0, -1, null);
+ }
+ }
+ };
+ Circle.prototype.render = function (context) {
+ context.beginPath();
+ context.strokeStyle = 'rgb(0,255,0)';
+ context.arc(this.pos.x, this.pos.y, this.radius, 0, Math.PI * 2);
+ context.stroke();
+ context.closePath();
+ if(this.oH == 1) {
+ context.beginPath();
+ context.strokeStyle = 'rgb(255,0,0)';
+ context.moveTo(this.pos.x - this.radius, this.pos.y - this.radius);
+ context.lineTo(this.pos.x - this.radius, this.pos.y + this.radius);
+ context.stroke();
+ context.closePath();
+ } else if(this.oH == -1) {
+ context.beginPath();
+ context.strokeStyle = 'rgb(255,0,0)';
+ context.moveTo(this.pos.x + this.radius, this.pos.y - this.radius);
+ context.lineTo(this.pos.x + this.radius, this.pos.y + this.radius);
+ context.stroke();
+ context.closePath();
+ }
+ if(this.oV == 1) {
+ context.beginPath();
+ context.strokeStyle = 'rgb(255,0,0)';
+ context.moveTo(this.pos.x - this.radius, this.pos.y - this.radius);
+ context.lineTo(this.pos.x + this.radius, this.pos.y - this.radius);
+ context.stroke();
+ context.closePath();
+ } else if(this.oV == -1) {
+ context.beginPath();
+ context.strokeStyle = 'rgb(255,0,0)';
+ context.moveTo(this.pos.x - this.radius, this.pos.y + this.radius);
+ context.lineTo(this.pos.x + this.radius, this.pos.y + this.radius);
+ context.stroke();
+ context.closePath();
+ }
+ };
+ Circle.prototype.collideCircleVsTile = function (tile) {
+ var pos = this.pos;
+ var r = this.radius;
+ var c = tile;
+ var tx = c.pos.x;
+ var ty = c.pos.y;
+ var txw = c.xw;
+ var tyw = c.yw;
+ var dx = pos.x - tx;
+ var px = (txw + r) - Math.abs(dx);
+ if(0 < px) {
+ var dy = pos.y - ty;
+ var py = (tyw + r) - Math.abs(dy);
+ if(0 < py) {
+ this.oH = 0;
+ this.oV = 0;
+ if(dx < -txw) {
+ this.oH = -1;
+ } else if(txw < dx) {
+ this.oH = 1;
+ }
+ if(dy < -tyw) {
+ this.oV = -1;
+ } else if(tyw < dy) {
+ this.oV = 1;
+ }
+ this.resolveCircleTile(px, py, this.oH, this.oV, this, c);
+ }
+ }
+ };
+ Circle.prototype.resolveCircleTile = function (x, y, oH, oV, obj, t) {
+ if(0 < t.ID) {
+ return this.circleTileProjections[t.CTYPE](x, y, oH, oV, obj, t);
+ } else {
+ console.log("resolveCircleTile() was called with an empty (or unknown) tile!: ID=" + t.ID + " (" + t.i + "," + t.j + ")");
+ return false;
+ }
+ };
+ return Circle;
+ })();
+ Physics.Circle = Circle;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ var TileMapCell = (function () {
+ function TileMapCell(game, x, y, xw, yw) {
+ this.game = game;
+ this.ID = TileMapCell.TID_EMPTY;
+ this.CTYPE = TileMapCell.CTYPE_EMPTY;
+ this.pos = new Phaser.Vec2(x, y);
+ this.xw = xw;
+ this.yw = yw;
+ this.minx = this.pos.x - this.xw;
+ this.maxx = this.pos.x + this.xw;
+ this.miny = this.pos.y - this.yw;
+ this.maxy = this.pos.y + this.yw;
+ this.signx = 0;
+ this.signy = 0;
+ this.sx = 0;
+ this.sy = 0;
+ }
+ TileMapCell.TID_EMPTY = 0;
+ TileMapCell.TID_FULL = 1;
+ TileMapCell.TID_45DEGpn = 2;
+ TileMapCell.TID_45DEGnn = 3;
+ TileMapCell.TID_45DEGnp = 4;
+ TileMapCell.TID_45DEGpp = 5;
+ TileMapCell.TID_CONCAVEpn = 6;
+ TileMapCell.TID_CONCAVEnn = 7;
+ TileMapCell.TID_CONCAVEnp = 8;
+ TileMapCell.TID_CONCAVEpp = 9;
+ TileMapCell.TID_CONVEXpn = 10;
+ TileMapCell.TID_CONVEXnn = 11;
+ TileMapCell.TID_CONVEXnp = 12;
+ TileMapCell.TID_CONVEXpp = 13;
+ TileMapCell.TID_22DEGpnS = 14;
+ TileMapCell.TID_22DEGnnS = 15;
+ TileMapCell.TID_22DEGnpS = 16;
+ TileMapCell.TID_22DEGppS = 17;
+ TileMapCell.TID_22DEGpnB = 18;
+ TileMapCell.TID_22DEGnnB = 19;
+ TileMapCell.TID_22DEGnpB = 20;
+ TileMapCell.TID_22DEGppB = 21;
+ TileMapCell.TID_67DEGpnS = 22;
+ TileMapCell.TID_67DEGnnS = 23;
+ TileMapCell.TID_67DEGnpS = 24;
+ TileMapCell.TID_67DEGppS = 25;
+ TileMapCell.TID_67DEGpnB = 26;
+ TileMapCell.TID_67DEGnnB = 27;
+ TileMapCell.TID_67DEGnpB = 28;
+ TileMapCell.TID_67DEGppB = 29;
+ TileMapCell.TID_HALFd = 30;
+ TileMapCell.TID_HALFr = 31;
+ TileMapCell.TID_HALFu = 32;
+ TileMapCell.TID_HALFl = 33;
+ TileMapCell.CTYPE_EMPTY = 0;
+ TileMapCell.CTYPE_FULL = 1;
+ TileMapCell.CTYPE_45DEG = 2;
+ TileMapCell.CTYPE_CONCAVE = 6;
+ TileMapCell.CTYPE_CONVEX = 10;
+ TileMapCell.CTYPE_22DEGs = 14;
+ TileMapCell.CTYPE_22DEGb = 18;
+ TileMapCell.CTYPE_67DEGs = 22;
+ TileMapCell.CTYPE_67DEGb = 26;
+ TileMapCell.CTYPE_HALF = 30;
+ TileMapCell.prototype.SetState = function (ID) {
+ if(ID == TileMapCell.TID_EMPTY) {
+ this.Clear();
+ } else {
+ this.ID = ID;
+ this.UpdateType();
+ }
+ return this;
+ };
+ TileMapCell.prototype.Clear = function () {
+ this.ID = TileMapCell.TID_EMPTY;
+ this.UpdateType();
+ };
+ TileMapCell.prototype.render = function (context) {
+ context.beginPath();
+ context.strokeStyle = 'rgb(255,255,0)';
+ context.strokeRect(this.minx, this.miny, this.xw * 2, this.yw * 2);
+ context.strokeRect(this.pos.x, this.pos.y, 2, 2);
+ context.closePath();
+ };
+ TileMapCell.prototype.UpdateType = function () {
+ if(0 < this.ID) {
+ if(this.ID < TileMapCell.CTYPE_45DEG) {
+ this.CTYPE = TileMapCell.CTYPE_FULL;
+ this.signx = 0;
+ this.signy = 0;
+ this.sx = 0;
+ this.sy = 0;
+ } else if(this.ID < TileMapCell.CTYPE_CONCAVE) {
+ this.CTYPE = TileMapCell.CTYPE_45DEG;
+ if(this.ID == TileMapCell.TID_45DEGpn) {
+ console.log('set tile as 45deg pn');
+ this.signx = 1;
+ this.signy = -1;
+ this.sx = this.signx / Math.SQRT2;
+ this.sy = this.signy / Math.SQRT2;
+ } else if(this.ID == TileMapCell.TID_45DEGnn) {
+ this.signx = -1;
+ this.signy = -1;
+ this.sx = this.signx / Math.SQRT2;
+ this.sy = this.signy / Math.SQRT2;
+ } else if(this.ID == TileMapCell.TID_45DEGnp) {
+ this.signx = -1;
+ this.signy = 1;
+ this.sx = this.signx / Math.SQRT2;
+ this.sy = this.signy / Math.SQRT2;
+ } else if(this.ID == TileMapCell.TID_45DEGpp) {
+ this.signx = 1;
+ this.signy = 1;
+ this.sx = this.signx / Math.SQRT2;
+ this.sy = this.signy / Math.SQRT2;
+ } else {
+ return false;
+ }
+ } else if(this.ID < TileMapCell.CTYPE_CONVEX) {
+ this.CTYPE = TileMapCell.CTYPE_CONCAVE;
+ if(this.ID == TileMapCell.TID_CONCAVEpn) {
+ this.signx = 1;
+ this.signy = -1;
+ this.sx = 0;
+ this.sy = 0;
+ } else if(this.ID == TileMapCell.TID_CONCAVEnn) {
+ this.signx = -1;
+ this.signy = -1;
+ this.sx = 0;
+ this.sy = 0;
+ } else if(this.ID == TileMapCell.TID_CONCAVEnp) {
+ this.signx = -1;
+ this.signy = 1;
+ this.sx = 0;
+ this.sy = 0;
+ } else if(this.ID == TileMapCell.TID_CONCAVEpp) {
+ this.signx = 1;
+ this.signy = 1;
+ this.sx = 0;
+ this.sy = 0;
+ } else {
+ return false;
+ }
+ } else if(this.ID < TileMapCell.CTYPE_22DEGs) {
+ this.CTYPE = TileMapCell.CTYPE_CONVEX;
+ if(this.ID == TileMapCell.TID_CONVEXpn) {
+ this.signx = 1;
+ this.signy = -1;
+ this.sx = 0;
+ this.sy = 0;
+ } else if(this.ID == TileMapCell.TID_CONVEXnn) {
+ this.signx = -1;
+ this.signy = -1;
+ this.sx = 0;
+ this.sy = 0;
+ } else if(this.ID == TileMapCell.TID_CONVEXnp) {
+ this.signx = -1;
+ this.signy = 1;
+ this.sx = 0;
+ this.sy = 0;
+ } else if(this.ID == TileMapCell.TID_CONVEXpp) {
+ this.signx = 1;
+ this.signy = 1;
+ this.sx = 0;
+ this.sy = 0;
+ } else {
+ return false;
+ }
+ } else if(this.ID < TileMapCell.CTYPE_22DEGb) {
+ this.CTYPE = TileMapCell.CTYPE_22DEGs;
+ if(this.ID == TileMapCell.TID_22DEGpnS) {
+ this.signx = 1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else if(this.ID == TileMapCell.TID_22DEGnnS) {
+ this.signx = -1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else if(this.ID == TileMapCell.TID_22DEGnpS) {
+ this.signx = -1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else if(this.ID == TileMapCell.TID_22DEGppS) {
+ this.signx = 1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else {
+ return false;
+ }
+ } else if(this.ID < TileMapCell.CTYPE_67DEGs) {
+ this.CTYPE = TileMapCell.CTYPE_22DEGb;
+ if(this.ID == TileMapCell.TID_22DEGpnB) {
+ this.signx = 1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else if(this.ID == TileMapCell.TID_22DEGnnB) {
+ this.signx = -1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else if(this.ID == TileMapCell.TID_22DEGnpB) {
+ this.signx = -1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else if(this.ID == TileMapCell.TID_22DEGppB) {
+ this.signx = 1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 1) / slen;
+ this.sy = (this.signy * 2) / slen;
+ } else {
+ return false;
+ }
+ } else if(this.ID < TileMapCell.CTYPE_67DEGb) {
+ this.CTYPE = TileMapCell.CTYPE_67DEGs;
+ if(this.ID == TileMapCell.TID_67DEGpnS) {
+ this.signx = 1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else if(this.ID == TileMapCell.TID_67DEGnnS) {
+ this.signx = -1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else if(this.ID == TileMapCell.TID_67DEGnpS) {
+ this.signx = -1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else if(this.ID == TileMapCell.TID_67DEGppS) {
+ this.signx = 1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else {
+ return false;
+ }
+ } else if(this.ID < TileMapCell.CTYPE_HALF) {
+ this.CTYPE = TileMapCell.CTYPE_67DEGb;
+ if(this.ID == TileMapCell.TID_67DEGpnB) {
+ this.signx = 1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else if(this.ID == TileMapCell.TID_67DEGnnB) {
+ this.signx = -1;
+ this.signy = -1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else if(this.ID == TileMapCell.TID_67DEGnpB) {
+ this.signx = -1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else if(this.ID == TileMapCell.TID_67DEGppB) {
+ this.signx = 1;
+ this.signy = 1;
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ this.sx = (this.signx * 2) / slen;
+ this.sy = (this.signy * 1) / slen;
+ } else {
+ return false;
+ }
+ } else {
+ this.CTYPE = TileMapCell.CTYPE_HALF;
+ if(this.ID == TileMapCell.TID_HALFd) {
+ this.signx = 0;
+ this.signy = -1;
+ this.sx = this.signx;
+ this.sy = this.signy;
+ } else if(this.ID == TileMapCell.TID_HALFu) {
+ this.signx = 0;
+ this.signy = 1;
+ this.sx = this.signx;
+ this.sy = this.signy;
+ } else if(this.ID == TileMapCell.TID_HALFl) {
+ this.signx = 1;
+ this.signy = 0;
+ this.sx = this.signx;
+ this.sy = this.signy;
+ } else if(this.ID == TileMapCell.TID_HALFr) {
+ this.signx = -1;
+ this.signy = 0;
+ this.sx = this.signx;
+ this.sy = this.signy;
+ } else {
+ return false;
+ }
+ }
+ } else {
+ this.CTYPE = TileMapCell.CTYPE_EMPTY;
+ this.signx = 0;
+ this.signy = 0;
+ this.sx = 0;
+ this.sy = 0;
+ }
+ };
+ return TileMapCell;
+ })();
+ Physics.TileMapCell = TileMapCell;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var AABB22Deg = (function () {
+ function AABB22Deg() { }
+ AABB22Deg.CollideS = function CollideS(x, y, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var py = obj.pos.y - (signy * obj.height);
+ var penY = t.pos.y - py;
+ if(0 < (penY * signy)) {
+ var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x + (signx * t.xw));
+ var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y - (signy * t.yw));
+ var sx = t.sx;
+ var sy = t.sy;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP = Math.sqrt(x * x + y * y);
+ var aY = Math.abs(penY);
+ if(lenP < lenN) {
+ if(aY < lenP) {
+ obj.reportCollisionVsWorld(0, penY, 0, penY / aY, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ } else {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ }
+ } else {
+ if(aY < lenN) {
+ obj.reportCollisionVsWorld(0, penY, 0, penY / aY, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ }
+ }
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ AABB22Deg.CollideB = function CollideB(x, y, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x - (signx * t.xw));
+ var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y + (signy * t.yw));
+ var sx = t.sx;
+ var sy = t.sy;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP = Math.sqrt(x * x + y * y);
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ return AABB22Deg;
+ })();
+ Projection.AABB22Deg = AABB22Deg;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var AABB45Deg = (function () {
+ function AABB45Deg() { }
+ AABB45Deg.Collide = function Collide(x, y, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var ox = (obj.pos.x - (signx * obj.width)) - t.pos.x;
+ var oy = (obj.pos.y - (signy * obj.height)) - t.pos.y;
+ var sx = t.sx;
+ var sy = t.sy;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP = Math.sqrt(x * x + y * y);
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ return AABB45Deg;
+ })();
+ Projection.AABB45Deg = AABB45Deg;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var AABB67Deg = (function () {
+ function AABB67Deg() { }
+ AABB67Deg.CollideS = function CollideS(x, y, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var px = obj.pos.x - (signx * obj.width);
+ var penX = t.pos.x - px;
+ if(0 < (penX * signx)) {
+ var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x - (signx * t.xw));
+ var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y + (signy * t.yw));
+ var sx = t.sx;
+ var sy = t.sy;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP = Math.sqrt(x * x + y * y);
+ var aX = Math.abs(penX);
+ if(lenP < lenN) {
+ if(aX < lenP) {
+ obj.reportCollisionVsWorld(penX, 0, penX / aX, 0, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ } else {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ }
+ } else {
+ if(aX < lenN) {
+ obj.reportCollisionVsWorld(penX, 0, penX / aX, 0, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ }
+ }
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ AABB67Deg.CollideB = function CollideB(x, y, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x + (signx * t.xw));
+ var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y - (signy * t.yw));
+ var sx = t.sx;
+ var sy = t.sy;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP = Math.sqrt(x * x + y * y);
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ return AABB67Deg;
+ })();
+ Projection.AABB67Deg = AABB67Deg;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var AABBConcave = (function () {
+ function AABBConcave() { }
+ AABBConcave.Collide = function Collide(x, y, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var ox = (t.pos.x + (signx * t.xw)) - (obj.pos.x - (signx * obj.width));
+ var oy = (t.pos.y + (signy * t.yw)) - (obj.pos.y - (signy * obj.height));
+ var twid = t.xw * 2;
+ var rad = Math.sqrt(twid * twid + 0);
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = len - rad;
+ if(0 < pen) {
+ var lenP = Math.sqrt(x * x + y * y);
+ if(lenP < pen) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ } else {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ return AABBConcave;
+ })();
+ Projection.AABBConcave = AABBConcave;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var AABBConvex = (function () {
+ function AABBConvex() { }
+ AABBConvex.Collide = function Collide(x, y, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var ox = (obj.pos.x - (signx * obj.width)) - (t.pos.x - (signx * t.xw));
+ var oy = (obj.pos.y - (signy * obj.height)) - (t.pos.y - (signy * t.yw));
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var twid = t.xw * 2;
+ var rad = Math.sqrt(twid * twid + 0);
+ var pen = rad - len;
+ if(((signx * ox) < 0) || ((signy * oy) < 0)) {
+ var lenP = Math.sqrt(x * x + y * y);
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ } else if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ return AABBConvex;
+ })();
+ Projection.AABBConvex = AABBConvex;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var AABBFull = (function () {
+ function AABBFull() { }
+ AABBFull.Collide = function Collide(x, y, obj, t) {
+ var l = Math.sqrt(x * x + y * y);
+ obj.reportCollisionVsWorld(x, y, x / l, y / l, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ };
+ return AABBFull;
+ })();
+ Projection.AABBFull = AABBFull;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var AABBHalf = (function () {
+ function AABBHalf() { }
+ AABBHalf.Collide = function Collide(x, y, obj, t) {
+ var sx = t.signx;
+ var sy = t.signy;
+ var ox = (obj.pos.x - (sx * obj.width)) - t.pos.x;
+ var oy = (obj.pos.y - (sy * obj.height)) - t.pos.y;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP = Math.sqrt(x * x + y * y);
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.AABB.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.signx, t.signy, t);
+ return Phaser.Physics.AABB.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.AABB.COL_NONE;
+ };
+ return AABBHalf;
+ })();
+ Projection.AABBHalf = AABBHalf;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var Circle22Deg = (function () {
+ function Circle22Deg() { }
+ Circle22Deg.CollideS = function CollideS(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ if(0 < (signy * oV)) {
+ return Phaser.Physics.Circle.COL_NONE;
+ } else if(oH == 0) {
+ if(oV == 0) {
+ var sx = t.sx;
+ var sy = t.sy;
+ var r = obj.radius;
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - t.pos.y;
+ var perp = (ox * -sy) + (oy * sx);
+ if(0 < (perp * signx * signy)) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = r - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ ox -= r * sx;
+ oy -= r * sy;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP;
+ if(x < y) {
+ lenP = x;
+ y = 0;
+ if((obj.pos.x - t.pos.x) < 0) {
+ x *= -1;
+ }
+ } else {
+ lenP = y;
+ x = 0;
+ if((obj.pos.y - t.pos.y) < 0) {
+ y *= -1;
+ }
+ }
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ } else {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ }
+ } else if(oV == 0) {
+ if((signx * oH) < 0) {
+ var vx = t.pos.x - (signx * t.xw);
+ var vy = t.pos.y;
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ if((dy * signy) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ var sx = t.sx;
+ var sy = t.sy;
+ var ox = obj.pos.x - (t.pos.x + (oH * t.xw));
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var perp = (ox * -sy) + (oy * sx);
+ if((perp * signx * signy) < 0) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ Circle22Deg.CollideB = function CollideB(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var sx;
+ var sy;
+ if(oH == 0) {
+ if(oV == 0) {
+ sx = t.sx;
+ sy = t.sy;
+ var r = obj.radius;
+ var ox = (obj.pos.x - (sx * r)) - (t.pos.x - (signx * t.xw));
+ var oy = (obj.pos.y - (sy * r)) - (t.pos.y + (signy * t.yw));
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP;
+ if(x < y) {
+ lenP = x;
+ y = 0;
+ if((obj.pos.x - t.pos.x) < 0) {
+ x *= -1;
+ }
+ } else {
+ lenP = y;
+ x = 0;
+ if((obj.pos.y - t.pos.y) < 0) {
+ y *= -1;
+ }
+ }
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ if((signy * oV) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ sx = t.sx;
+ sy = t.sy;
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y + (signy * t.yw));
+ var perp = (ox * -sy) + (oy * sx);
+ if(0 < (perp * signx * signy)) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ }
+ } else if(oV == 0) {
+ if((signx * oH) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var ox = obj.pos.x - (t.pos.x + (signx * t.xw));
+ var oy = obj.pos.y - t.pos.y;
+ if((oy * signy) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ sx = t.sx;
+ sy = t.sy;
+ var perp = (ox * -sy) + (oy * sx);
+ if((perp * signx * signy) < 0) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ }
+ } else {
+ if(0 < ((signx * oH) + (signy * oV))) {
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ sx = (signx * 1) / slen;
+ sy = (signy * 2) / slen;
+ var r = obj.radius;
+ var ox = (obj.pos.x - (sx * r)) - (t.pos.x - (signx * t.xw));
+ var oy = (obj.pos.y - (sy * r)) - (t.pos.y + (signy * t.yw));
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ obj.reportCollisionVsWorld(-sx * dp, -sy * dp, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ return Circle22Deg;
+ })();
+ Projection.Circle22Deg = Circle22Deg;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var Circle45Deg = (function () {
+ function Circle45Deg() { }
+ Circle45Deg.Collide = function Collide(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var lenP;
+ if(oH == 0) {
+ if(oV == 0) {
+ var sx = t.sx;
+ var sy = t.sy;
+ var ox = (obj.pos.x - (sx * obj.radius)) - t.pos.x;
+ var oy = (obj.pos.y - (sy * obj.radius)) - t.pos.y;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ if(x < y) {
+ lenP = x;
+ y = 0;
+ if((obj.pos.x - t.pos.x) < 0) {
+ x *= -1;
+ }
+ } else {
+ lenP = y;
+ x = 0;
+ if((obj.pos.y - t.pos.y) < 0) {
+ y *= -1;
+ }
+ }
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ if((signy * oV) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var sx = t.sx;
+ var sy = t.sy;
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y + (oV * t.yw));
+ var perp = (ox * -sy) + (oy * sx);
+ if(0 < (perp * signx * signy)) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ }
+ } else if(oV == 0) {
+ if((signx * oH) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var sx = t.sx;
+ var sy = t.sy;
+ var ox = obj.pos.x - (t.pos.x + (oH * t.xw));
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var perp = (ox * -sy) + (oy * sx);
+ if((perp * signx * signy) < 0) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ } else {
+ if(0 < ((signx * oH) + (signy * oV))) {
+ return Phaser.Physics.Circle.COL_NONE;
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ return Circle45Deg;
+ })();
+ Projection.Circle45Deg = Circle45Deg;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var Circle67Deg = (function () {
+ function Circle67Deg() { }
+ Circle67Deg.CollideS = function CollideS(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var sx;
+ var sy;
+ if(0 < (signx * oH)) {
+ return Phaser.Physics.Circle.COL_NONE;
+ } else if(oH == 0) {
+ if(oV == 0) {
+ sx = t.sx;
+ sy = t.sy;
+ var r = obj.radius;
+ var ox = obj.pos.x - t.pos.x;
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var perp = (ox * -sy) + (oy * sx);
+ if((perp * signx * signy) < 0) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = r - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ ox -= r * sx;
+ oy -= r * sy;
+ var dp = (ox * sx) + (oy * sy);
+ var lenP;
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ if(x < y) {
+ lenP = x;
+ y = 0;
+ if((obj.pos.x - t.pos.x) < 0) {
+ x *= -1;
+ }
+ } else {
+ lenP = y;
+ x = 0;
+ if((obj.pos.y - t.pos.y) < 0) {
+ y *= -1;
+ }
+ }
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ } else {
+ if((signy * oV) < 0) {
+ var vx = t.pos.x;
+ var vy = t.pos.y - (signy * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ if((dx * signx) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ sx = t.sx;
+ sy = t.sy;
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y + (oV * t.yw));
+ var perp = (ox * -sy) + (oy * sx);
+ if(0 < (perp * signx * signy)) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ }
+ } else if(oV == 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ Circle67Deg.CollideB = function CollideB(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var sx;
+ var sy;
+ if(oH == 0) {
+ if(oV == 0) {
+ sx = t.sx;
+ sy = t.sy;
+ var r = obj.radius;
+ var ox = (obj.pos.x - (sx * r)) - (t.pos.x + (signx * t.xw));
+ var oy = (obj.pos.y - (sy * r)) - (t.pos.y - (signy * t.yw));
+ var dp = (ox * sx) + (oy * sy);
+ var lenP;
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ if(x < y) {
+ lenP = x;
+ y = 0;
+ if((obj.pos.x - t.pos.x) < 0) {
+ x *= -1;
+ }
+ } else {
+ lenP = y;
+ x = 0;
+ if((obj.pos.y - t.pos.y) < 0) {
+ y *= -1;
+ }
+ }
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ if((signy * oV) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var ox = obj.pos.x - t.pos.x;
+ var oy = obj.pos.y - (t.pos.y + (signy * t.yw));
+ if((ox * signx) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ sx = t.sx;
+ sy = t.sy;
+ var perp = (ox * -sy) + (oy * sx);
+ if(0 < (perp * signx * signy)) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, sx, sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ }
+ }
+ } else if(oV == 0) {
+ if((signx * oH) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var slen = Math.sqrt(2 * 2 + 1 * 1);
+ var sx = (signx * 2) / slen;
+ var sy = (signy * 1) / slen;
+ var ox = obj.pos.x - (t.pos.x + (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var perp = (ox * -sy) + (oy * sx);
+ if((perp * signx * signy) < 0) {
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var dp = (ox * sx) + (oy * sy);
+ var pen = obj.radius - Math.abs(dp);
+ if(0 < pen) {
+ obj.reportCollisionVsWorld(sx * pen, sy * pen, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ } else {
+ if(0 < ((signx * oH) + (signy * oV))) {
+ sx = t.sx;
+ sy = t.sy;
+ var r = obj.radius;
+ var ox = (obj.pos.x - (sx * r)) - (t.pos.x + (signx * t.xw));
+ var oy = (obj.pos.y - (sy * r)) - (t.pos.y - (signy * t.yw));
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ obj.reportCollisionVsWorld(-sx * dp, -sy * dp, t.sx, t.sy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ return Circle67Deg;
+ })();
+ Projection.Circle67Deg = Circle67Deg;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var CircleConcave = (function () {
+ function CircleConcave() { }
+ CircleConcave.Collide = function Collide(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var lenP;
+ if(oH == 0) {
+ if(oV == 0) {
+ var ox = (t.pos.x + (signx * t.xw)) - obj.pos.x;
+ var oy = (t.pos.y + (signy * t.yw)) - obj.pos.y;
+ var twid = t.xw * 2;
+ var trad = Math.sqrt(twid * twid + 0);
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = (len + obj.radius) - trad;
+ if(0 < pen) {
+ if(x < y) {
+ lenP = x;
+ y = 0;
+ if((obj.pos.x - t.pos.x) < 0) {
+ x *= -1;
+ }
+ } else {
+ lenP = y;
+ x = 0;
+ if((obj.pos.y - t.pos.y) < 0) {
+ y *= -1;
+ }
+ }
+ if(lenP < pen) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ return Phaser.Physics.Circle.COL_NONE;
+ }
+ } else {
+ if((signy * oV) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var vx = t.pos.x - (signx * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = 0;
+ dy = oV;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ } else if(oV == 0) {
+ if((signx * oH) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y - (signy * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH;
+ dy = 0;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ if(0 < ((signx * oH) + (signy * oV))) {
+ return Phaser.Physics.Circle.COL_NONE;
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ return CircleConcave;
+ })();
+ Projection.CircleConcave = CircleConcave;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var CircleConvex = (function () {
+ function CircleConvex() { }
+ CircleConvex.Collide = function Collide(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var lenP;
+ if(oH == 0) {
+ if(oV == 0) {
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var twid = t.xw * 2;
+ var trad = Math.sqrt(twid * twid + 0);
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = (trad + obj.radius) - len;
+ if(0 < pen) {
+ if(x < y) {
+ lenP = x;
+ y = 0;
+ if((obj.pos.x - t.pos.x) < 0) {
+ x *= -1;
+ }
+ } else {
+ lenP = y;
+ x = 0;
+ if((obj.pos.y - t.pos.y) < 0) {
+ y *= -1;
+ }
+ }
+ if(lenP < pen) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ if((signy * oV) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var twid = t.xw * 2;
+ var trad = Math.sqrt(twid * twid + 0);
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = (trad + obj.radius) - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ } else if(oV == 0) {
+ if((signx * oH) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var twid = t.xw * 2;
+ var trad = Math.sqrt(twid * twid + 0);
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = (trad + obj.radius) - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ if(0 < ((signx * oH) + (signy * oV))) {
+ var ox = obj.pos.x - (t.pos.x - (signx * t.xw));
+ var oy = obj.pos.y - (t.pos.y - (signy * t.yw));
+ var twid = t.xw * 2;
+ var trad = Math.sqrt(twid * twid + 0);
+ var len = Math.sqrt(ox * ox + oy * oy);
+ var pen = (trad + obj.radius) - len;
+ if(0 < pen) {
+ ox /= len;
+ oy /= len;
+ obj.reportCollisionVsWorld(ox * pen, oy * pen, ox, oy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ return CircleConvex;
+ })();
+ Projection.CircleConvex = CircleConvex;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var CircleFull = (function () {
+ function CircleFull() { }
+ CircleFull.Collide = function Collide(x, y, oH, oV, obj, t) {
+ if(oH == 0) {
+ if(oV == 0) {
+ if(x < y) {
+ var dx = obj.pos.x - t.pos.x;
+ if(dx < 0) {
+ obj.reportCollisionVsWorld(-x, 0, -1, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(x, 0, 1, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ }
+ } else {
+ var dy = obj.pos.y - t.pos.y;
+ if(dy < 0) {
+ obj.reportCollisionVsWorld(0, -y, 0, -1, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(0, y, 0, 1, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ }
+ }
+ } else {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ }
+ } else if(oV == 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ return CircleFull;
+ })();
+ Projection.CircleFull = CircleFull;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Physics) {
+ (function (Projection) {
+ var CircleHalf = (function () {
+ function CircleHalf() { }
+ CircleHalf.Collide = function Collide(x, y, oH, oV, obj, t) {
+ var signx = t.signx;
+ var signy = t.signy;
+ var celldp = (oH * signx + oV * signy);
+ if(0 < celldp) {
+ return Phaser.Physics.Circle.COL_NONE;
+ } else if(oH == 0) {
+ if(oV == 0) {
+ var r = obj.radius;
+ var ox = (obj.pos.x - (signx * r)) - t.pos.x;
+ var oy = (obj.pos.y - (signy * r)) - t.pos.y;
+ var sx = signx;
+ var sy = signy;
+ var dp = (ox * sx) + (oy * sy);
+ if(dp < 0) {
+ sx *= -dp;
+ sy *= -dp;
+ var lenN = Math.sqrt(sx * sx + sy * sy);
+ var lenP = Math.sqrt(x * x + y * y);
+ if(lenP < lenN) {
+ obj.reportCollisionVsWorld(x, y, x / lenP, y / lenP, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ obj.reportCollisionVsWorld(sx, sy, t.signx, t.signy);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ if(celldp == 0) {
+ var r = obj.radius;
+ var dx = obj.pos.x - t.pos.x;
+ if((dx * signx) < 0) {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var dy = obj.pos.y - (t.pos.y + oV * t.yw);
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = signx / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ obj.reportCollisionVsWorld(0, y * oV, 0, oV, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ }
+ }
+ } else if(oV == 0) {
+ if(celldp == 0) {
+ var r = obj.radius;
+ var dy = obj.pos.y - t.pos.y;
+ if((dy * signy) < 0) {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ } else {
+ var dx = obj.pos.x - (t.pos.x + oH * t.xw);
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = signx / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ } else {
+ obj.reportCollisionVsWorld(x * oH, 0, oH, 0, t);
+ return Phaser.Physics.Circle.COL_AXIS;
+ }
+ } else {
+ var vx = t.pos.x + (oH * t.xw);
+ var vy = t.pos.y + (oV * t.yw);
+ var dx = obj.pos.x - vx;
+ var dy = obj.pos.y - vy;
+ var len = Math.sqrt(dx * dx + dy * dy);
+ var pen = obj.radius - len;
+ if(0 < pen) {
+ if(len == 0) {
+ dx = oH / Math.SQRT2;
+ dy = oV / Math.SQRT2;
+ } else {
+ dx /= len;
+ dy /= len;
+ }
+ obj.reportCollisionVsWorld(dx * pen, dy * pen, dx, dy, t);
+ return Phaser.Physics.Circle.COL_OTHER;
+ }
+ }
+ return Phaser.Physics.Circle.COL_NONE;
+ };
+ return CircleHalf;
+ })();
+ Projection.CircleHalf = CircleHalf;
+ })(Physics.Projection || (Physics.Projection = {}));
+ var Projection = Physics.Projection;
+ })(Phaser.Physics || (Phaser.Physics = {}));
+ var Physics = Phaser.Physics;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Components) {
+ var Events = (function () {
+ function Events(parent) {
+ this.game = parent.game;
+ this._parent = parent;
+ this.onAddedToGroup = new Phaser.Signal();
+ this.onRemovedFromGroup = new Phaser.Signal();
+ this.onKilled = new Phaser.Signal();
+ this.onRevived = new Phaser.Signal();
+ this.onOutOfBounds = new Phaser.Signal();
+ }
+ return Events;
+ })();
+ Components.Events = Events;
+ })(Phaser.Components || (Phaser.Components = {}));
+ var Components = Phaser.Components;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Sprite = (function () {
+ function Sprite(game, x, y, key, frame) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof key === "undefined") { key = null; }
+ if (typeof frame === "undefined") { frame = null; }
+ this.modified = false;
+ this.x = 0;
+ this.y = 0;
+ this.z = -1;
+ this.renderOrderID = 0;
+ this.game = game;
+ this.type = Phaser.Types.SPRITE;
+ this.exists = true;
+ this.active = true;
+ this.visible = true;
+ this.alive = true;
+ this.x = x;
+ this.y = y;
+ this.z = -1;
+ this.group = null;
+ this.name = '';
+ this.events = new Phaser.Components.Events(this);
+ this.animations = new Phaser.Components.AnimationManager(this);
+ this.input = new Phaser.Components.InputHandler(this);
+ this.texture = new Phaser.Display.Texture(this);
+ this.transform = new Phaser.Components.TransformManager(this);
+ if(key !== null) {
+ this.texture.loadImage(key, false);
+ } else {
+ this.texture.opaque = true;
+ }
+ if(frame !== null) {
+ if(typeof frame == 'string') {
+ this.frameName = frame;
+ } else {
+ this.frame = frame;
+ }
+ }
+ this.worldView = new Phaser.Rectangle(x, y, this.width, this.height);
+ this.cameraView = new Phaser.Rectangle(x, y, this.width, this.height);
+ this.transform.setCache();
+ this.outOfBounds = false;
+ this.outOfBoundsAction = Phaser.Types.OUT_OF_BOUNDS_PERSIST;
+ this.scale = this.transform.scale;
+ this.alpha = this.texture.alpha;
+ this.origin = this.transform.origin;
+ this.crop = this.texture.crop;
+ }
+ Object.defineProperty(Sprite.prototype, "rotation", {
+ get: function () {
+ return this.transform.rotation;
+ },
+ set: function (value) {
+ this.transform.rotation = this.game.math.wrap(value, 360, 0);
+ if(this.body) {
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Sprite.prototype.bringToTop = function () {
+ if(this.group) {
+ this.group.bringToTop(this);
+ }
+ };
+ Object.defineProperty(Sprite.prototype, "alpha", {
+ get: function () {
+ return this.texture.alpha;
+ },
+ set: function (value) {
+ this.texture.alpha = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sprite.prototype, "frame", {
+ get: function () {
+ return this.animations.frame;
+ },
+ set: function (value) {
+ this.animations.frame = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sprite.prototype, "frameName", {
+ get: function () {
+ return this.animations.frameName;
+ },
+ set: function (value) {
+ this.animations.frameName = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sprite.prototype, "width", {
+ get: function () {
+ return this.texture.width * this.transform.scale.x;
+ },
+ set: function (value) {
+ this.transform.scale.x = value / this.texture.width;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sprite.prototype, "height", {
+ get: function () {
+ return this.texture.height * this.transform.scale.y;
+ },
+ set: function (value) {
+ this.transform.scale.y = value / this.texture.height;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Sprite.prototype.preUpdate = function () {
+ this.transform.update();
+ if(this.transform.scrollFactor.x != 1 && this.transform.scrollFactor.x != 0) {
+ this.worldView.x = (this.x * this.transform.scrollFactor.x) - (this.width * this.transform.origin.x);
+ } else {
+ this.worldView.x = this.x - (this.width * this.transform.origin.x);
+ }
+ if(this.transform.scrollFactor.y != 1 && this.transform.scrollFactor.y != 0) {
+ this.worldView.y = (this.y * this.transform.scrollFactor.y) - (this.height * this.transform.origin.y);
+ } else {
+ this.worldView.y = this.y - (this.height * this.transform.origin.y);
+ }
+ this.worldView.width = this.width;
+ this.worldView.height = this.height;
+ if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
+ this.modified = true;
+ }
+ };
+ Sprite.prototype.update = function () {
+ };
+ Sprite.prototype.postUpdate = function () {
+ this.animations.update();
+ this.checkBounds();
+ if(this.modified == true && this.transform.scale.equals(1) && this.transform.skew.equals(0) && this.transform.rotation == 0 && this.transform.rotationOffset == 0 && this.texture.flippedX == false && this.texture.flippedY == false) {
+ this.modified = false;
+ }
+ };
+ Sprite.prototype.checkBounds = function () {
+ if(Phaser.RectangleUtils.intersects(this.worldView, this.game.world.bounds)) {
+ this.outOfBounds = false;
+ } else {
+ if(this.outOfBounds == false) {
+ this.events.onOutOfBounds.dispatch(this);
+ }
+ this.outOfBounds = true;
+ if(this.outOfBoundsAction == Phaser.Types.OUT_OF_BOUNDS_KILL) {
+ this.kill();
+ } else if(this.outOfBoundsAction == Phaser.Types.OUT_OF_BOUNDS_DESTROY) {
+ this.destroy();
+ }
+ }
+ };
+ Sprite.prototype.destroy = function () {
+ this.input.destroy();
+ };
+ Sprite.prototype.kill = function (removeFromGroup) {
+ if (typeof removeFromGroup === "undefined") { removeFromGroup = false; }
+ this.alive = false;
+ this.exists = false;
+ if(removeFromGroup && this.group) {
+ }
+ this.events.onKilled.dispatch(this);
+ };
+ Sprite.prototype.revive = function () {
+ this.alive = true;
+ this.exists = true;
+ this.events.onRevived.dispatch(this);
+ };
+ return Sprite;
+ })();
+ Phaser.Sprite = Sprite;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Components) {
+ var TransformManager = (function () {
+ function TransformManager(parent) {
+ this._dirty = false;
+ this.rotationOffset = 0;
+ this.rotation = 0;
+ this.game = parent.game;
+ this.parent = parent;
+ this.local = new Phaser.Mat3();
+ this.scrollFactor = new Phaser.Vec2(1, 1);
+ this.origin = new Phaser.Vec2();
+ this.scale = new Phaser.Vec2(1, 1);
+ this.skew = new Phaser.Vec2();
+ this.center = new Phaser.Point();
+ this.upperLeft = new Phaser.Point();
+ this.upperRight = new Phaser.Point();
+ this.bottomLeft = new Phaser.Point();
+ this.bottomRight = new Phaser.Point();
+ this._pos = new Phaser.Point();
+ this._scale = new Phaser.Point();
+ this._size = new Phaser.Point();
+ this._halfSize = new Phaser.Point();
+ this._offset = new Phaser.Point();
+ this._origin = new Phaser.Point();
+ this._sc = new Phaser.Point();
+ this._scA = new Phaser.Point();
+ }
+ Object.defineProperty(TransformManager.prototype, "distance", {
+ get: function () {
+ return this._distance;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformManager.prototype, "angleToCenter", {
+ get: function () {
+ return this._angle;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformManager.prototype, "offsetX", {
+ get: function () {
+ return this._offset.x;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformManager.prototype, "offsetY", {
+ get: function () {
+ return this._offset.y;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformManager.prototype, "halfWidth", {
+ get: function () {
+ return this._halfSize.x;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformManager.prototype, "halfHeight", {
+ get: function () {
+ return this._halfSize.y;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformManager.prototype, "sin", {
+ get: function () {
+ return this._sc.x;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformManager.prototype, "cos", {
+ get: function () {
+ return this._sc.y;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ TransformManager.prototype.centerOn = function (x, y) {
+ this.parent.x = x + (this.parent.x - this.center.x);
+ this.parent.y = y + (this.parent.y - this.center.y);
+ };
+ TransformManager.prototype.setCache = function () {
+ this._pos.x = this.parent.x;
+ this._pos.y = this.parent.y;
+ this._halfSize.x = this.parent.width / 2;
+ this._halfSize.y = this.parent.height / 2;
+ this._offset.x = this.origin.x * this.parent.width;
+ this._offset.y = this.origin.y * this.parent.height;
+ this._angle = Math.atan2(this.halfHeight - this._offset.x, this.halfWidth - this._offset.y);
+ this._distance = Math.sqrt(((this._offset.x - this._halfSize.x) * (this._offset.x - this._halfSize.x)) + ((this._offset.y - this._halfSize.y) * (this._offset.y - this._halfSize.y)));
+ this._size.x = this.parent.width;
+ this._size.y = this.parent.height;
+ this._origin.x = this.origin.x;
+ this._origin.y = this.origin.y;
+ this._scA.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
+ this._scA.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
+ this._prevRotation = this.rotation;
+ if(this.parent.texture && this.parent.texture.renderRotation) {
+ this._sc.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
+ this._sc.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
+ } else {
+ this._sc.x = 0;
+ this._sc.y = 1;
+ }
+ this.center.x = this.parent.x + this._distance * this._scA.y;
+ this.center.y = this.parent.y + this._distance * this._scA.x;
+ this.upperLeft.setTo(this.center.x - this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
+ this.upperRight.setTo(this.center.x + this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
+ this.bottomLeft.setTo(this.center.x - this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
+ this.bottomRight.setTo(this.center.x + this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
+ this._pos.x = this.parent.x;
+ this._pos.y = this.parent.y;
+ this._flippedX = this.parent.texture.flippedX;
+ this._flippedY = this.parent.texture.flippedY;
+ };
+ TransformManager.prototype.update = function () {
+ this._dirty = false;
+ if(this.parent.width !== this._size.x || this.parent.height !== this._size.y || this.origin.x !== this._origin.x || this.origin.y !== this._origin.y) {
+ this._halfSize.x = this.parent.width / 2;
+ this._halfSize.y = this.parent.height / 2;
+ this._offset.x = this.origin.x * this.parent.width;
+ this._offset.y = this.origin.y * this.parent.height;
+ this._angle = Math.atan2(this.halfHeight - this._offset.y, this.halfWidth - this._offset.x);
+ this._distance = Math.sqrt(((this._offset.x - this._halfSize.x) * (this._offset.x - this._halfSize.x)) + ((this._offset.y - this._halfSize.y) * (this._offset.y - this._halfSize.y)));
+ this._size.x = this.parent.width;
+ this._size.y = this.parent.height;
+ this._origin.x = this.origin.x;
+ this._origin.y = this.origin.y;
+ this._dirty = true;
+ }
+ if(this.rotation != this._prevRotation || this._dirty) {
+ this._scA.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
+ this._scA.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD + this._angle);
+ if(this.parent.texture.renderRotation) {
+ this._sc.x = Math.sin((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
+ this._sc.y = Math.cos((this.rotation + this.rotationOffset) * Phaser.GameMath.DEG_TO_RAD);
+ } else {
+ this._sc.x = 0;
+ this._sc.y = 1;
+ }
+ this._prevRotation = this.rotation;
+ this._dirty = true;
+ }
+ if(this._dirty || this.parent.x != this._pos.x || this.parent.y != this._pos.y) {
+ this.center.x = this.parent.x + this._distance * this._scA.y;
+ this.center.y = this.parent.y + this._distance * this._scA.x;
+ this.upperLeft.setTo(this.center.x - this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
+ this.upperRight.setTo(this.center.x + this._halfSize.x * this._sc.y + this._halfSize.y * this._sc.x, this.center.y - this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
+ this.bottomLeft.setTo(this.center.x - this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y - this._halfSize.x * this._sc.x);
+ this.bottomRight.setTo(this.center.x + this._halfSize.x * this._sc.y - this._halfSize.y * this._sc.x, this.center.y + this._halfSize.y * this._sc.y + this._halfSize.x * this._sc.x);
+ this._pos.x = this.parent.x;
+ this._pos.y = this.parent.y;
+ this.local.data[2] = this.parent.x;
+ this.local.data[5] = this.parent.y;
+ }
+ if(this._dirty || this._flippedX != this.parent.texture.flippedX) {
+ this._flippedX = this.parent.texture.flippedX;
+ if(this._flippedX) {
+ this.local.data[0] = this._sc.y * -this.scale.x;
+ this.local.data[3] = (this._sc.x * -this.scale.x) + this.skew.x;
+ } else {
+ this.local.data[0] = this._sc.y * this.scale.x;
+ this.local.data[3] = (this._sc.x * this.scale.x) + this.skew.x;
+ }
+ }
+ if(this._dirty || this._flippedY != this.parent.texture.flippedY) {
+ this._flippedY = this.parent.texture.flippedY;
+ if(this._flippedY) {
+ this.local.data[4] = this._sc.y * -this.scale.y;
+ this.local.data[1] = -(this._sc.x * -this.scale.y) + this.skew.y;
+ } else {
+ this.local.data[4] = this._sc.y * this.scale.y;
+ this.local.data[1] = -(this._sc.x * this.scale.y) + this.skew.y;
+ }
+ }
+ };
+ return TransformManager;
+ })();
+ Components.TransformManager = TransformManager;
+ })(Phaser.Components || (Phaser.Components = {}));
+ var Components = Phaser.Components;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var ScrollRegion = (function () {
+ function ScrollRegion(x, y, width, height, speedX, speedY) {
+ this._anchorWidth = 0;
+ this._anchorHeight = 0;
+ this._inverseWidth = 0;
+ this._inverseHeight = 0;
+ this.visible = true;
+ this._A = new Phaser.Rectangle(x, y, width, height);
+ this._B = new Phaser.Rectangle(x, y, width, height);
+ this._C = new Phaser.Rectangle(x, y, width, height);
+ this._D = new Phaser.Rectangle(x, y, width, height);
+ this._scroll = new Phaser.Vec2();
+ this._bounds = new Phaser.Rectangle(x, y, width, height);
+ this.scrollSpeed = new Phaser.Vec2(speedX, speedY);
+ }
+ ScrollRegion.prototype.update = function (delta) {
+ this._scroll.x += this.scrollSpeed.x;
+ this._scroll.y += this.scrollSpeed.y;
+ if(this._scroll.x > this._bounds.right) {
+ this._scroll.x = this._bounds.x;
+ }
+ if(this._scroll.x < this._bounds.x) {
+ this._scroll.x = this._bounds.right;
+ }
+ if(this._scroll.y > this._bounds.bottom) {
+ this._scroll.y = this._bounds.y;
+ }
+ if(this._scroll.y < this._bounds.y) {
+ this._scroll.y = this._bounds.bottom;
+ }
+ this._anchorWidth = (this._bounds.width - this._scroll.x) + this._bounds.x;
+ this._anchorHeight = (this._bounds.height - this._scroll.y) + this._bounds.y;
+ if(this._anchorWidth > this._bounds.width) {
+ this._anchorWidth = this._bounds.width;
+ }
+ if(this._anchorHeight > this._bounds.height) {
+ this._anchorHeight = this._bounds.height;
+ }
+ this._inverseWidth = this._bounds.width - this._anchorWidth;
+ this._inverseHeight = this._bounds.height - this._anchorHeight;
+ this._A.setTo(this._scroll.x, this._scroll.y, this._anchorWidth, this._anchorHeight);
+ this._B.y = this._scroll.y;
+ this._B.width = this._inverseWidth;
+ this._B.height = this._anchorHeight;
+ this._C.x = this._scroll.x;
+ this._C.width = this._anchorWidth;
+ this._C.height = this._inverseHeight;
+ this._D.width = this._inverseWidth;
+ this._D.height = this._inverseHeight;
+ };
+ ScrollRegion.prototype.render = function (context, texture, dx, dy, dw, dh) {
+ if(this.visible == false) {
+ return;
+ }
+ this.crop(context, texture, this._A.x, this._A.y, this._A.width, this._A.height, dx, dy, dw, dh, 0, 0);
+ this.crop(context, texture, this._B.x, this._B.y, this._B.width, this._B.height, dx, dy, dw, dh, this._A.width, 0);
+ this.crop(context, texture, this._C.x, this._C.y, this._C.width, this._C.height, dx, dy, dw, dh, 0, this._A.height);
+ this.crop(context, texture, this._D.x, this._D.y, this._D.width, this._D.height, dx, dy, dw, dh, this._C.width, this._A.height);
+ };
+ ScrollRegion.prototype.crop = function (context, texture, srcX, srcY, srcW, srcH, destX, destY, destW, destH, offsetX, offsetY) {
+ offsetX += destX;
+ offsetY += destY;
+ if(srcW > (destX + destW) - offsetX) {
+ srcW = (destX + destW) - offsetX;
+ }
+ if(srcH > (destY + destH) - offsetY) {
+ srcH = (destY + destH) - offsetY;
+ }
+ srcX = Math.floor(srcX);
+ srcY = Math.floor(srcY);
+ srcW = Math.floor(srcW);
+ srcH = Math.floor(srcH);
+ offsetX = Math.floor(offsetX + this._bounds.x);
+ offsetY = Math.floor(offsetY + this._bounds.y);
+ if(srcW > 0 && srcH > 0) {
+ context.drawImage(texture, srcX, srcY, srcW, srcH, offsetX, offsetY, srcW, srcH);
+ }
+ };
+ return ScrollRegion;
+ })();
+ Phaser.ScrollRegion = ScrollRegion;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var ScrollZone = (function (_super) {
+ __extends(ScrollZone, _super);
+ function ScrollZone(game, key, x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = 0; }
+ if (typeof height === "undefined") { height = 0; }
+ _super.call(this, game, x, y, key);
+ this.type = Phaser.Types.SCROLLZONE;
+ this.regions = [];
+ if(this.texture.loaded) {
+ if(width > this.width || height > this.height) {
+ this.createRepeatingTexture(width, height);
+ this.width = width;
+ this.height = height;
+ }
+ this.addRegion(0, 0, this.width, this.height);
+ if((width < this.width || height < this.height) && width !== 0 && height !== 0) {
+ this.width = width;
+ this.height = height;
+ }
+ }
+ }
+ ScrollZone.prototype.addRegion = function (x, y, width, height, speedX, speedY) {
+ if (typeof speedX === "undefined") { speedX = 0; }
+ if (typeof speedY === "undefined") { speedY = 0; }
+ if(x > this.width || y > this.height || x < 0 || y < 0 || (x + width) > this.width || (y + height) > this.height) {
+ throw Error('Invalid ScrollRegion defined. Cannot be larger than parent ScrollZone');
+ return null;
+ }
+ this.currentRegion = new Phaser.ScrollRegion(x, y, width, height, speedX, speedY);
+ this.regions.push(this.currentRegion);
+ return this.currentRegion;
+ };
+ ScrollZone.prototype.setSpeed = function (x, y) {
+ if(this.currentRegion) {
+ this.currentRegion.scrollSpeed.setTo(x, y);
+ }
+ return this;
+ };
+ ScrollZone.prototype.update = function () {
+ for(var i = 0; i < this.regions.length; i++) {
+ this.regions[i].update(this.game.time.delta);
+ }
+ };
+ ScrollZone.prototype.createRepeatingTexture = function (regionWidth, regionHeight) {
+ var tileWidth = Math.ceil(this.width / regionWidth) * regionWidth;
+ var tileHeight = Math.ceil(this.height / regionHeight) * regionHeight;
+ var dt = new Phaser.Display.DynamicTexture(this.game, tileWidth, tileHeight);
+ dt.context.rect(0, 0, tileWidth, tileHeight);
+ dt.context.fillStyle = dt.context.createPattern(this.texture.imageTexture, "repeat");
+ dt.context.fill();
+ this.texture.loadDynamicTexture(dt);
+ };
+ return ScrollZone;
+ })(Phaser.Sprite);
+ Phaser.ScrollZone = ScrollZone;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var GameObjectFactory = (function () {
+ function GameObjectFactory(game) {
+ this.game = game;
+ this._world = this.game.world;
+ }
+ GameObjectFactory.prototype.camera = function (x, y, width, height) {
+ return this._world.cameras.addCamera(x, y, width, height);
+ };
+ GameObjectFactory.prototype.button = function (x, y, key, callback, callbackContext, overFrame, outFrame, downFrame) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof key === "undefined") { key = null; }
+ if (typeof callback === "undefined") { callback = null; }
+ if (typeof callbackContext === "undefined") { callbackContext = null; }
+ if (typeof overFrame === "undefined") { overFrame = null; }
+ if (typeof outFrame === "undefined") { outFrame = null; }
+ if (typeof downFrame === "undefined") { downFrame = null; }
+ return this._world.group.add(new Phaser.UI.Button(this.game, x, y, key, callback, callbackContext, overFrame, outFrame, downFrame));
+ };
+ GameObjectFactory.prototype.sprite = function (x, y, key, frame) {
+ if (typeof key === "undefined") { key = ''; }
+ if (typeof frame === "undefined") { frame = null; }
+ return this._world.group.add(new Phaser.Sprite(this.game, x, y, key, frame));
+ };
+ GameObjectFactory.prototype.audio = function (key, volume, loop) {
+ if (typeof volume === "undefined") { volume = 1; }
+ if (typeof loop === "undefined") { loop = false; }
+ return this.game.sound.add(key, volume, loop);
+ };
+ GameObjectFactory.prototype.circle = function (x, y, radius) {
+ return new Phaser.Physics.Circle(this.game, x, y, radius);
+ };
+ GameObjectFactory.prototype.aabb = function (x, y, width, height) {
+ return new Phaser.Physics.AABB(this.game, x, y, Math.floor(width / 2), Math.floor(height / 2));
+ };
+ GameObjectFactory.prototype.cell = function (x, y, width, height, state) {
+ if (typeof state === "undefined") { state = Phaser.Physics.TileMapCell.TID_FULL; }
+ return new Phaser.Physics.TileMapCell(this.game, x, y, width, height).SetState(state);
+ };
+ GameObjectFactory.prototype.dynamicTexture = function (width, height) {
+ return new Phaser.Display.DynamicTexture(this.game, width, height);
+ };
+ GameObjectFactory.prototype.group = function (maxSize) {
+ if (typeof maxSize === "undefined") { maxSize = 0; }
+ return this._world.group.add(new Phaser.Group(this.game, maxSize));
+ };
+ GameObjectFactory.prototype.scrollZone = function (key, x, y, width, height) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof width === "undefined") { width = 0; }
+ if (typeof height === "undefined") { height = 0; }
+ return this._world.group.add(new Phaser.ScrollZone(this.game, key, x, y, width, height));
+ };
+ GameObjectFactory.prototype.tilemap = function (key, mapData, format, resizeWorld, tileWidth, tileHeight) {
+ if (typeof resizeWorld === "undefined") { resizeWorld = true; }
+ if (typeof tileWidth === "undefined") { tileWidth = 0; }
+ if (typeof tileHeight === "undefined") { tileHeight = 0; }
+ return this._world.group.add(new Phaser.Tilemap(this.game, key, mapData, format, resizeWorld, tileWidth, tileHeight));
+ };
+ GameObjectFactory.prototype.tween = function (obj, localReference) {
+ if (typeof localReference === "undefined") { localReference = false; }
+ return this.game.tweens.create(obj, localReference);
+ };
+ GameObjectFactory.prototype.existingSprite = function (sprite) {
+ return this._world.group.add(sprite);
+ };
+ GameObjectFactory.prototype.existingGroup = function (group) {
+ return this._world.group.add(group);
+ };
+ GameObjectFactory.prototype.existingButton = function (button) {
+ return this._world.group.add(button);
+ };
+ GameObjectFactory.prototype.existingScrollZone = function (scrollZone) {
+ return this._world.group.add(scrollZone);
+ };
+ GameObjectFactory.prototype.existingTilemap = function (tilemap) {
+ return this._world.group.add(tilemap);
+ };
+ GameObjectFactory.prototype.existingTween = function (tween) {
+ return this.game.tweens.add(tween);
+ };
+ return GameObjectFactory;
+ })();
+ Phaser.GameObjectFactory = GameObjectFactory;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (UI) {
+ var Button = (function (_super) {
+ __extends(Button, _super);
+ function Button(game, x, y, key, callback, callbackContext, overFrame, outFrame, downFrame) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ if (typeof key === "undefined") { key = null; }
+ if (typeof callback === "undefined") { callback = null; }
+ if (typeof callbackContext === "undefined") { callbackContext = null; }
+ if (typeof overFrame === "undefined") { overFrame = null; }
+ if (typeof outFrame === "undefined") { outFrame = null; }
+ if (typeof downFrame === "undefined") { downFrame = null; }
+ _super.call(this, game, x, y, key, outFrame);
+ this._onOverFrameName = null;
+ this._onOutFrameName = null;
+ this._onDownFrameName = null;
+ this._onUpFrameName = null;
+ this._onOverFrameID = null;
+ this._onOutFrameID = null;
+ this._onDownFrameID = null;
+ this._onUpFrameID = null;
+ this.type = Phaser.Types.BUTTON;
+ if(typeof overFrame == 'string') {
+ this._onOverFrameName = overFrame;
+ } else {
+ this._onOverFrameID = overFrame;
+ }
+ if(typeof outFrame == 'string') {
+ this._onOutFrameName = outFrame;
+ this._onUpFrameName = outFrame;
+ } else {
+ this._onOutFrameID = outFrame;
+ this._onUpFrameID = outFrame;
+ }
+ if(typeof downFrame == 'string') {
+ this._onDownFrameName = downFrame;
+ } else {
+ this._onDownFrameID = downFrame;
+ }
+ this.onInputOver = new Phaser.Signal();
+ this.onInputOut = new Phaser.Signal();
+ this.onInputDown = new Phaser.Signal();
+ this.onInputUp = new Phaser.Signal();
+ if(callback) {
+ this.onInputUp.add(callback, callbackContext);
+ }
+ this.input.start(0, false, true);
+ this.events.onInputOver.add(this.onInputOverHandler, this);
+ this.events.onInputOut.add(this.onInputOutHandler, this);
+ this.events.onInputDown.add(this.onInputDownHandler, this);
+ this.events.onInputUp.add(this.onInputUpHandler, this);
+ }
+ Button.prototype.onInputOverHandler = function (pointer) {
+ if(this._onOverFrameName != null) {
+ this.frameName = this._onOverFrameName;
+ } else if(this._onOverFrameID != null) {
+ this.frame = this._onOverFrameID;
+ }
+ if(this.onInputOver) {
+ this.onInputOver.dispatch(this, pointer);
+ }
+ };
+ Button.prototype.onInputOutHandler = function (pointer) {
+ if(this._onOutFrameName != null) {
+ this.frameName = this._onOutFrameName;
+ } else if(this._onOutFrameID != null) {
+ this.frame = this._onOutFrameID;
+ }
+ if(this.onInputOut) {
+ this.onInputOut.dispatch(this, pointer);
+ }
+ };
+ Button.prototype.onInputDownHandler = function (pointer) {
+ if(this._onDownFrameName != null) {
+ this.frameName = this._onDownFrameName;
+ } else if(this._onDownFrameID != null) {
+ this.frame = this._onDownFrameID;
+ }
+ if(this.onInputDown) {
+ this.onInputDown.dispatch(this, pointer);
+ }
+ };
+ Button.prototype.onInputUpHandler = function (pointer) {
+ if(this._onUpFrameName != null) {
+ this.frameName = this._onUpFrameName;
+ } else if(this._onUpFrameID != null) {
+ this.frame = this._onUpFrameID;
+ }
+ if(this.onInputUp) {
+ this.onInputUp.dispatch(this, pointer);
+ }
+ };
+ Object.defineProperty(Button.prototype, "priorityID", {
+ get: function () {
+ return this.input.priorityID;
+ },
+ set: function (value) {
+ this.input.priorityID = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Button.prototype, "useHandCursor", {
+ get: function () {
+ return this.input.useHandCursor;
+ },
+ set: function (value) {
+ this.input.useHandCursor = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Button;
+ })(Phaser.Sprite);
+ UI.Button = Button;
+ })(Phaser.UI || (Phaser.UI = {}));
+ var UI = Phaser.UI;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var CanvasUtils = (function () {
+ function CanvasUtils() { }
+ CanvasUtils.getAspectRatio = function getAspectRatio(canvas) {
+ return canvas.width / canvas.height;
+ };
+ CanvasUtils.setBackgroundColor = function setBackgroundColor(canvas, color) {
+ if (typeof color === "undefined") { color = 'rgb(0,0,0)'; }
+ canvas.style.backgroundColor = color;
+ return canvas;
+ };
+ CanvasUtils.setTouchAction = function setTouchAction(canvas, value) {
+ if (typeof value === "undefined") { value = 'none'; }
+ canvas.style.msTouchAction = value;
+ canvas.style['ms-touch-action'] = value;
+ canvas.style['touch-action'] = value;
+ return canvas;
+ };
+ CanvasUtils.addToDOM = function addToDOM(canvas, parent, overflowHidden) {
+ if (typeof parent === "undefined") { parent = ''; }
+ if (typeof overflowHidden === "undefined") { overflowHidden = true; }
+ if((parent !== '' || parent !== null) && document.getElementById(parent)) {
+ document.getElementById(parent).appendChild(canvas);
+ if(overflowHidden) {
+ document.getElementById(parent).style.overflow = 'hidden';
+ }
+ } else {
+ document.body.appendChild(canvas);
+ }
+ return canvas;
+ };
+ CanvasUtils.setTransform = function setTransform(context, translateX, translateY, scaleX, scaleY, skewX, skewY) {
+ context.setTransform(scaleX, skewX, skewY, scaleY, translateX, translateY);
+ return context;
+ };
+ CanvasUtils.setSmoothingEnabled = function setSmoothingEnabled(context, value) {
+ context['imageSmoothingEnabled'] = value;
+ context['mozImageSmoothingEnabled'] = value;
+ context['oImageSmoothingEnabled'] = value;
+ context['webkitImageSmoothingEnabled'] = value;
+ context['msImageSmoothingEnabled'] = value;
+ return context;
+ };
+ CanvasUtils.setImageRenderingCrisp = function setImageRenderingCrisp(canvas) {
+ canvas.style['image-rendering'] = 'crisp-edges';
+ canvas.style['image-rendering'] = '-moz-crisp-edges';
+ canvas.style['image-rendering'] = '-webkit-optimize-contrast';
+ canvas.style.msInterpolationMode = 'nearest-neighbor';
+ return canvas;
+ };
+ CanvasUtils.setImageRenderingBicubic = function setImageRenderingBicubic(canvas) {
+ canvas.style['image-rendering'] = 'auto';
+ canvas.style.msInterpolationMode = 'bicubic';
+ return canvas;
+ };
+ return CanvasUtils;
+ })();
+ Phaser.CanvasUtils = CanvasUtils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var CircleUtils = (function () {
+ function CircleUtils() { }
+ CircleUtils.clone = function clone(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Circle(); }
+ return out.setTo(a.x, a.y, a.diameter);
+ };
+ CircleUtils.contains = function contains(a, x, y) {
+ if(x >= a.left && x <= a.right && y >= a.top && y <= a.bottom) {
+ var dx = (a.x - x) * (a.x - x);
+ var dy = (a.y - y) * (a.y - y);
+ return (dx + dy) <= (a.radius * a.radius);
+ }
+ return false;
+ };
+ CircleUtils.containsPoint = function containsPoint(a, point) {
+ return CircleUtils.contains(a, point.x, point.y);
+ };
+ CircleUtils.containsCircle = function containsCircle(a, b) {
+ return true;
+ };
+ CircleUtils.distanceBetween = function distanceBetween(a, target, round) {
+ if (typeof round === "undefined") { round = false; }
+ var dx = a.x - target.x;
+ var dy = a.y - target.y;
+ if(round === true) {
+ return Math.round(Math.sqrt(dx * dx + dy * dy));
+ } else {
+ return Math.sqrt(dx * dx + dy * dy);
+ }
+ };
+ CircleUtils.equals = function equals(a, b) {
+ return (a.x == b.x && a.y == b.y && a.diameter == b.diameter);
+ };
+ CircleUtils.intersects = function intersects(a, b) {
+ return (Phaser.CircleUtils.distanceBetween(a, b) <= (a.radius + b.radius));
+ };
+ CircleUtils.circumferencePoint = function circumferencePoint(a, angle, asDegrees, out) {
+ if (typeof asDegrees === "undefined") { asDegrees = false; }
+ if (typeof out === "undefined") { out = new Phaser.Point(); }
+ if(asDegrees === true) {
+ angle = angle * Phaser.GameMath.DEG_TO_RAD;
+ }
+ return out.setTo(a.x + a.radius * Math.cos(angle), a.y + a.radius * Math.sin(angle));
+ };
+ CircleUtils.intersectsRectangle = function intersectsRectangle(c, r) {
+ var cx = Math.abs(c.x - r.x - r.halfWidth);
+ var xDist = r.halfWidth + c.radius;
+ if(cx > xDist) {
+ return false;
+ }
+ var cy = Math.abs(c.y - r.y - r.halfHeight);
+ var yDist = r.halfHeight + c.radius;
+ if(cy > yDist) {
+ return false;
+ }
+ if(cx <= r.halfWidth || cy <= r.halfHeight) {
+ return true;
+ }
+ var xCornerDist = cx - r.halfWidth;
+ var yCornerDist = cy - r.halfHeight;
+ var xCornerDistSq = xCornerDist * xCornerDist;
+ var yCornerDistSq = yCornerDist * yCornerDist;
+ var maxCornerDistSq = c.radius * c.radius;
+ return xCornerDistSq + yCornerDistSq <= maxCornerDistSq;
+ };
+ return CircleUtils;
+ })();
+ Phaser.CircleUtils = CircleUtils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var ColorUtils = (function () {
+ function ColorUtils() { }
+ ColorUtils.getColor32 = function getColor32(alpha, red, green, blue) {
+ return alpha << 24 | red << 16 | green << 8 | blue;
+ };
+ ColorUtils.getColor = function getColor(red, green, blue) {
+ return red << 16 | green << 8 | blue;
+ };
+ ColorUtils.getHSVColorWheel = function getHSVColorWheel(alpha) {
+ if (typeof alpha === "undefined") { alpha = 255; }
+ var colors = [];
+ for(var c = 0; c <= 359; c++) {
+ colors[c] = Phaser.ColorUtils.getWebRGB(Phaser.ColorUtils.HSVtoRGB(c, 1.0, 1.0, alpha));
+ }
+ return colors;
+ };
+ ColorUtils.hexToRGB = function hexToRGB(h) {
+ var hex16 = (h.charAt(0) == "#") ? h.substring(1, 7) : h;
+ var r = parseInt(hex16.substring(0, 2), 16);
+ var g = parseInt(hex16.substring(2, 4), 16);
+ var b = parseInt(hex16.substring(4, 6), 16);
+ return {
+ r: r,
+ g: g,
+ b: b
+ };
+ };
+ ColorUtils.getComplementHarmony = function getComplementHarmony(color) {
+ var hsv = Phaser.ColorUtils.RGBtoHSV(color);
+ var opposite = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 180, 359);
+ return Phaser.ColorUtils.HSVtoRGB(opposite, 1.0, 1.0);
+ };
+ ColorUtils.getAnalogousHarmony = function getAnalogousHarmony(color, threshold) {
+ if (typeof threshold === "undefined") { threshold = 30; }
+ var hsv = Phaser.ColorUtils.RGBtoHSV(color);
+ if(threshold > 359 || threshold < 0) {
+ throw Error("Color Warning: Invalid threshold given to getAnalogousHarmony()");
+ }
+ var warmer = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 359 - threshold, 359);
+ var colder = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, threshold, 359);
+ return {
+ color1: color,
+ color2: Phaser.ColorUtils.HSVtoRGB(warmer, 1.0, 1.0),
+ color3: Phaser.ColorUtils.HSVtoRGB(colder, 1.0, 1.0),
+ hue1: hsv.hue,
+ hue2: warmer,
+ hue3: colder
+ };
+ };
+ ColorUtils.getSplitComplementHarmony = function getSplitComplementHarmony(color, threshold) {
+ if (typeof threshold === "undefined") { threshold = 30; }
+ var hsv = Phaser.ColorUtils.RGBtoHSV(color);
+ if(threshold >= 359 || threshold <= 0) {
+ throw Error("Phaser.ColorUtils Warning: Invalid threshold given to getSplitComplementHarmony()");
+ }
+ var opposite = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 180, 359);
+ var warmer = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, opposite - threshold, 359);
+ var colder = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, opposite + threshold, 359);
+ return {
+ color1: color,
+ color2: Phaser.ColorUtils.HSVtoRGB(warmer, hsv.saturation, hsv.value),
+ color3: Phaser.ColorUtils.HSVtoRGB(colder, hsv.saturation, hsv.value),
+ hue1: hsv.hue,
+ hue2: warmer,
+ hue3: colder
+ };
+ };
+ ColorUtils.getTriadicHarmony = function getTriadicHarmony(color) {
+ var hsv = Phaser.ColorUtils.RGBtoHSV(color);
+ var triadic1 = Phaser.ColorUtils.game.math.wrapValue(hsv.hue, 120, 359);
+ var triadic2 = Phaser.ColorUtils.game.math.wrapValue(triadic1, 120, 359);
+ return {
+ color1: color,
+ color2: Phaser.ColorUtils.HSVtoRGB(triadic1, 1.0, 1.0),
+ color3: Phaser.ColorUtils.HSVtoRGB(triadic2, 1.0, 1.0)
+ };
+ };
+ ColorUtils.getColorInfo = function getColorInfo(color) {
+ var argb = Phaser.ColorUtils.getRGB(color);
+ var hsl = Phaser.ColorUtils.RGBtoHSV(color);
+ var result = Phaser.ColorUtils.RGBtoHexstring(color) + "\n";
+ result = result.concat("Alpha: " + argb.alpha + " Red: " + argb.red + " Green: " + argb.green + " Blue: " + argb.blue) + "\n";
+ result = result.concat("Hue: " + hsl.hue + " Saturation: " + hsl.saturation + " Lightnes: " + hsl.lightness);
+ return result;
+ };
+ ColorUtils.RGBtoHexstring = function RGBtoHexstring(color) {
+ var argb = Phaser.ColorUtils.getRGB(color);
+ return "0x" + Phaser.ColorUtils.colorToHexstring(argb.alpha) + Phaser.ColorUtils.colorToHexstring(argb.red) + Phaser.ColorUtils.colorToHexstring(argb.green) + Phaser.ColorUtils.colorToHexstring(argb.blue);
+ };
+ ColorUtils.RGBtoWebstring = function RGBtoWebstring(color) {
+ var argb = Phaser.ColorUtils.getRGB(color);
+ return "#" + Phaser.ColorUtils.colorToHexstring(argb.red) + Phaser.ColorUtils.colorToHexstring(argb.green) + Phaser.ColorUtils.colorToHexstring(argb.blue);
+ };
+ ColorUtils.colorToHexstring = function colorToHexstring(color) {
+ var digits = "0123456789ABCDEF";
+ var lsd = color % 16;
+ var msd = (color - lsd) / 16;
+ var hexified = digits.charAt(msd) + digits.charAt(lsd);
+ return hexified;
+ };
+ ColorUtils.HSVtoRGB = function HSVtoRGB(h, s, v, alpha) {
+ if (typeof alpha === "undefined") { alpha = 255; }
+ var result;
+ if(s == 0.0) {
+ result = Phaser.ColorUtils.getColor32(alpha, v * 255, v * 255, v * 255);
+ } else {
+ h = h / 60.0;
+ var f = h - Math.floor(h);
+ var p = v * (1.0 - s);
+ var q = v * (1.0 - s * f);
+ var t = v * (1.0 - s * (1.0 - f));
+ switch(Math.floor(h)) {
+ case 0:
+ result = Phaser.ColorUtils.getColor32(alpha, v * 255, t * 255, p * 255);
+ break;
+ case 1:
+ result = Phaser.ColorUtils.getColor32(alpha, q * 255, v * 255, p * 255);
+ break;
+ case 2:
+ result = Phaser.ColorUtils.getColor32(alpha, p * 255, v * 255, t * 255);
+ break;
+ case 3:
+ result = Phaser.ColorUtils.getColor32(alpha, p * 255, q * 255, v * 255);
+ break;
+ case 4:
+ result = Phaser.ColorUtils.getColor32(alpha, t * 255, p * 255, v * 255);
+ break;
+ case 5:
+ result = Phaser.ColorUtils.getColor32(alpha, v * 255, p * 255, q * 255);
+ break;
+ default:
+ throw new Error("Phaser.ColorUtils.HSVtoRGB : Unknown color");
+ }
+ }
+ return result;
+ };
+ ColorUtils.RGBtoHSV = function RGBtoHSV(color) {
+ var rgb = Phaser.ColorUtils.getRGB(color);
+ var red = rgb.red / 255;
+ var green = rgb.green / 255;
+ var blue = rgb.blue / 255;
+ var min = Math.min(red, green, blue);
+ var max = Math.max(red, green, blue);
+ var delta = max - min;
+ var lightness = (max + min) / 2;
+ var hue;
+ var saturation;
+ if(delta == 0) {
+ hue = 0;
+ saturation = 0;
+ } else {
+ if(lightness < 0.5) {
+ saturation = delta / (max + min);
+ } else {
+ saturation = delta / (2 - max - min);
+ }
+ var delta_r = (((max - red) / 6) + (delta / 2)) / delta;
+ var delta_g = (((max - green) / 6) + (delta / 2)) / delta;
+ var delta_b = (((max - blue) / 6) + (delta / 2)) / delta;
+ if(red == max) {
+ hue = delta_b - delta_g;
+ } else if(green == max) {
+ hue = (1 / 3) + delta_r - delta_b;
+ } else if(blue == max) {
+ hue = (2 / 3) + delta_g - delta_r;
+ }
+ if(hue < 0) {
+ hue += 1;
+ }
+ if(hue > 1) {
+ hue -= 1;
+ }
+ }
+ hue *= 360;
+ hue = Math.round(hue);
+ return {
+ hue: hue,
+ saturation: saturation,
+ lightness: lightness,
+ value: lightness
+ };
+ };
+ ColorUtils.interpolateColor = function interpolateColor(color1, color2, steps, currentStep, alpha) {
+ if (typeof alpha === "undefined") { alpha = 255; }
+ var src1 = Phaser.ColorUtils.getRGB(color1);
+ var src2 = Phaser.ColorUtils.getRGB(color2);
+ var r = (((src2.red - src1.red) * currentStep) / steps) + src1.red;
+ var g = (((src2.green - src1.green) * currentStep) / steps) + src1.green;
+ var b = (((src2.blue - src1.blue) * currentStep) / steps) + src1.blue;
+ return Phaser.ColorUtils.getColor32(alpha, r, g, b);
+ };
+ ColorUtils.interpolateColorWithRGB = function interpolateColorWithRGB(color, r, g, b, steps, currentStep) {
+ var src = Phaser.ColorUtils.getRGB(color);
+ var or = (((r - src.red) * currentStep) / steps) + src.red;
+ var og = (((g - src.green) * currentStep) / steps) + src.green;
+ var ob = (((b - src.blue) * currentStep) / steps) + src.blue;
+ return Phaser.ColorUtils.getColor(or, og, ob);
+ };
+ ColorUtils.interpolateRGB = function interpolateRGB(r1, g1, b1, r2, g2, b2, steps, currentStep) {
+ var r = (((r2 - r1) * currentStep) / steps) + r1;
+ var g = (((g2 - g1) * currentStep) / steps) + g1;
+ var b = (((b2 - b1) * currentStep) / steps) + b1;
+ return Phaser.ColorUtils.getColor(r, g, b);
+ };
+ ColorUtils.getRandomColor = function getRandomColor(min, max, alpha) {
+ if (typeof min === "undefined") { min = 0; }
+ if (typeof max === "undefined") { max = 255; }
+ if (typeof alpha === "undefined") { alpha = 255; }
+ if(max > 255) {
+ return Phaser.ColorUtils.getColor(255, 255, 255);
+ }
+ if(min > max) {
+ return Phaser.ColorUtils.getColor(255, 255, 255);
+ }
+ var red = min + Math.round(Math.random() * (max - min));
+ var green = min + Math.round(Math.random() * (max - min));
+ var blue = min + Math.round(Math.random() * (max - min));
+ return Phaser.ColorUtils.getColor32(alpha, red, green, blue);
+ };
+ ColorUtils.getRGB = function getRGB(color) {
+ return {
+ alpha: color >>> 24,
+ red: color >> 16 & 0xFF,
+ green: color >> 8 & 0xFF,
+ blue: color & 0xFF
+ };
+ };
+ ColorUtils.getWebRGB = function getWebRGB(color) {
+ var alpha = (color >>> 24) / 255;
+ var red = color >> 16 & 0xFF;
+ var green = color >> 8 & 0xFF;
+ var blue = color & 0xFF;
+ return 'rgba(' + red.toString() + ',' + green.toString() + ',' + blue.toString() + ',' + alpha.toString() + ')';
+ };
+ ColorUtils.getAlpha = function getAlpha(color) {
+ return color >>> 24;
+ };
+ ColorUtils.getAlphaFloat = function getAlphaFloat(color) {
+ return (color >>> 24) / 255;
+ };
+ ColorUtils.getRed = function getRed(color) {
+ return color >> 16 & 0xFF;
+ };
+ ColorUtils.getGreen = function getGreen(color) {
+ return color >> 8 & 0xFF;
+ };
+ ColorUtils.getBlue = function getBlue(color) {
+ return color & 0xFF;
+ };
+ return ColorUtils;
+ })();
+ Phaser.ColorUtils = ColorUtils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var PointUtils = (function () {
+ function PointUtils() { }
+ PointUtils.add = function add(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Point(); }
+ return out.setTo(a.x + b.x, a.y + b.y);
+ };
+ PointUtils.subtract = function subtract(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Point(); }
+ return out.setTo(a.x - b.x, a.y - b.y);
+ };
+ PointUtils.multiply = function multiply(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Point(); }
+ return out.setTo(a.x * b.x, a.y * b.y);
+ };
+ PointUtils.divide = function divide(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Point(); }
+ return out.setTo(a.x / b.x, a.y / b.y);
+ };
+ PointUtils.clamp = function clamp(a, min, max) {
+ Phaser.PointUtils.clampX(a, min, max);
+ Phaser.PointUtils.clampY(a, min, max);
+ return a;
+ };
+ PointUtils.clampX = function clampX(a, min, max) {
+ a.x = Math.max(Math.min(a.x, max), min);
+ return a;
+ };
+ PointUtils.clampY = function clampY(a, min, max) {
+ a.y = Math.max(Math.min(a.y, max), min);
+ return a;
+ };
+ PointUtils.clone = function clone(a, output) {
+ if (typeof output === "undefined") { output = new Phaser.Point(); }
+ return output.setTo(a.x, a.y);
+ };
+ PointUtils.distanceBetween = function distanceBetween(a, b, round) {
+ if (typeof round === "undefined") { round = false; }
+ var dx = a.x - b.x;
+ var dy = a.y - b.y;
+ if(round === true) {
+ return Math.round(Math.sqrt(dx * dx + dy * dy));
+ } else {
+ return Math.sqrt(dx * dx + dy * dy);
+ }
+ };
+ PointUtils.equals = function equals(a, b) {
+ return (a.x == b.x && a.y == b.y);
+ };
+ PointUtils.rotate = function rotate(a, x, y, angle, asDegrees, distance) {
+ if (typeof asDegrees === "undefined") { asDegrees = false; }
+ if (typeof distance === "undefined") { distance = null; }
+ if(asDegrees) {
+ angle = angle * Phaser.GameMath.DEG_TO_RAD;
+ }
+ if(distance === null) {
+ distance = Math.sqrt(((x - a.x) * (x - a.x)) + ((y - a.y) * (y - a.y)));
+ }
+ return a.setTo(x + distance * Math.cos(angle), y + distance * Math.sin(angle));
+ };
+ PointUtils.rotateAroundPoint = function rotateAroundPoint(a, b, angle, asDegrees, distance) {
+ if (typeof asDegrees === "undefined") { asDegrees = false; }
+ if (typeof distance === "undefined") { distance = null; }
+ return Phaser.PointUtils.rotate(a, b.x, b.y, angle, asDegrees, distance);
+ };
+ return PointUtils;
+ })();
+ Phaser.PointUtils = PointUtils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var RectangleUtils = (function () {
+ function RectangleUtils() { }
+ RectangleUtils.getTopLeftAsPoint = function getTopLeftAsPoint(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Point(); }
+ return out.setTo(a.x, a.y);
+ };
+ RectangleUtils.getBottomRightAsPoint = function getBottomRightAsPoint(a, out) {
+ if (typeof out === "undefined") { out = new Phaser.Point(); }
+ return out.setTo(a.right, a.bottom);
+ };
+ RectangleUtils.inflate = function inflate(a, dx, dy) {
+ a.x -= dx;
+ a.width += 2 * dx;
+ a.y -= dy;
+ a.height += 2 * dy;
+ return a;
+ };
+ RectangleUtils.inflatePoint = function inflatePoint(a, point) {
+ return Phaser.RectangleUtils.inflate(a, point.x, point.y);
+ };
+ RectangleUtils.size = function size(a, output) {
+ if (typeof output === "undefined") { output = new Phaser.Point(); }
+ return output.setTo(a.width, a.height);
+ };
+ RectangleUtils.clone = function clone(a, output) {
+ if (typeof output === "undefined") { output = new Phaser.Rectangle(); }
+ return output.setTo(a.x, a.y, a.width, a.height);
+ };
+ RectangleUtils.contains = function contains(a, x, y) {
+ return (x >= a.x && x <= a.right && y >= a.y && y <= a.bottom);
+ };
+ RectangleUtils.containsPoint = function containsPoint(a, point) {
+ return Phaser.RectangleUtils.contains(a, point.x, point.y);
+ };
+ RectangleUtils.containsRect = function containsRect(a, b) {
+ if(a.volume > b.volume) {
+ return false;
+ }
+ return (a.x >= b.x && a.y >= b.y && a.right <= b.right && a.bottom <= b.bottom);
+ };
+ RectangleUtils.equals = function equals(a, b) {
+ return (a.x == b.x && a.y == b.y && a.width == b.width && a.height == b.height);
+ };
+ RectangleUtils.intersection = function intersection(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Rectangle(); }
+ if(Phaser.RectangleUtils.intersects(a, b)) {
+ out.x = Math.max(a.x, b.x);
+ out.y = Math.max(a.y, b.y);
+ out.width = Math.min(a.right, b.right) - out.x;
+ out.height = Math.min(a.bottom, b.bottom) - out.y;
+ }
+ return out;
+ };
+ RectangleUtils.intersects = function intersects(a, b, tolerance) {
+ if (typeof tolerance === "undefined") { tolerance = 0; }
+ return !(a.left > b.right + tolerance || a.right < b.left - tolerance || a.top > b.bottom + tolerance || a.bottom < b.top - tolerance);
+ };
+ RectangleUtils.intersectsRaw = function intersectsRaw(a, left, right, top, bottom, tolerance) {
+ if (typeof tolerance === "undefined") { tolerance = 0; }
+ return !(left > a.right + tolerance || right < a.left - tolerance || top > a.bottom + tolerance || bottom < a.top - tolerance);
+ };
+ RectangleUtils.union = function union(a, b, out) {
+ if (typeof out === "undefined") { out = new Phaser.Rectangle(); }
+ return out.setTo(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.max(a.right, b.right), Math.max(a.bottom, b.bottom));
+ };
+ return RectangleUtils;
+ })();
+ Phaser.RectangleUtils = RectangleUtils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var SpriteUtils = (function () {
+ function SpriteUtils() { }
+ SpriteUtils.updateCameraView = function updateCameraView(camera, sprite) {
+ if(sprite.rotation == 0 || sprite.texture.renderRotation == false) {
+ sprite.cameraView.x = Math.floor(sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x) - (sprite.width * sprite.transform.origin.x));
+ sprite.cameraView.y = Math.floor(sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y) - (sprite.height * sprite.transform.origin.y));
+ sprite.cameraView.width = sprite.width;
+ sprite.cameraView.height = sprite.height;
+ } else {
+ if(sprite.transform.origin.x == 0.5 && sprite.transform.origin.y == 0.5) {
+ Phaser.SpriteUtils._sin = sprite.transform.sin;
+ Phaser.SpriteUtils._cos = sprite.transform.cos;
+ if(Phaser.SpriteUtils._sin < 0) {
+ Phaser.SpriteUtils._sin = -Phaser.SpriteUtils._sin;
+ }
+ if(Phaser.SpriteUtils._cos < 0) {
+ Phaser.SpriteUtils._cos = -Phaser.SpriteUtils._cos;
+ }
+ sprite.cameraView.width = Math.round(sprite.height * Phaser.SpriteUtils._sin + sprite.width * Phaser.SpriteUtils._cos);
+ sprite.cameraView.height = Math.round(sprite.height * Phaser.SpriteUtils._cos + sprite.width * Phaser.SpriteUtils._sin);
+ sprite.cameraView.x = Math.round(sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x) - (sprite.cameraView.width * sprite.transform.origin.x));
+ sprite.cameraView.y = Math.round(sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y) - (sprite.cameraView.height * sprite.transform.origin.y));
+ } else {
+ sprite.cameraView.x = Math.min(sprite.transform.upperLeft.x, sprite.transform.upperRight.x, sprite.transform.bottomLeft.x, sprite.transform.bottomRight.x);
+ sprite.cameraView.y = Math.min(sprite.transform.upperLeft.y, sprite.transform.upperRight.y, sprite.transform.bottomLeft.y, sprite.transform.bottomRight.y);
+ sprite.cameraView.width = Math.max(sprite.transform.upperLeft.x, sprite.transform.upperRight.x, sprite.transform.bottomLeft.x, sprite.transform.bottomRight.x) - sprite.cameraView.x;
+ sprite.cameraView.height = Math.max(sprite.transform.upperLeft.y, sprite.transform.upperRight.y, sprite.transform.bottomLeft.y, sprite.transform.bottomRight.y) - sprite.cameraView.y;
+ }
+ }
+ return sprite.cameraView;
+ };
+ SpriteUtils.getAsPoints = function getAsPoints(sprite) {
+ var out = [];
+ out.push(new Phaser.Point(sprite.x, sprite.y));
+ out.push(new Phaser.Point(sprite.x + sprite.width, sprite.y));
+ out.push(new Phaser.Point(sprite.x + sprite.width, sprite.y + sprite.height));
+ out.push(new Phaser.Point(sprite.x, sprite.y + sprite.height));
+ return out;
+ };
+ SpriteUtils.overlapsPointer = function overlapsPointer(sprite, pointer) {
+ if(sprite.transform.scrollFactor.equals(1)) {
+ return Phaser.SpriteUtils.overlapsXY(sprite, pointer.worldX, pointer.worldY);
+ } else if(sprite.transform.scrollFactor.equals(0)) {
+ return Phaser.SpriteUtils.overlapsXY(sprite, pointer.x, pointer.y);
+ } else {
+ var px = pointer.worldX * sprite.transform.scrollFactor.x;
+ var py = pointer.worldY * sprite.transform.scrollFactor.y;
+ return Phaser.SpriteUtils.overlapsXY(sprite, px, py);
+ }
+ };
+ SpriteUtils.overlapsXY = function overlapsXY(sprite, x, y) {
+ if((x - sprite.transform.upperLeft.x) * (sprite.transform.upperRight.x - sprite.transform.upperLeft.x) + (y - sprite.transform.upperLeft.y) * (sprite.transform.upperRight.y - sprite.transform.upperLeft.y) < 0) {
+ return false;
+ }
+ if((x - sprite.transform.upperRight.x) * (sprite.transform.upperRight.x - sprite.transform.upperLeft.x) + (y - sprite.transform.upperRight.y) * (sprite.transform.upperRight.y - sprite.transform.upperLeft.y) > 0) {
+ return false;
+ }
+ if((x - sprite.transform.upperLeft.x) * (sprite.transform.bottomLeft.x - sprite.transform.upperLeft.x) + (y - sprite.transform.upperLeft.y) * (sprite.transform.bottomLeft.y - sprite.transform.upperLeft.y) < 0) {
+ return false;
+ }
+ if((x - sprite.transform.bottomLeft.x) * (sprite.transform.bottomLeft.x - sprite.transform.upperLeft.x) + (y - sprite.transform.bottomLeft.y) * (sprite.transform.bottomLeft.y - sprite.transform.upperLeft.y) > 0) {
+ return false;
+ }
+ return true;
+ };
+ SpriteUtils.overlapsPoint = function overlapsPoint(sprite, point) {
+ return Phaser.SpriteUtils.overlapsXY(sprite, point.x, point.y);
+ };
+ SpriteUtils.onScreen = function onScreen(sprite, camera) {
+ if (typeof camera === "undefined") { camera = null; }
+ if(camera == null) {
+ camera = sprite.game.camera;
+ }
+ Phaser.SpriteUtils.getScreenXY(sprite, SpriteUtils._tempPoint, camera);
+ return (Phaser.SpriteUtils._tempPoint.x + sprite.width > 0) && (Phaser.SpriteUtils._tempPoint.x < camera.width) && (Phaser.SpriteUtils._tempPoint.y + sprite.height > 0) && (Phaser.SpriteUtils._tempPoint.y < camera.height);
+ };
+ SpriteUtils.getScreenXY = function getScreenXY(sprite, point, camera) {
+ if (typeof point === "undefined") { point = null; }
+ if (typeof camera === "undefined") { camera = null; }
+ if(point == null) {
+ point = new Phaser.Point();
+ }
+ if(camera == null) {
+ camera = sprite.game.camera;
+ }
+ point.x = sprite.x - camera.x * sprite.transform.scrollFactor.x;
+ point.y = sprite.y - camera.y * sprite.transform.scrollFactor.y;
+ point.x += (point.x > 0) ? 0.0000001 : -0.0000001;
+ point.y += (point.y > 0) ? 0.0000001 : -0.0000001;
+ return point;
+ };
+ SpriteUtils.reset = function reset(sprite, x, y) {
+ sprite.revive();
+ sprite.x = x;
+ sprite.y = y;
+ return sprite;
+ };
+ SpriteUtils.setBounds = function setBounds(x, y, width, height) {
+ };
+ return SpriteUtils;
+ })();
+ Phaser.SpriteUtils = SpriteUtils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var DebugUtils = (function () {
+ function DebugUtils() { }
+ DebugUtils.font = '14px Courier';
+ DebugUtils.lineHeight = 16;
+ DebugUtils.renderShadow = true;
+ DebugUtils.start = function start(x, y, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ Phaser.DebugUtils.currentX = x;
+ Phaser.DebugUtils.currentY = y;
+ Phaser.DebugUtils.currentColor = color;
+ Phaser.DebugUtils.context.fillStyle = color;
+ Phaser.DebugUtils.context.font = Phaser.DebugUtils.font;
+ };
+ DebugUtils.line = function line(text, x, y) {
+ if (typeof x === "undefined") { x = null; }
+ if (typeof y === "undefined") { y = null; }
+ if(x !== null) {
+ Phaser.DebugUtils.currentX = x;
+ }
+ if(y !== null) {
+ Phaser.DebugUtils.currentY = y;
+ }
+ if(Phaser.DebugUtils.renderShadow) {
+ Phaser.DebugUtils.context.fillStyle = 'rgb(0,0,0)';
+ Phaser.DebugUtils.context.fillText(text, Phaser.DebugUtils.currentX + 1, Phaser.DebugUtils.currentY + 1);
+ Phaser.DebugUtils.context.fillStyle = Phaser.DebugUtils.currentColor;
+ }
+ Phaser.DebugUtils.context.fillText(text, Phaser.DebugUtils.currentX, Phaser.DebugUtils.currentY);
+ Phaser.DebugUtils.currentY += Phaser.DebugUtils.lineHeight;
+ };
+ DebugUtils.renderSpriteCorners = function renderSpriteCorners(sprite, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,0,255)'; }
+ Phaser.DebugUtils.start(0, 0, color);
+ Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.upperLeft.x) + ' y: ' + Math.floor(sprite.transform.upperLeft.y), sprite.transform.upperLeft.x, sprite.transform.upperLeft.y);
+ Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.upperRight.x) + ' y: ' + Math.floor(sprite.transform.upperRight.y), sprite.transform.upperRight.x, sprite.transform.upperRight.y);
+ Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.bottomLeft.x) + ' y: ' + Math.floor(sprite.transform.bottomLeft.y), sprite.transform.bottomLeft.x, sprite.transform.bottomLeft.y);
+ Phaser.DebugUtils.line('x: ' + Math.floor(sprite.transform.bottomRight.x) + ' y: ' + Math.floor(sprite.transform.bottomRight.y), sprite.transform.bottomRight.x, sprite.transform.bottomRight.y);
+ };
+ DebugUtils.renderSoundInfo = function renderSoundInfo(sound, x, y, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ Phaser.DebugUtils.start(x, y, color);
+ Phaser.DebugUtils.line('Sound: ' + sound.key + ' Locked: ' + sound.game.sound.touchLocked + ' Pending Playback: ' + sound.pendingPlayback);
+ Phaser.DebugUtils.line('Decoded: ' + sound.isDecoded + ' Decoding: ' + sound.isDecoding);
+ Phaser.DebugUtils.line('Total Duration: ' + sound.totalDuration + ' Playing: ' + sound.isPlaying);
+ Phaser.DebugUtils.line('Time: ' + sound.currentTime);
+ Phaser.DebugUtils.line('Volume: ' + sound.volume + ' Muted: ' + sound.mute);
+ Phaser.DebugUtils.line('WebAudio: ' + sound.usingWebAudio + ' Audio: ' + sound.usingAudioTag);
+ if(sound.currentMarker !== '') {
+ Phaser.DebugUtils.line('Marker: ' + sound.currentMarker + ' Duration: ' + sound.duration);
+ Phaser.DebugUtils.line('Start: ' + sound.markers[sound.currentMarker].start + ' Stop: ' + sound.markers[sound.currentMarker].stop);
+ Phaser.DebugUtils.line('Position: ' + sound.position);
+ }
+ };
+ DebugUtils.renderCameraInfo = function renderCameraInfo(camera, x, y, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ Phaser.DebugUtils.start(x, y, color);
+ Phaser.DebugUtils.line('Camera ID: ' + camera.ID + ' (' + camera.screenView.width + ' x ' + camera.screenView.height + ')');
+ Phaser.DebugUtils.line('X: ' + camera.x + ' Y: ' + camera.y + ' Rotation: ' + camera.transform.rotation);
+ Phaser.DebugUtils.line('WorldView X: ' + camera.worldView.x + ' Y: ' + camera.worldView.y + ' W: ' + camera.worldView.width + ' H: ' + camera.worldView.height);
+ Phaser.DebugUtils.line('ScreenView X: ' + camera.screenView.x + ' Y: ' + camera.screenView.y + ' W: ' + camera.screenView.width + ' H: ' + camera.screenView.height);
+ if(camera.worldBounds) {
+ Phaser.DebugUtils.line('Bounds: ' + camera.worldBounds.width + ' x ' + camera.worldBounds.height);
+ }
+ };
+ DebugUtils.renderPointer = function renderPointer(pointer, hideIfUp, downColor, upColor, color) {
+ if (typeof hideIfUp === "undefined") { hideIfUp = false; }
+ if (typeof downColor === "undefined") { downColor = 'rgba(0,255,0,0.5)'; }
+ if (typeof upColor === "undefined") { upColor = 'rgba(255,0,0,0.5)'; }
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ if(hideIfUp == true && pointer.isUp == true) {
+ return;
+ }
+ Phaser.DebugUtils.context.beginPath();
+ Phaser.DebugUtils.context.arc(pointer.x, pointer.y, pointer.circle.radius, 0, Math.PI * 2);
+ if(pointer.active) {
+ Phaser.DebugUtils.context.fillStyle = downColor;
+ } else {
+ Phaser.DebugUtils.context.fillStyle = upColor;
+ }
+ Phaser.DebugUtils.context.fill();
+ Phaser.DebugUtils.context.closePath();
+ Phaser.DebugUtils.context.beginPath();
+ Phaser.DebugUtils.context.moveTo(pointer.positionDown.x, pointer.positionDown.y);
+ Phaser.DebugUtils.context.lineTo(pointer.position.x, pointer.position.y);
+ Phaser.DebugUtils.context.lineWidth = 2;
+ Phaser.DebugUtils.context.stroke();
+ Phaser.DebugUtils.context.closePath();
+ Phaser.DebugUtils.start(pointer.x, pointer.y - 100, color);
+ Phaser.DebugUtils.line('ID: ' + pointer.id + " Active: " + pointer.active);
+ Phaser.DebugUtils.line('World X: ' + pointer.worldX + " World Y: " + pointer.worldY);
+ Phaser.DebugUtils.line('Screen X: ' + pointer.x + " Screen Y: " + pointer.y);
+ Phaser.DebugUtils.line('Duration: ' + pointer.duration + " ms");
+ };
+ DebugUtils.renderSpriteInputInfo = function renderSpriteInputInfo(sprite, x, y, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ Phaser.DebugUtils.start(x, y, color);
+ Phaser.DebugUtils.line('Sprite Input: (' + sprite.width + ' x ' + sprite.height + ')');
+ Phaser.DebugUtils.line('x: ' + sprite.input.pointerX().toFixed(1) + ' y: ' + sprite.input.pointerY().toFixed(1));
+ Phaser.DebugUtils.line('over: ' + sprite.input.pointerOver() + ' duration: ' + sprite.input.overDuration().toFixed(0));
+ Phaser.DebugUtils.line('down: ' + sprite.input.pointerDown() + ' duration: ' + sprite.input.downDuration().toFixed(0));
+ Phaser.DebugUtils.line('just over: ' + sprite.input.justOver() + ' just out: ' + sprite.input.justOut());
+ };
+ DebugUtils.renderInputInfo = function renderInputInfo(x, y, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ Phaser.DebugUtils.start(x, y, color);
+ if(Phaser.DebugUtils.game.input.camera) {
+ Phaser.DebugUtils.line('Input - Camera: ' + Phaser.DebugUtils.game.input.camera.ID);
+ } else {
+ Phaser.DebugUtils.line('Input - Camera: null');
+ }
+ Phaser.DebugUtils.line('X: ' + Phaser.DebugUtils.game.input.x + ' Y: ' + Phaser.DebugUtils.game.input.y);
+ Phaser.DebugUtils.line('World X: ' + Phaser.DebugUtils.game.input.worldX + ' World Y: ' + Phaser.DebugUtils.game.input.worldY);
+ Phaser.DebugUtils.line('Scale X: ' + Phaser.DebugUtils.game.input.scale.x.toFixed(1) + ' Scale Y: ' + Phaser.DebugUtils.game.input.scale.x.toFixed(1));
+ Phaser.DebugUtils.line('Screen X: ' + Phaser.DebugUtils.game.input.activePointer.screenX + ' Screen Y: ' + Phaser.DebugUtils.game.input.activePointer.screenY);
+ };
+ DebugUtils.renderSpriteWorldView = function renderSpriteWorldView(sprite, x, y, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ Phaser.DebugUtils.start(x, y, color);
+ Phaser.DebugUtils.line('Sprite World Coords (' + sprite.width + ' x ' + sprite.height + ')');
+ Phaser.DebugUtils.line('x: ' + sprite.worldView.x + ' y: ' + sprite.worldView.y);
+ Phaser.DebugUtils.line('bottom: ' + sprite.worldView.bottom + ' right: ' + sprite.worldView.right.toFixed(1));
+ };
+ DebugUtils.renderSpriteWorldViewBounds = function renderSpriteWorldViewBounds(sprite, color) {
+ if (typeof color === "undefined") { color = 'rgba(0,255,0,0.3)'; }
+ Phaser.DebugUtils.renderRectangle(sprite.worldView, color);
+ };
+ DebugUtils.renderSpriteInfo = function renderSpriteInfo(sprite, x, y, color) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ Phaser.DebugUtils.start(x, y, color);
+ Phaser.DebugUtils.line('Sprite: ' + ' (' + sprite.width + ' x ' + sprite.height + ') origin: ' + sprite.transform.origin.x + ' x ' + sprite.transform.origin.y);
+ Phaser.DebugUtils.line('x: ' + sprite.x.toFixed(1) + ' y: ' + sprite.y.toFixed(1) + ' rotation: ' + sprite.rotation.toFixed(1));
+ Phaser.DebugUtils.line('wx: ' + sprite.worldView.x + ' wy: ' + sprite.worldView.y + ' ww: ' + sprite.worldView.width.toFixed(1) + ' wh: ' + sprite.worldView.height.toFixed(1) + ' wb: ' + sprite.worldView.bottom + ' wr: ' + sprite.worldView.right);
+ Phaser.DebugUtils.line('sx: ' + sprite.transform.scale.x.toFixed(1) + ' sy: ' + sprite.transform.scale.y.toFixed(1));
+ Phaser.DebugUtils.line('tx: ' + sprite.texture.width.toFixed(1) + ' ty: ' + sprite.texture.height.toFixed(1));
+ Phaser.DebugUtils.line('center x: ' + sprite.transform.center.x + ' y: ' + sprite.transform.center.y);
+ Phaser.DebugUtils.line('cameraView x: ' + sprite.cameraView.x + ' y: ' + sprite.cameraView.y + ' width: ' + sprite.cameraView.width + ' height: ' + sprite.cameraView.height);
+ Phaser.DebugUtils.line('inCamera: ' + Phaser.DebugUtils.game.renderer.spriteRenderer.inCamera(Phaser.DebugUtils.game.camera, sprite));
+ };
+ DebugUtils.renderSpriteBounds = function renderSpriteBounds(sprite, camera, color) {
+ if (typeof camera === "undefined") { camera = null; }
+ if (typeof color === "undefined") { color = 'rgba(0,255,0,0.2)'; }
+ if(camera == null) {
+ camera = Phaser.DebugUtils.game.camera;
+ }
+ var dx = sprite.worldView.x;
+ var dy = sprite.worldView.y;
+ Phaser.DebugUtils.context.fillStyle = color;
+ Phaser.DebugUtils.context.fillRect(dx, dy, sprite.width, sprite.height);
+ };
+ DebugUtils.renderPixel = function renderPixel(x, y, fillStyle) {
+ if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,1)'; }
+ Phaser.DebugUtils.context.fillStyle = fillStyle;
+ Phaser.DebugUtils.context.fillRect(x, y, 1, 1);
+ };
+ DebugUtils.renderPoint = function renderPoint(point, fillStyle) {
+ if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,1)'; }
+ Phaser.DebugUtils.context.fillStyle = fillStyle;
+ Phaser.DebugUtils.context.fillRect(point.x, point.y, 1, 1);
+ };
+ DebugUtils.renderRectangle = function renderRectangle(rect, fillStyle) {
+ if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,0.3)'; }
+ Phaser.DebugUtils.context.fillStyle = fillStyle;
+ Phaser.DebugUtils.context.fillRect(rect.x, rect.y, rect.width, rect.height);
+ };
+ DebugUtils.renderCircle = function renderCircle(circle, fillStyle) {
+ if (typeof fillStyle === "undefined") { fillStyle = 'rgba(0,255,0,0.3)'; }
+ Phaser.DebugUtils.context.fillStyle = fillStyle;
+ Phaser.DebugUtils.context.arc(circle.x, circle.y, circle.radius, 0, Math.PI * 2, false);
+ Phaser.DebugUtils.context.fill();
+ };
+ DebugUtils.renderText = function renderText(text, x, y, color, font) {
+ if (typeof color === "undefined") { color = 'rgb(255,255,255)'; }
+ if (typeof font === "undefined") { font = '16px Courier'; }
+ Phaser.DebugUtils.context.font = font;
+ Phaser.DebugUtils.context.fillStyle = color;
+ Phaser.DebugUtils.context.fillText(text, x, y);
+ };
+ return DebugUtils;
+ })();
+ Phaser.DebugUtils = DebugUtils;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Headless) {
+ var HeadlessRenderer = (function () {
+ function HeadlessRenderer(game) {
+ this.game = game;
+ }
+ HeadlessRenderer.prototype.render = function () {
+ };
+ HeadlessRenderer.prototype.renderGameObject = function (camera, object) {
+ };
+ return HeadlessRenderer;
+ })();
+ Headless.HeadlessRenderer = HeadlessRenderer;
+ })(Renderer.Headless || (Renderer.Headless = {}));
+ var Headless = Renderer.Headless;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Canvas) {
+ var CameraRenderer = (function () {
+ function CameraRenderer(game) {
+ this._ga = 1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = 0;
+ this._sh = 0;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = 0;
+ this._dh = 0;
+ this._fx = 1;
+ this._fy = 1;
+ this._tx = 0;
+ this._ty = 0;
+ this._gac = 1;
+ this._sin = 0;
+ this._cos = 1;
+ this.game = game;
+ }
+ CameraRenderer.prototype.preRender = function (camera) {
+ if(camera.visible == false || camera.transform.scale.x == 0 || camera.transform.scale.y == 0 || camera.texture.alpha < 0.1) {
+ return false;
+ }
+ if(this.game.device.patchAndroidClearRectBug) {
+ camera.texture.context.fillStyle = 'rgb(0,0,0)';
+ camera.texture.context.fillRect(0, 0, camera.width, camera.height);
+ } else {
+ camera.texture.context.clearRect(0, 0, camera.width, camera.height);
+ }
+ if(camera.texture.alpha !== 1 && camera.texture.context.globalAlpha != camera.texture.alpha) {
+ this._ga = camera.texture.context.globalAlpha;
+ camera.texture.context.globalAlpha = camera.texture.alpha;
+ }
+ if(camera.texture.opaque) {
+ camera.texture.context.fillStyle = camera.texture.backgroundColor;
+ camera.texture.context.fillRect(0, 0, camera.width, camera.height);
+ }
+ if(camera.texture.globalCompositeOperation) {
+ camera.texture.context.globalCompositeOperation = camera.texture.globalCompositeOperation;
+ }
+ camera.plugins.preRender();
+ };
+ CameraRenderer.prototype.postRender = function (camera) {
+ if(this._ga > -1) {
+ camera.texture.context.globalAlpha = this._ga;
+ }
+ camera.plugins.postRender();
+ this._ga = -1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = camera.width;
+ this._sh = camera.height;
+ this._fx = camera.transform.scale.x;
+ this._fy = camera.transform.scale.y;
+ this._sin = 0;
+ this._cos = 1;
+ this._dx = camera.screenView.x;
+ this._dy = camera.screenView.y;
+ this._dw = camera.width;
+ this._dh = camera.height;
+ this.game.stage.context.save();
+ if(camera.texture.flippedX) {
+ this._fx = -camera.transform.scale.x;
+ }
+ if(camera.texture.flippedY) {
+ this._fy = -camera.transform.scale.y;
+ }
+ if(camera.modified) {
+ if(camera.transform.rotation !== 0 || camera.transform.rotationOffset !== 0) {
+ this._sin = Math.sin(camera.game.math.degreesToRadians(camera.transform.rotationOffset + camera.transform.rotation));
+ this._cos = Math.cos(camera.game.math.degreesToRadians(camera.transform.rotationOffset + camera.transform.rotation));
+ }
+ this.game.stage.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + camera.transform.skew.x, -(this._sin * this._fy) + camera.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
+ this._dx = camera.transform.origin.x * -this._dw;
+ this._dy = camera.transform.origin.y * -this._dh;
+ } else {
+ this._dx -= (this._dw * camera.transform.origin.x);
+ this._dy -= (this._dh * camera.transform.origin.y);
+ }
+ this._sx = Math.floor(this._sx);
+ this._sy = Math.floor(this._sy);
+ this._sw = Math.floor(this._sw);
+ this._sh = Math.floor(this._sh);
+ this._dx = Math.floor(this._dx);
+ this._dy = Math.floor(this._dy);
+ this._dw = Math.floor(this._dw);
+ this._dh = Math.floor(this._dh);
+ if(this._sw <= 0 || this._sh <= 0 || this._dw <= 0 || this._dh <= 0) {
+ this.game.stage.context.restore();
+ return false;
+ }
+ this.game.stage.context.drawImage(camera.texture.canvas, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
+ this.game.stage.context.restore();
+ };
+ return CameraRenderer;
+ })();
+ Canvas.CameraRenderer = CameraRenderer;
+ })(Renderer.Canvas || (Renderer.Canvas = {}));
+ var Canvas = Renderer.Canvas;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Canvas) {
+ var GeometryRenderer = (function () {
+ function GeometryRenderer(game) {
+ this._ga = 1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = 0;
+ this._sh = 0;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = 0;
+ this._dh = 0;
+ this._fx = 1;
+ this._fy = 1;
+ this._sin = 0;
+ this._cos = 1;
+ this.game = game;
+ }
+ GeometryRenderer.prototype.renderCircle = function (camera, circle, context, outline, fill, lineColor, fillColor, lineWidth) {
+ if (typeof outline === "undefined") { outline = false; }
+ if (typeof fill === "undefined") { fill = true; }
+ if (typeof lineColor === "undefined") { lineColor = 'rgb(0,255,0)'; }
+ if (typeof fillColor === "undefined") { fillColor = 'rgba(0,100,0.0.3)'; }
+ if (typeof lineWidth === "undefined") { lineWidth = 1; }
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = circle.diameter;
+ this._sh = circle.diameter;
+ this._fx = 1;
+ this._fy = 1;
+ this._sin = 0;
+ this._cos = 1;
+ this._dx = camera.screenView.x + circle.x - camera.worldView.x;
+ this._dy = camera.screenView.y + circle.y - camera.worldView.y;
+ this._dw = circle.diameter;
+ this._dh = circle.diameter;
+ this._sx = Math.floor(this._sx);
+ this._sy = Math.floor(this._sy);
+ this._sw = Math.floor(this._sw);
+ this._sh = Math.floor(this._sh);
+ this._dx = Math.floor(this._dx);
+ this._dy = Math.floor(this._dy);
+ this._dw = Math.floor(this._dw);
+ this._dh = Math.floor(this._dh);
+ this.game.stage.saveCanvasValues();
+ context.save();
+ context.lineWidth = lineWidth;
+ context.strokeStyle = lineColor;
+ context.fillStyle = fillColor;
+ context.beginPath();
+ context.arc(this._dx, this._dy, circle.radius, 0, Math.PI * 2);
+ context.closePath();
+ if(outline) {
+ }
+ if(fill) {
+ context.fill();
+ }
+ context.restore();
+ this.game.stage.restoreCanvasValues();
+ return true;
+ };
+ return GeometryRenderer;
+ })();
+ Canvas.GeometryRenderer = GeometryRenderer;
+ })(Renderer.Canvas || (Renderer.Canvas = {}));
+ var Canvas = Renderer.Canvas;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Canvas) {
+ var GroupRenderer = (function () {
+ function GroupRenderer(game) {
+ this._ga = 1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = 0;
+ this._sh = 0;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = 0;
+ this._dh = 0;
+ this._fx = 1;
+ this._fy = 1;
+ this._sin = 0;
+ this._cos = 1;
+ this.game = game;
+ }
+ GroupRenderer.prototype.preRender = function (camera, group) {
+ if(group.visible == false || camera.transform.scale.x == 0 || camera.transform.scale.y == 0 || camera.texture.alpha < 0.1) {
+ return false;
+ }
+ this._ga = -1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = group.texture.width;
+ this._sh = group.texture.height;
+ this._fx = group.transform.scale.x;
+ this._fy = group.transform.scale.y;
+ this._sin = 0;
+ this._cos = 1;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = group.texture.width;
+ this._dh = group.texture.height;
+ if(group.texture.globalCompositeOperation) {
+ group.texture.context.save();
+ group.texture.context.globalCompositeOperation = group.texture.globalCompositeOperation;
+ }
+ if(group.texture.alpha !== 1 && group.texture.context.globalAlpha !== group.texture.alpha) {
+ this._ga = group.texture.context.globalAlpha;
+ group.texture.context.globalAlpha = group.texture.alpha;
+ }
+ if(group.texture.flippedX) {
+ this._fx = -group.transform.scale.x;
+ }
+ if(group.texture.flippedY) {
+ this._fy = -group.transform.scale.y;
+ }
+ if(group.modified) {
+ if(group.transform.rotation !== 0 || group.transform.rotationOffset !== 0) {
+ this._sin = Math.sin(group.game.math.degreesToRadians(group.transform.rotationOffset + group.transform.rotation));
+ this._cos = Math.cos(group.game.math.degreesToRadians(group.transform.rotationOffset + group.transform.rotation));
+ }
+ group.texture.context.save();
+ group.texture.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + group.transform.skew.x, -(this._sin * this._fy) + group.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
+ this._dx = -group.transform.origin.x;
+ this._dy = -group.transform.origin.y;
+ } else {
+ if(!group.transform.origin.equals(0)) {
+ this._dx -= group.transform.origin.x;
+ this._dy -= group.transform.origin.y;
+ }
+ }
+ this._sx = Math.floor(this._sx);
+ this._sy = Math.floor(this._sy);
+ this._sw = Math.floor(this._sw);
+ this._sh = Math.floor(this._sh);
+ this._dx = Math.floor(this._dx);
+ this._dy = Math.floor(this._dy);
+ this._dw = Math.floor(this._dw);
+ this._dh = Math.floor(this._dh);
+ if(group.texture.opaque) {
+ group.texture.context.fillStyle = group.texture.backgroundColor;
+ group.texture.context.fillRect(this._dx, this._dy, this._dw, this._dh);
+ }
+ if(group.texture.loaded) {
+ group.texture.context.drawImage(group.texture.texture, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
+ }
+ return true;
+ };
+ GroupRenderer.prototype.postRender = function (camera, group) {
+ if(group.modified || group.texture.globalCompositeOperation) {
+ group.texture.context.restore();
+ }
+ if(this._ga > -1) {
+ group.texture.context.globalAlpha = this._ga;
+ }
+ };
+ return GroupRenderer;
+ })();
+ Canvas.GroupRenderer = GroupRenderer;
+ })(Renderer.Canvas || (Renderer.Canvas = {}));
+ var Canvas = Renderer.Canvas;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Canvas) {
+ var ScrollZoneRenderer = (function () {
+ function ScrollZoneRenderer(game) {
+ this._ga = 1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = 0;
+ this._sh = 0;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = 0;
+ this._dh = 0;
+ this._fx = 1;
+ this._fy = 1;
+ this._sin = 0;
+ this._cos = 1;
+ this.game = game;
+ }
+ ScrollZoneRenderer.prototype.inCamera = function (camera, scrollZone) {
+ if(scrollZone.transform.scrollFactor.equals(0)) {
+ return true;
+ }
+ return true;
+ };
+ ScrollZoneRenderer.prototype.render = function (camera, scrollZone) {
+ if(scrollZone.transform.scale.x == 0 || scrollZone.transform.scale.y == 0 || scrollZone.texture.alpha < 0.1 || this.inCamera(camera, scrollZone) == false) {
+ return false;
+ }
+ this._ga = -1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = scrollZone.width;
+ this._sh = scrollZone.height;
+ this._fx = scrollZone.transform.scale.x;
+ this._fy = scrollZone.transform.scale.y;
+ this._sin = 0;
+ this._cos = 1;
+ this._dx = (camera.screenView.x * scrollZone.transform.scrollFactor.x) + scrollZone.x - (camera.worldView.x * scrollZone.transform.scrollFactor.x);
+ this._dy = (camera.screenView.y * scrollZone.transform.scrollFactor.y) + scrollZone.y - (camera.worldView.y * scrollZone.transform.scrollFactor.y);
+ this._dw = scrollZone.width;
+ this._dh = scrollZone.height;
+ if(scrollZone.texture.alpha !== 1) {
+ this._ga = scrollZone.texture.context.globalAlpha;
+ scrollZone.texture.context.globalAlpha = scrollZone.texture.alpha;
+ }
+ if(scrollZone.texture.flippedX) {
+ this._fx = -scrollZone.transform.scale.x;
+ }
+ if(scrollZone.texture.flippedY) {
+ this._fy = -scrollZone.transform.scale.y;
+ }
+ if(scrollZone.modified) {
+ if(scrollZone.texture.renderRotation == true && (scrollZone.rotation !== 0 || scrollZone.transform.rotationOffset !== 0)) {
+ this._sin = Math.sin(scrollZone.game.math.degreesToRadians(scrollZone.transform.rotationOffset + scrollZone.rotation));
+ this._cos = Math.cos(scrollZone.game.math.degreesToRadians(scrollZone.transform.rotationOffset + scrollZone.rotation));
+ }
+ scrollZone.texture.context.save();
+ scrollZone.texture.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + scrollZone.transform.skew.x, -(this._sin * this._fy) + scrollZone.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
+ this._dx = -scrollZone.transform.origin.x;
+ this._dy = -scrollZone.transform.origin.y;
+ } else {
+ if(!scrollZone.transform.origin.equals(0)) {
+ this._dx -= scrollZone.transform.origin.x;
+ this._dy -= scrollZone.transform.origin.y;
+ }
+ }
+ this._sx = Math.floor(this._sx);
+ this._sy = Math.floor(this._sy);
+ this._sw = Math.floor(this._sw);
+ this._sh = Math.floor(this._sh);
+ this._dx = Math.floor(this._dx);
+ this._dy = Math.floor(this._dy);
+ this._dw = Math.floor(this._dw);
+ this._dh = Math.floor(this._dh);
+ for(var i = 0; i < scrollZone.regions.length; i++) {
+ if(scrollZone.texture.isDynamic) {
+ scrollZone.regions[i].render(scrollZone.texture.context, scrollZone.texture.texture, this._dx, this._dy, this._dw, this._dh);
+ } else {
+ scrollZone.regions[i].render(scrollZone.texture.context, scrollZone.texture.texture, this._dx, this._dy, this._dw, this._dh);
+ }
+ }
+ if(scrollZone.modified) {
+ scrollZone.texture.context.restore();
+ }
+ if(this._ga > -1) {
+ scrollZone.texture.context.globalAlpha = this._ga;
+ }
+ this.game.renderer.renderCount++;
+ return true;
+ };
+ return ScrollZoneRenderer;
+ })();
+ Canvas.ScrollZoneRenderer = ScrollZoneRenderer;
+ })(Renderer.Canvas || (Renderer.Canvas = {}));
+ var Canvas = Renderer.Canvas;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Canvas) {
+ var SpriteRenderer = (function () {
+ function SpriteRenderer(game) {
+ this._ga = 1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = 0;
+ this._sh = 0;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = 0;
+ this._dh = 0;
+ this.game = game;
+ }
+ SpriteRenderer.prototype.inCamera = function (camera, sprite) {
+ if(sprite.transform.scrollFactor.equals(0)) {
+ return true;
+ }
+ return Phaser.RectangleUtils.intersects(sprite.cameraView, camera.screenView);
+ };
+ SpriteRenderer.prototype.render = function (camera, sprite) {
+ Phaser.SpriteUtils.updateCameraView(camera, sprite);
+ if(sprite.transform.scale.x == 0 || sprite.transform.scale.y == 0 || sprite.texture.alpha < 0.1 || this.inCamera(camera, sprite) == false) {
+ return false;
+ }
+ this._ga = -1;
+ this._sx = 0;
+ this._sy = 0;
+ this._sw = sprite.texture.width;
+ this._sh = sprite.texture.height;
+ this._dx = sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
+ this._dy = sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
+ this._dw = sprite.texture.width;
+ this._dh = sprite.texture.height;
+ if(sprite.animations.currentFrame !== null) {
+ this._sx = sprite.animations.currentFrame.x;
+ this._sy = sprite.animations.currentFrame.y;
+ if(sprite.animations.currentFrame.trimmed) {
+ this._dx += sprite.animations.currentFrame.spriteSourceSizeX;
+ this._dy += sprite.animations.currentFrame.spriteSourceSizeY;
+ this._sw = sprite.animations.currentFrame.spriteSourceSizeW;
+ this._sh = sprite.animations.currentFrame.spriteSourceSizeH;
+ this._dw = sprite.animations.currentFrame.spriteSourceSizeW;
+ this._dh = sprite.animations.currentFrame.spriteSourceSizeH;
+ }
+ }
+ if(sprite.modified) {
+ camera.texture.context.save();
+ camera.texture.context.setTransform(sprite.transform.local.data[0], sprite.transform.local.data[3], sprite.transform.local.data[1], sprite.transform.local.data[4], this._dx, this._dy);
+ this._dx = sprite.transform.origin.x * -this._dw;
+ this._dy = sprite.transform.origin.y * -this._dh;
+ } else {
+ this._dx -= (this._dw * sprite.transform.origin.x);
+ this._dy -= (this._dh * sprite.transform.origin.y);
+ }
+ if(sprite.crop) {
+ this._sx += sprite.crop.x * sprite.transform.scale.x;
+ this._sy += sprite.crop.y * sprite.transform.scale.y;
+ this._sw = sprite.crop.width * sprite.transform.scale.x;
+ this._sh = sprite.crop.height * sprite.transform.scale.y;
+ this._dx += sprite.crop.x * sprite.transform.scale.x;
+ this._dy += sprite.crop.y * sprite.transform.scale.y;
+ this._dw = sprite.crop.width * sprite.transform.scale.x;
+ this._dh = sprite.crop.height * sprite.transform.scale.y;
+ }
+ this._sx = Math.floor(this._sx);
+ this._sy = Math.floor(this._sy);
+ this._sw = Math.floor(this._sw);
+ this._sh = Math.floor(this._sh);
+ this._dx = Math.floor(this._dx);
+ this._dy = Math.floor(this._dy);
+ this._dw = Math.floor(this._dw);
+ this._dh = Math.floor(this._dh);
+ if(this._sw <= 0 || this._sh <= 0 || this._dw <= 0 || this._dh <= 0) {
+ return false;
+ }
+ if(sprite.texture.globalCompositeOperation) {
+ camera.texture.context.save();
+ camera.texture.context.globalCompositeOperation = sprite.texture.globalCompositeOperation;
+ }
+ if(sprite.texture.alpha !== 1 && camera.texture.context.globalAlpha != sprite.texture.alpha) {
+ this._ga = sprite.texture.context.globalAlpha;
+ camera.texture.context.globalAlpha = sprite.texture.alpha;
+ }
+ if(sprite.texture.opaque) {
+ camera.texture.context.fillStyle = sprite.texture.backgroundColor;
+ camera.texture.context.fillRect(this._dx, this._dy, this._dw, this._dh);
+ }
+ if(sprite.texture.loaded) {
+ camera.texture.context.drawImage(sprite.texture.texture, this._sx, this._sy, this._sw, this._sh, this._dx, this._dy, this._dw, this._dh);
+ }
+ if(sprite.modified || sprite.texture.globalCompositeOperation) {
+ camera.texture.context.restore();
+ }
+ if(this._ga > -1) {
+ camera.texture.context.globalAlpha = this._ga;
+ }
+ sprite.renderOrderID = this.game.renderer.renderCount;
+ this.game.renderer.renderCount++;
+ return true;
+ };
+ return SpriteRenderer;
+ })();
+ Canvas.SpriteRenderer = SpriteRenderer;
+ })(Renderer.Canvas || (Renderer.Canvas = {}));
+ var Canvas = Renderer.Canvas;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Canvas) {
+ var TilemapRenderer = (function () {
+ function TilemapRenderer(game) {
+ this._ga = 1;
+ this._dx = 0;
+ this._dy = 0;
+ this._dw = 0;
+ this._dh = 0;
+ this._tx = 0;
+ this._ty = 0;
+ this._tl = 0;
+ this._maxX = 0;
+ this._maxY = 0;
+ this._startX = 0;
+ this._startY = 0;
+ this.game = game;
+ }
+ TilemapRenderer.prototype.render = function (camera, tilemap) {
+ this._tl = tilemap.layers.length;
+ for(var i = 0; i < this._tl; i++) {
+ if(tilemap.layers[i].visible == false || tilemap.layers[i].alpha < 0.1) {
+ continue;
+ }
+ var layer = tilemap.layers[i];
+ this._maxX = this.game.math.ceil(camera.width / layer.tileWidth) + 1;
+ this._maxY = this.game.math.ceil(camera.height / layer.tileHeight) + 1;
+ this._startX = this.game.math.floor(camera.worldView.x / layer.tileWidth);
+ this._startY = this.game.math.floor(camera.worldView.y / layer.tileHeight);
+ if(this._startX < 0) {
+ this._startX = 0;
+ }
+ if(this._startY < 0) {
+ this._startY = 0;
+ }
+ if(this._maxX > layer.widthInTiles) {
+ this._maxX = layer.widthInTiles;
+ }
+ if(this._maxY > layer.heightInTiles) {
+ this._maxY = layer.heightInTiles;
+ }
+ if(this._startX + this._maxX > layer.widthInTiles) {
+ this._startX = layer.widthInTiles - this._maxX;
+ }
+ if(this._startY + this._maxY > layer.heightInTiles) {
+ this._startY = layer.heightInTiles - this._maxY;
+ }
+ this._dx = 0;
+ this._dy = 0;
+ this._dx += -(camera.worldView.x - (this._startX * layer.tileWidth));
+ this._dy += -(camera.worldView.y - (this._startY * layer.tileHeight));
+ this._tx = this._dx;
+ this._ty = this._dy;
+ if(layer.texture.alpha !== 1) {
+ this._ga = layer.texture.context.globalAlpha;
+ layer.texture.context.globalAlpha = layer.texture.alpha;
+ }
+ for(var row = this._startY; row < this._startY + this._maxY; row++) {
+ this._columnData = layer.mapData[row];
+ for(var tile = this._startX; tile < this._startX + this._maxX; tile++) {
+ if(layer.tileOffsets[this._columnData[tile]]) {
+ layer.texture.context.drawImage(layer.texture.texture, layer.tileOffsets[this._columnData[tile]].x, layer.tileOffsets[this._columnData[tile]].y, layer.tileWidth, layer.tileHeight, this._tx, this._ty, layer.tileWidth, layer.tileHeight);
+ }
+ this._tx += layer.tileWidth;
+ }
+ this._tx = this._dx;
+ this._ty += layer.tileHeight;
+ }
+ if(this._ga > -1) {
+ layer.texture.context.globalAlpha = this._ga;
+ }
+ }
+ return true;
+ };
+ return TilemapRenderer;
+ })();
+ Canvas.TilemapRenderer = TilemapRenderer;
+ })(Renderer.Canvas || (Renderer.Canvas = {}));
+ var Canvas = Renderer.Canvas;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Renderer) {
+ (function (Canvas) {
+ var CanvasRenderer = (function () {
+ function CanvasRenderer(game) {
+ this._c = 0;
+ this.game = game;
+ this.cameraRenderer = new Phaser.Renderer.Canvas.CameraRenderer(game);
+ this.groupRenderer = new Phaser.Renderer.Canvas.GroupRenderer(game);
+ this.spriteRenderer = new Phaser.Renderer.Canvas.SpriteRenderer(game);
+ this.geometryRenderer = new Phaser.Renderer.Canvas.GeometryRenderer(game);
+ this.scrollZoneRenderer = new Phaser.Renderer.Canvas.ScrollZoneRenderer(game);
+ this.tilemapRenderer = new Phaser.Renderer.Canvas.TilemapRenderer(game);
+ }
+ CanvasRenderer.prototype.render = function () {
+ this._cameraList = this.game.world.getAllCameras();
+ this.renderCount = 0;
+ for(this._c = 0; this._c < this._cameraList.length; this._c++) {
+ if(this._cameraList[this._c].visible) {
+ this.cameraRenderer.preRender(this._cameraList[this._c]);
+ this.game.world.group.render(this._cameraList[this._c]);
+ this.cameraRenderer.postRender(this._cameraList[this._c]);
+ }
+ }
+ this.renderTotal = this.renderCount;
+ };
+ CanvasRenderer.prototype.renderGameObject = function (camera, object) {
+ if(object.type == Phaser.Types.SPRITE || object.type == Phaser.Types.BUTTON) {
+ this.spriteRenderer.render(camera, object);
+ } else if(object.type == Phaser.Types.SCROLLZONE) {
+ this.scrollZoneRenderer.render(camera, object);
+ } else if(object.type == Phaser.Types.TILEMAP) {
+ this.tilemapRenderer.render(camera, object);
+ }
+ };
+ return CanvasRenderer;
+ })();
+ Canvas.CanvasRenderer = CanvasRenderer;
+ })(Renderer.Canvas || (Renderer.Canvas = {}));
+ var Canvas = Renderer.Canvas;
+ })(Phaser.Renderer || (Phaser.Renderer = {}));
+ var Renderer = Phaser.Renderer;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var ParticleManager = (function () {
+ function ParticleManager(proParticleCount, integrationType) {
+ this.PARTICLE_CREATED = 'partilcleCreated';
+ this.PARTICLE_UPDATE = 'partilcleUpdate';
+ this.PARTICLE_SLEEP = 'particleSleep';
+ this.PARTICLE_DEAD = 'partilcleDead';
+ this.PROTON_UPDATE = 'protonUpdate';
+ this.PROTON_UPDATE_AFTER = 'protonUpdateAfter';
+ this.EMITTER_ADDED = 'emitterAdded';
+ this.EMITTER_REMOVED = 'emitterRemoved';
+ this.emitters = [];
+ this.renderers = [];
+ this.time = 0;
+ this.oldTime = 0;
+ this.amendChangeTabsBug = true;
+ this.TextureBuffer = {
+ };
+ this.TextureCanvasBuffer = {
+ };
+ this.proParticleCount = Particles.ParticleUtils.initValue(proParticleCount, ParticleManager.POOL_MAX);
+ this.integrationType = Particles.ParticleUtils.initValue(integrationType, ParticleManager.EULER);
+ this.emitters = [];
+ this.renderers = [];
+ this.time = 0;
+ this.oldTime = 0;
+ ParticleManager.pool = new Phaser.Particles.ParticlePool(proParticleCount);
+ ParticleManager.integrator = new Phaser.Particles.NumericalIntegration(this.integrationType);
+ }
+ ParticleManager.POOL_MAX = 1000;
+ ParticleManager.TIME_STEP = 60;
+ ParticleManager.MEASURE = 100;
+ ParticleManager.EULER = 'euler';
+ ParticleManager.RK2 = 'runge-kutta2';
+ ParticleManager.RK4 = 'runge-kutta4';
+ ParticleManager.VERLET = 'verlet';
+ ParticleManager.prototype.addRender = function (render) {
+ render.proton = this;
+ this.renderers.push(render.proton);
+ };
+ ParticleManager.prototype.addEmitter = function (emitter) {
+ this.emitters.push(emitter);
+ emitter.parent = this;
+ };
+ ParticleManager.prototype.removeEmitter = function (emitter) {
+ var index = this.emitters.indexOf(emitter);
+ this.emitters.splice(index, 1);
+ emitter.parent = null;
+ };
+ ParticleManager.prototype.update = function () {
+ if(!this.oldTime) {
+ this.oldTime = new Date().getTime();
+ }
+ var time = new Date().getTime();
+ this.elapsed = (time - this.oldTime) / 1000;
+ this.oldTime = time;
+ if(this.elapsed > 0) {
+ for(var i = 0; i < this.emitters.length; i++) {
+ this.emitters[i].update(this.elapsed);
+ }
+ }
+ };
+ ParticleManager.prototype.amendChangeTabsBugHandler = function () {
+ if(this.elapsed > .5) {
+ this.oldTime = new Date().getTime();
+ this.elapsed = 0;
+ }
+ };
+ ParticleManager.prototype.getParticleNumber = function () {
+ var total = 0;
+ for(var i = 0; i < this.emitters.length; i++) {
+ total += this.emitters[i].particles.length;
+ }
+ return total;
+ };
+ ParticleManager.prototype.destroy = function () {
+ for(var i = 0; i < this.emitters.length; i++) {
+ this.emitters[i].destory();
+ delete this.emitters[i];
+ }
+ this.emitters = [];
+ this.time = 0;
+ this.oldTime = 0;
+ ParticleManager.pool.release();
+ };
+ return ParticleManager;
+ })();
+ Particles.ParticleManager = ParticleManager;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var Particle = (function () {
+ function Particle() {
+ this.life = Infinity;
+ this.age = 0;
+ this.energy = 1;
+ this.dead = false;
+ this.sleep = false;
+ this.target = null;
+ this.sprite = null;
+ this.parent = null;
+ this.mass = 1;
+ this.radius = 10;
+ this.alpha = 1;
+ this.scale = 1;
+ this.rotation = 0;
+ this.color = null;
+ this.easing = Phaser.Easing.Linear.None;
+ this.p = new Phaser.Vec2();
+ this.v = new Phaser.Vec2();
+ this.a = new Phaser.Vec2();
+ this.old = {
+ p: new Phaser.Vec2(),
+ v: new Phaser.Vec2(),
+ a: new Phaser.Vec2()
+ };
+ this.behaviours = [];
+ this.id = 'particle_' + Particle.ID++;
+ this.reset(true);
+ }
+ Particle.ID = 0;
+ Particle.prototype.getDirection = function () {
+ return Math.atan2(this.v.x, -this.v.y) * (180 / Math.PI);
+ };
+ Particle.prototype.reset = function (init) {
+ this.life = Infinity;
+ this.age = 0;
+ this.energy = 1;
+ this.dead = false;
+ this.sleep = false;
+ this.target = null;
+ this.sprite = null;
+ this.parent = null;
+ this.mass = 1;
+ this.radius = 10;
+ this.alpha = 1;
+ this.scale = 1;
+ this.rotation = 0;
+ this.color = null;
+ this.easing = Phaser.Easing.Linear.None;
+ if(init) {
+ this.transform = {
+ };
+ this.p = new Phaser.Vec2();
+ this.v = new Phaser.Vec2();
+ this.a = new Phaser.Vec2();
+ this.old = {
+ p: new Phaser.Vec2(),
+ v: new Phaser.Vec2(),
+ a: new Phaser.Vec2()
+ };
+ this.behaviours = [];
+ } else {
+ Particles.ParticleUtils.destroyObject(this.transform);
+ this.p.setTo(0, 0);
+ this.v.setTo(0, 0);
+ this.a.setTo(0, 0);
+ this.old.p.setTo(0, 0);
+ this.old.v.setTo(0, 0);
+ this.old.a.setTo(0, 0);
+ this.removeAllBehaviours();
+ }
+ this.transform.rgb = {
+ r: 255,
+ g: 255,
+ b: 255
+ };
+ return this;
+ };
+ Particle.prototype.update = function (time, index) {
+ if(!this.sleep) {
+ this.age += time;
+ var length = this.behaviours.length, i;
+ for(i = 0; i < length; i++) {
+ if(this.behaviours[i]) {
+ this.behaviours[i].applyBehaviour(this, time, index);
+ }
+ }
+ }
+ if(this.age >= this.life) {
+ this.destroy();
+ } else {
+ var scale = this.easing(this.age / this.life);
+ this.energy = Math.max(1 - scale, 0);
+ }
+ };
+ Particle.prototype.addBehaviour = function (behaviour) {
+ this.behaviours.push(behaviour);
+ if(behaviour.hasOwnProperty('parents')) {
+ behaviour.parents.push(this);
+ }
+ behaviour.initialize(this);
+ };
+ Particle.prototype.addBehaviours = function (behaviours) {
+ var length = behaviours.length, i;
+ for(i = 0; i < length; i++) {
+ this.addBehaviour(behaviours[i]);
+ }
+ };
+ Particle.prototype.removeBehaviour = function (behaviour) {
+ var index = this.behaviours.indexOf(behaviour);
+ if(index > -1) {
+ var outBehaviour = this.behaviours.splice(index, 1);
+ }
+ };
+ Particle.prototype.removeAllBehaviours = function () {
+ Particles.ParticleUtils.destroyArray(this.behaviours);
+ };
+ Particle.prototype.destroy = function () {
+ this.removeAllBehaviours();
+ this.energy = 0;
+ this.dead = true;
+ this.parent = null;
+ };
+ return Particle;
+ })();
+ Particles.Particle = Particle;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var Emitter = (function () {
+ function Emitter(pObj) {
+ this.initializes = [];
+ this.particles = [];
+ this.behaviours = [];
+ this.emitTime = 0;
+ this.emitTotalTimes = -1;
+ this.initializes = [];
+ this.particles = [];
+ this.behaviours = [];
+ this.emitTime = 0;
+ this.emitTotalTimes = -1;
+ this.damping = .006;
+ this.bindEmitter = true;
+ this.rate = new Phaser.Particles.Initializers.Rate(1, .1);
+ this.id = 'emitter_' + Emitter.ID++;
+ }
+ Emitter.ID = 0;
+ Emitter.prototype.emit = function (emitTime, life) {
+ this.emitTime = 0;
+ this.emitTotalTimes = Particles.ParticleUtils.initValue(emitTime, Infinity);
+ if(life == true || life == 'life' || life == 'destroy') {
+ if(emitTime == 'once') {
+ this.life = 1;
+ } else {
+ this.life = this.emitTotalTimes;
+ }
+ } else if(!isNaN(life)) {
+ this.life = life;
+ }
+ this.rate.init();
+ };
+ Emitter.prototype.stopEmit = function () {
+ this.emitTotalTimes = -1;
+ this.emitTime = 0;
+ };
+ Emitter.prototype.removeAllParticles = function () {
+ for(var i = 0; i < this.particles.length; i++) {
+ this.particles[i].dead = true;
+ }
+ };
+ Emitter.prototype.createParticle = function (initialize, behaviour) {
+ if (typeof initialize === "undefined") { initialize = null; }
+ if (typeof behaviour === "undefined") { behaviour = null; }
+ var particle = Particles.ParticleManager.pool.get();
+ this.setupParticle(particle, initialize, behaviour);
+ return particle;
+ };
+ Emitter.prototype.addSelfInitialize = function (pObj) {
+ if(pObj['init']) {
+ pObj.init(this);
+ } else {
+ }
+ };
+ Emitter.prototype.addInitialize = function () {
+ var length = arguments.length, i;
+ for(i = 0; i < length; i++) {
+ this.initializes.push(arguments[i]);
+ }
+ };
+ Emitter.prototype.removeInitialize = function (initializer) {
+ var index = this.initializes.indexOf(initializer);
+ if(index > -1) {
+ this.initializes.splice(index, 1);
+ }
+ };
+ Emitter.prototype.removeInitializers = function () {
+ Particles.ParticleUtils.destroyArray(this.initializes);
+ };
+ Emitter.prototype.addBehaviour = function () {
+ var length = arguments.length, i;
+ for(i = 0; i < length; i++) {
+ this.behaviours.push(arguments[i]);
+ if(arguments[i].hasOwnProperty("parents")) {
+ arguments[i].parents.push(this);
+ }
+ }
+ };
+ Emitter.prototype.removeBehaviour = function (behaviour) {
+ var index = this.behaviours.indexOf(behaviour);
+ if(index > -1) {
+ this.behaviours.splice(index, 1);
+ }
+ };
+ Emitter.prototype.removeAllBehaviours = function () {
+ Particles.ParticleUtils.destroyArray(this.behaviours);
+ };
+ Emitter.prototype.integrate = function (time) {
+ var damping = 1 - this.damping;
+ Particles.ParticleManager.integrator.integrate(this, time, damping);
+ var length = this.particles.length, i;
+ for(i = 0; i < length; i++) {
+ var particle = this.particles[i];
+ particle.update(time, i);
+ Particles.ParticleManager.integrator.integrate(particle, time, damping);
+ }
+ };
+ Emitter.prototype.emitting = function (time) {
+ if(this.emitTotalTimes == 1) {
+ var length = this.rate.getValue(99999), i;
+ for(i = 0; i < length; i++) {
+ this.createParticle();
+ }
+ this.emitTotalTimes = 0;
+ } else if(!isNaN(this.emitTotalTimes)) {
+ this.emitTime += time;
+ if(this.emitTime < this.emitTotalTimes) {
+ var length = this.rate.getValue(time), i;
+ for(i = 0; i < length; i++) {
+ this.createParticle();
+ }
+ }
+ }
+ };
+ Emitter.prototype.update = function (time) {
+ this.age += time;
+ if(this.age >= this.life || this.dead) {
+ this.destroy();
+ }
+ this.emitting(time);
+ this.integrate(time);
+ var particle;
+ var length = this.particles.length, k;
+ for(k = length - 1; k >= 0; k--) {
+ particle = this.particles[k];
+ if(particle.dead) {
+ Particles.ParticleManager.pool.set(particle);
+ this.particles.splice(k, 1);
+ }
+ }
+ };
+ Emitter.prototype.setupParticle = function (particle, initialize, behaviour) {
+ var initializes = this.initializes;
+ var behaviours = this.behaviours;
+ if(initialize) {
+ if(initialize instanceof Array) {
+ initializes = initialize;
+ } else {
+ initializes = [
+ initialize
+ ];
+ }
+ }
+ if(behaviour) {
+ if(behaviour instanceof Array) {
+ behaviours = behaviour;
+ } else {
+ behaviours = [
+ behaviour
+ ];
+ }
+ }
+ particle.addBehaviours(behaviours);
+ particle.parent = this;
+ this.particles.push(particle);
+ };
+ Emitter.prototype.destroy = function () {
+ this.dead = true;
+ this.emitTotalTimes = -1;
+ if(this.particles.length == 0) {
+ this.removeInitializers();
+ this.removeAllBehaviours();
+ if(this.parent) {
+ this.parent.removeEmitter(this);
+ }
+ }
+ };
+ return Emitter;
+ })();
+ Particles.Emitter = Emitter;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var ParticlePool = (function () {
+ function ParticlePool(num, releaseTime) {
+ if (typeof releaseTime === "undefined") { releaseTime = 0; }
+ this.poolList = [];
+ this.timeoutID = 0;
+ this.proParticleCount = Particles.ParticleUtils.initValue(num, 0);
+ this.releaseTime = Particles.ParticleUtils.initValue(releaseTime, -1);
+ this.poolList = [];
+ this.timeoutID = 0;
+ for(var i = 0; i < this.proParticleCount; i++) {
+ this.add();
+ }
+ if(this.releaseTime > 0) {
+ this.timeoutID = setTimeout(this.release, this.releaseTime / 1000);
+ }
+ }
+ ParticlePool.prototype.create = function (newTypeParticleClass) {
+ if (typeof newTypeParticleClass === "undefined") { newTypeParticleClass = null; }
+ if(newTypeParticleClass) {
+ return new newTypeParticleClass();
+ } else {
+ return new Phaser.Particles.Particle();
+ }
+ };
+ ParticlePool.prototype.getCount = function () {
+ return this.poolList.length;
+ };
+ ParticlePool.prototype.add = function () {
+ return this.poolList.push(this.create());
+ };
+ ParticlePool.prototype.get = function () {
+ if(this.poolList.length === 0) {
+ return this.create();
+ } else {
+ return this.poolList.pop().reset();
+ }
+ };
+ ParticlePool.prototype.set = function (particle) {
+ if(this.poolList.length < Particles.ParticleManager.POOL_MAX) {
+ return this.poolList.push(particle);
+ }
+ };
+ ParticlePool.prototype.release = function () {
+ for(var i = 0; i < this.poolList.length; i++) {
+ if(this.poolList[i]['destroy']) {
+ this.poolList[i].destroy();
+ }
+ delete this.poolList[i];
+ }
+ this.poolList = [];
+ };
+ return ParticlePool;
+ })();
+ Particles.ParticlePool = ParticlePool;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var ParticleUtils = (function () {
+ function ParticleUtils() { }
+ ParticleUtils.initValue = function initValue(value, defaults) {
+ var value = (value != null && value != undefined) ? value : defaults;
+ return value;
+ };
+ ParticleUtils.isArray = function isArray(value) {
+ return typeof value === 'object' && value.hasOwnProperty('length');
+ };
+ ParticleUtils.destroyArray = function destroyArray(array) {
+ array.length = 0;
+ };
+ ParticleUtils.destroyObject = function destroyObject(obj) {
+ for(var o in obj) {
+ delete obj[o];
+ }
+ };
+ ParticleUtils.setSpanValue = function setSpanValue(a, b, c) {
+ if (typeof b === "undefined") { b = null; }
+ if (typeof c === "undefined") { c = null; }
+ if(a instanceof Phaser.Particles.Span) {
+ return a;
+ } else {
+ if(!b) {
+ return new Phaser.Particles.Span(a);
+ } else {
+ if(!c) {
+ return new Phaser.Particles.Span(a, b);
+ } else {
+ return new Phaser.Particles.Span(a, b, c);
+ }
+ }
+ }
+ };
+ ParticleUtils.getSpanValue = function getSpanValue(pan) {
+ if(pan instanceof Phaser.Particles.Span) {
+ return pan.getValue();
+ } else {
+ return pan;
+ }
+ };
+ ParticleUtils.randomAToB = function randomAToB(a, b, INT) {
+ if (typeof INT === "undefined") { INT = null; }
+ if(!INT) {
+ return a + Math.random() * (b - a);
+ } else {
+ return Math.floor(Math.random() * (b - a)) + a;
+ }
+ };
+ ParticleUtils.randomFloating = function randomFloating(center, f, INT) {
+ return ParticleUtils.randomAToB(center - f, center + f, INT);
+ };
+ ParticleUtils.randomZone = function randomZone(display) {
+ };
+ ParticleUtils.degreeTransform = function degreeTransform(a) {
+ return a * Math.PI / 180;
+ };
+ ParticleUtils.randomColor = function randomColor() {
+ return '#' + ('00000' + (Math.random() * 0x1000000 << 0).toString(16)).slice(-6);
+ };
+ ParticleUtils.setEasingByName = function setEasingByName(name) {
+ switch(name) {
+ case 'easeLinear':
+ return Phaser.Easing.Linear.None;
+ break;
+ case 'easeInQuad':
+ return Phaser.Easing.Quadratic.In;
+ break;
+ case 'easeOutQuad':
+ return Phaser.Easing.Quadratic.Out;
+ break;
+ case 'easeInOutQuad':
+ return Phaser.Easing.Quadratic.InOut;
+ break;
+ case 'easeInCubic':
+ return Phaser.Easing.Cubic.In;
+ break;
+ case 'easeOutCubic':
+ return Phaser.Easing.Cubic.Out;
+ break;
+ case 'easeInOutCubic':
+ return Phaser.Easing.Cubic.InOut;
+ break;
+ case 'easeInQuart':
+ return Phaser.Easing.Quartic.In;
+ break;
+ case 'easeOutQuart':
+ return Phaser.Easing.Quartic.Out;
+ break;
+ case 'easeInOutQuart':
+ return Phaser.Easing.Quartic.InOut;
+ break;
+ case 'easeInSine':
+ return Phaser.Easing.Sinusoidal.In;
+ break;
+ case 'easeOutSine':
+ return Phaser.Easing.Sinusoidal.Out;
+ break;
+ case 'easeInOutSine':
+ return Phaser.Easing.Sinusoidal.InOut;
+ break;
+ case 'easeInExpo':
+ return Phaser.Easing.Exponential.In;
+ break;
+ case 'easeOutExpo':
+ return Phaser.Easing.Exponential.Out;
+ break;
+ case 'easeInOutExpo':
+ return Phaser.Easing.Exponential.InOut;
+ break;
+ case 'easeInCirc':
+ return Phaser.Easing.Circular.In;
+ break;
+ case 'easeOutCirc':
+ return Phaser.Easing.Circular.Out;
+ break;
+ case 'easeInOutCirc':
+ return Phaser.Easing.Circular.InOut;
+ break;
+ case 'easeInBack':
+ return Phaser.Easing.Back.In;
+ break;
+ case 'easeOutBack':
+ return Phaser.Easing.Back.Out;
+ break;
+ case 'easeInOutBack':
+ return Phaser.Easing.Back.InOut;
+ break;
+ default:
+ return Phaser.Easing.Linear.None;
+ break;
+ }
+ };
+ return ParticleUtils;
+ })();
+ Particles.ParticleUtils = ParticleUtils;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var Polar2D = (function () {
+ function Polar2D(r, tha) {
+ this.r = Math.abs(r) || 0;
+ this.tha = tha || 0;
+ }
+ Polar2D.prototype.set = function (r, tha) {
+ this.r = r;
+ this.tha = tha;
+ return this;
+ };
+ Polar2D.prototype.setR = function (r) {
+ this.r = r;
+ return this;
+ };
+ Polar2D.prototype.setTha = function (tha) {
+ this.tha = tha;
+ return this;
+ };
+ Polar2D.prototype.copy = function (p) {
+ this.r = p.r;
+ this.tha = p.tha;
+ return this;
+ };
+ Polar2D.prototype.toVector = function () {
+ return new Phaser.Vec2(this.getX(), this.getY());
+ };
+ Polar2D.prototype.getX = function () {
+ return this.r * Math.sin(this.tha);
+ };
+ Polar2D.prototype.getY = function () {
+ return -this.r * Math.cos(this.tha);
+ };
+ Polar2D.prototype.normalize = function () {
+ this.r = 1;
+ return this;
+ };
+ Polar2D.prototype.equals = function (v) {
+ return ((v.r === this.r) && (v.tha === this.tha));
+ };
+ Polar2D.prototype.toArray = function () {
+ return [
+ this.r,
+ this.tha
+ ];
+ };
+ Polar2D.prototype.clear = function () {
+ this.r = 0.0;
+ this.tha = 0.0;
+ return this;
+ };
+ Polar2D.prototype.clone = function () {
+ return new Polar2D(this.r, this.tha);
+ };
+ return Polar2D;
+ })();
+ Particles.Polar2D = Polar2D;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var Span = (function () {
+ function Span(a, b, center) {
+ if (typeof b === "undefined") { b = null; }
+ if (typeof center === "undefined") { center = null; }
+ this.isArray = false;
+ if(Particles.ParticleUtils.isArray(a)) {
+ this.isArray = true;
+ this.a = a;
+ } else {
+ this.a = Particles.ParticleUtils.initValue(a, 1);
+ this.b = Particles.ParticleUtils.initValue(b, this.a);
+ this.center = Particles.ParticleUtils.initValue(center, false);
+ }
+ }
+ Span.prototype.getValue = function (INT) {
+ if (typeof INT === "undefined") { INT = null; }
+ if(this.isArray) {
+ return this.a[Math.floor(this.a.length * Math.random())];
+ } else {
+ if(!this.center) {
+ return Particles.ParticleUtils.randomAToB(this.a, this.b, INT);
+ } else {
+ return Particles.ParticleUtils.randomFloating(this.a, this.b, INT);
+ }
+ }
+ };
+ Span.getSpan = function getSpan(a, b, center) {
+ return new Span(a, b, center);
+ };
+ return Span;
+ })();
+ Particles.Span = Span;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ var NumericalIntegration = (function () {
+ function NumericalIntegration(type) {
+ this.type = Particles.ParticleUtils.initValue(type, Particles.ParticleManager.EULER);
+ }
+ NumericalIntegration.prototype.integrate = function (particles, time, damping) {
+ this.eulerIntegrate(particles, time, damping);
+ };
+ NumericalIntegration.prototype.eulerIntegrate = function (particle, time, damping) {
+ if(!particle.sleep) {
+ particle.old.p.copy(particle.p);
+ particle.old.v.copy(particle.v);
+ particle.a.multiplyScalar(1 / particle.mass);
+ particle.v.add(particle.a.multiplyScalar(time));
+ particle.p.add(particle.old.v.multiplyScalar(time));
+ if(damping) {
+ particle.v.multiplyScalar(damping);
+ }
+ particle.a.clear();
+ }
+ };
+ return NumericalIntegration;
+ })();
+ Particles.NumericalIntegration = NumericalIntegration;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Behaviours) {
+ var Behaviour = (function () {
+ function Behaviour(life, easing) {
+ this.id = 'Behaviour_' + Behaviour.ID++;
+ this.life = Particles.ParticleUtils.initValue(life, Infinity);
+ this.easing = Particles.ParticleUtils.setEasingByName(easing);
+ this.age = 0;
+ this.energy = 1;
+ this.dead = false;
+ this.parents = [];
+ this.name = 'Behaviour';
+ }
+ Behaviour.prototype.normalizeForce = function (force) {
+ return force.multiplyScalar(Particles.ParticleManager.MEASURE);
+ };
+ Behaviour.prototype.normalizeValue = function (value) {
+ return value * Particles.ParticleManager.MEASURE;
+ };
+ Behaviour.prototype.initialize = function (particle) {
+ };
+ Behaviour.prototype.applyBehaviour = function (particle, time, index) {
+ this.age += time;
+ if(this.age >= this.life || this.dead) {
+ this.energy = 0;
+ this.dead = true;
+ this.destroy();
+ } else {
+ var scale = this.easing(particle.age / particle.life);
+ this.energy = Math.max(1 - scale, 0);
+ }
+ };
+ Behaviour.prototype.destroy = function () {
+ var index;
+ var length = this.parents.length, i;
+ for(i = 0; i < length; i++) {
+ this.parents[i].removeBehaviour(this);
+ }
+ this.parents = [];
+ };
+ return Behaviour;
+ })();
+ Behaviours.Behaviour = Behaviour;
+ })(Particles.Behaviours || (Particles.Behaviours = {}));
+ var Behaviours = Particles.Behaviours;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Behaviours) {
+ var RandomDrift = (function (_super) {
+ __extends(RandomDrift, _super);
+ function RandomDrift(driftX, driftY, delay, life, easing) {
+ _super.call(this, life, easing);
+ this.reset(driftX, driftY, delay);
+ this.time = 0;
+ this.name = "RandomDrift";
+ }
+ RandomDrift.prototype.reset = function (driftX, driftY, delay, life, easing) {
+ if (typeof life === "undefined") { life = null; }
+ if (typeof easing === "undefined") { easing = null; }
+ this.panFoce = new Phaser.Vec2(driftX, driftY);
+ this.panFoce = this.normalizeForce(this.panFoce);
+ this.delay = delay;
+ if(life) {
+ this.life = Particles.ParticleUtils.initValue(life, Infinity);
+ this.easing = Particles.ParticleUtils.initValue(easing, Phaser.Easing.Linear.None);
+ }
+ };
+ RandomDrift.prototype.applyBehaviour = function (particle, time, index) {
+ _super.prototype.applyBehaviour.call(this, particle, time, index);
+ this.time += time;
+ if(this.time >= this.delay) {
+ particle.a.addXY(Particles.ParticleUtils.randomAToB(-this.panFoce.x, this.panFoce.x), Particles.ParticleUtils.randomAToB(-this.panFoce.y, this.panFoce.y));
+ this.time = 0;
+ }
+ };
+ return RandomDrift;
+ })(Behaviours.Behaviour);
+ Behaviours.RandomDrift = RandomDrift;
+ })(Particles.Behaviours || (Particles.Behaviours = {}));
+ var Behaviours = Particles.Behaviours;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Initializers) {
+ var Initialize = (function () {
+ function Initialize() { }
+ Initialize.prototype.initialize = function (target) {
+ };
+ Initialize.prototype.reset = function (a, b, c) {
+ };
+ Initialize.prototype.init = function (emitter, particle) {
+ if (typeof particle === "undefined") { particle = null; }
+ if(particle) {
+ this.initialize(particle);
+ } else {
+ this.initialize(emitter);
+ }
+ };
+ return Initialize;
+ })();
+ Initializers.Initialize = Initialize;
+ })(Particles.Initializers || (Particles.Initializers = {}));
+ var Initializers = Particles.Initializers;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Initializers) {
+ var Life = (function (_super) {
+ __extends(Life, _super);
+ function Life(a, b, c) {
+ _super.call(this);
+ this.lifePan = Particles.ParticleUtils.setSpanValue(a, b, c);
+ }
+ Life.prototype.initialize = function (target) {
+ if(this.lifePan.a == Infinity) {
+ target.life = Infinity;
+ } else {
+ target.life = this.lifePan.getValue();
+ }
+ };
+ return Life;
+ })(Initializers.Initialize);
+ Initializers.Life = Life;
+ })(Particles.Initializers || (Particles.Initializers = {}));
+ var Initializers = Particles.Initializers;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Initializers) {
+ var Mass = (function (_super) {
+ __extends(Mass, _super);
+ function Mass(a, b, c) {
+ _super.call(this);
+ this.massPan = Particles.ParticleUtils.setSpanValue(a, b, c);
+ }
+ Mass.prototype.initialize = function (target) {
+ target.mass = this.massPan.getValue();
+ };
+ return Mass;
+ })(Initializers.Initialize);
+ Initializers.Mass = Mass;
+ })(Particles.Initializers || (Particles.Initializers = {}));
+ var Initializers = Particles.Initializers;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Initializers) {
+ var Position = (function (_super) {
+ __extends(Position, _super);
+ function Position(zone) {
+ _super.call(this);
+ if(zone != null && zone != undefined) {
+ this.zone = zone;
+ } else {
+ this.zone = new Phaser.Particles.Zones.PointZone();
+ }
+ }
+ Position.prototype.reset = function (zone) {
+ if(zone != null && zone != undefined) {
+ this.zone = zone;
+ } else {
+ this.zone = new Phaser.Particles.Zones.PointZone();
+ }
+ };
+ Position.prototype.initialize = function (target) {
+ this.zone.getPosition();
+ target.p.x = this.zone.vector.x;
+ target.p.y = this.zone.vector.y;
+ };
+ return Position;
+ })(Initializers.Initialize);
+ Initializers.Position = Position;
+ })(Particles.Initializers || (Particles.Initializers = {}));
+ var Initializers = Particles.Initializers;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Initializers) {
+ var Rate = (function (_super) {
+ __extends(Rate, _super);
+ function Rate(numpan, timepan) {
+ _super.call(this);
+ numpan = Particles.ParticleUtils.initValue(numpan, 1);
+ timepan = Particles.ParticleUtils.initValue(timepan, 1);
+ this.numPan = new Phaser.Particles.Span(numpan);
+ this.timePan = new Phaser.Particles.Span(timepan);
+ this.startTime = 0;
+ this.nextTime = 0;
+ this.init();
+ }
+ Rate.prototype.init = function () {
+ this.startTime = 0;
+ this.nextTime = this.timePan.getValue();
+ };
+ Rate.prototype.getValue = function (time) {
+ this.startTime += time;
+ if(this.startTime >= this.nextTime) {
+ this.startTime = 0;
+ this.nextTime = this.timePan.getValue();
+ if(this.numPan.b == 1) {
+ if(this.numPan.getValue(false) > 0.5) {
+ return 1;
+ } else {
+ return 0;
+ }
+ } else {
+ return this.numPan.getValue(true);
+ }
+ }
+ return 0;
+ };
+ return Rate;
+ })(Initializers.Initialize);
+ Initializers.Rate = Rate;
+ })(Particles.Initializers || (Particles.Initializers = {}));
+ var Initializers = Particles.Initializers;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Initializers) {
+ var Velocity = (function (_super) {
+ __extends(Velocity, _super);
+ function Velocity(rpan, thapan, type) {
+ _super.call(this);
+ this.rPan = Particles.ParticleUtils.setSpanValue(rpan);
+ this.thaPan = Particles.ParticleUtils.setSpanValue(thapan);
+ this.type = Particles.ParticleUtils.initValue(type, 'vector');
+ }
+ Velocity.prototype.reset = function (rpan, thapan, type) {
+ this.rPan = Particles.ParticleUtils.setSpanValue(rpan);
+ this.thaPan = Particles.ParticleUtils.setSpanValue(thapan);
+ this.type = Particles.ParticleUtils.initValue(type, 'vector');
+ };
+ Velocity.prototype.normalizeVelocity = function (vr) {
+ return vr * Particles.ParticleManager.MEASURE;
+ };
+ Velocity.prototype.initialize = function (target) {
+ if(this.type == 'p' || this.type == 'P' || this.type == 'polar') {
+ var polar2d = new Particles.Polar2D(this.normalizeVelocity(this.rPan.getValue()), this.thaPan.getValue() * Math.PI / 180);
+ target.v.x = polar2d.getX();
+ target.v.y = polar2d.getY();
+ } else {
+ target.v.x = this.normalizeVelocity(this.rPan.getValue());
+ target.v.y = this.normalizeVelocity(this.thaPan.getValue());
+ }
+ };
+ return Velocity;
+ })(Initializers.Initialize);
+ Initializers.Velocity = Velocity;
+ })(Particles.Initializers || (Particles.Initializers = {}));
+ var Initializers = Particles.Initializers;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Zones) {
+ var Zone = (function () {
+ function Zone() {
+ this.vector = new Phaser.Vec2();
+ this.random = 0;
+ this.crossType = "dead";
+ this.alert = true;
+ }
+ return Zone;
+ })();
+ Zones.Zone = Zone;
+ })(Particles.Zones || (Particles.Zones = {}));
+ var Zones = Particles.Zones;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ (function (Particles) {
+ (function (Zones) {
+ var PointZone = (function (_super) {
+ __extends(PointZone, _super);
+ function PointZone(x, y) {
+ if (typeof x === "undefined") { x = 0; }
+ if (typeof y === "undefined") { y = 0; }
+ _super.call(this);
+ this.x = x;
+ this.y = y;
+ }
+ PointZone.prototype.getPosition = function () {
+ return this.vector.setTo(this.x, this.y);
+ };
+ PointZone.prototype.crossing = function (particle) {
+ if(this.alert) {
+ alert('Sorry PointZone does not support crossing method');
+ this.alert = false;
+ }
+ };
+ return PointZone;
+ })(Zones.Zone);
+ Zones.PointZone = PointZone;
+ })(Particles.Zones || (Particles.Zones = {}));
+ var Zones = Particles.Zones;
+ })(Phaser.Particles || (Phaser.Particles = {}));
+ var Particles = Phaser.Particles;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var World = (function () {
+ function World(game, width, height) {
+ this._groupCounter = 0;
+ this.game = game;
+ this.cameras = new Phaser.CameraManager(this.game, 0, 0, width, height);
+ this.bounds = new Phaser.Rectangle(0, 0, width, height);
+ }
+ World.prototype.getNextGroupID = function () {
+ return this._groupCounter++;
+ };
+ World.prototype.boot = function () {
+ this.group = new Phaser.Group(this.game, 0);
+ };
+ World.prototype.update = function () {
+ this.group.update();
+ this.cameras.update();
+ };
+ World.prototype.postUpdate = function () {
+ this.group.postUpdate();
+ this.cameras.postUpdate();
+ };
+ World.prototype.destroy = function () {
+ this.group.destroy();
+ this.cameras.destroy();
+ };
+ World.prototype.setSize = function (width, height, updateCameraBounds) {
+ if (typeof updateCameraBounds === "undefined") { updateCameraBounds = true; }
+ this.bounds.width = width;
+ this.bounds.height = height;
+ if(updateCameraBounds == true) {
+ this.game.camera.setBounds(0, 0, width, height);
+ }
+ };
+ Object.defineProperty(World.prototype, "width", {
+ get: function () {
+ return this.bounds.width;
+ },
+ set: function (value) {
+ this.bounds.width = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(World.prototype, "height", {
+ get: function () {
+ return this.bounds.height;
+ },
+ set: function (value) {
+ this.bounds.height = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(World.prototype, "centerX", {
+ get: function () {
+ return this.bounds.halfWidth;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(World.prototype, "centerY", {
+ get: function () {
+ return this.bounds.halfHeight;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(World.prototype, "randomX", {
+ get: function () {
+ return Math.round(Math.random() * this.bounds.width);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(World.prototype, "randomY", {
+ get: function () {
+ return Math.round(Math.random() * this.bounds.height);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ World.prototype.getAllCameras = function () {
+ return this.cameras.getAll();
+ };
+ return World;
+ })();
+ Phaser.World = World;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Stage = (function () {
+ function Stage(game, parent, width, height) {
+ var _this = this;
+ this._backgroundColor = 'rgb(0,0,0)';
+ this.clear = true;
+ this.disablePauseScreen = false;
+ this.disableBootScreen = false;
+ this.disableVisibilityChange = false;
+ this.game = game;
+ this.canvas = document.createElement('canvas');
+ this.canvas.width = width;
+ this.canvas.height = height;
+ this.context = this.canvas.getContext('2d');
+ Phaser.CanvasUtils.addToDOM(this.canvas, parent, true);
+ Phaser.CanvasUtils.setTouchAction(this.canvas);
+ this.canvas.oncontextmenu = function (event) {
+ event.preventDefault();
+ };
+ this.css3 = new Phaser.Display.CSS3Filters(this.canvas);
+ this.scaleMode = Phaser.StageScaleMode.NO_SCALE;
+ this.scale = new Phaser.StageScaleMode(this.game, width, height);
+ this.getOffset(this.canvas);
+ this.bounds = new Phaser.Rectangle(this.offset.x, this.offset.y, width, height);
+ this.aspectRatio = width / height;
+ document.addEventListener('visibilitychange', function (event) {
+ return _this.visibilityChange(event);
+ }, false);
+ document.addEventListener('webkitvisibilitychange', function (event) {
+ return _this.visibilityChange(event);
+ }, false);
+ document.addEventListener('pagehide', function (event) {
+ return _this.visibilityChange(event);
+ }, false);
+ document.addEventListener('pageshow', function (event) {
+ return _this.visibilityChange(event);
+ }, false);
+ window.onblur = function (event) {
+ return _this.visibilityChange(event);
+ };
+ window.onfocus = function (event) {
+ return _this.visibilityChange(event);
+ };
+ }
+ Stage.prototype.boot = function () {
+ this.bootScreen = new Phaser.BootScreen(this.game);
+ this.pauseScreen = new Phaser.PauseScreen(this.game, this.width, this.height);
+ this.orientationScreen = new Phaser.OrientationScreen(this.game);
+ this.scale.setScreenSize(true);
+ };
+ Stage.prototype.update = function () {
+ this.scale.update();
+ this.context.setTransform(1, 0, 0, 1, 0, 0);
+ if(this.clear || (this.game.paused && this.disablePauseScreen == false)) {
+ if(this.game.device.patchAndroidClearRectBug) {
+ this.context.fillStyle = this._backgroundColor;
+ this.context.fillRect(0, 0, this.width, this.height);
+ } else {
+ this.context.clearRect(0, 0, this.width, this.height);
+ }
+ }
+ if(this.game.paused && this.scale.incorrectOrientation) {
+ this.orientationScreen.update();
+ this.orientationScreen.render();
+ return;
+ }
+ if(this.game.isRunning == false && this.disableBootScreen == false) {
+ this.bootScreen.update();
+ this.bootScreen.render();
+ }
+ if(this.game.paused && this.disablePauseScreen == false) {
+ this.pauseScreen.update();
+ this.pauseScreen.render();
+ }
+ };
+ Stage.prototype.visibilityChange = function (event) {
+ if(this.disableVisibilityChange) {
+ return;
+ }
+ if(event.type == 'pagehide' || event.type == 'blur' || document['hidden'] == true || document['webkitHidden'] == true) {
+ if(this.game.paused == false) {
+ this.pauseGame();
+ }
+ } else {
+ if(this.game.paused == true) {
+ this.resumeGame();
+ }
+ }
+ };
+ Stage.prototype.enableOrientationCheck = function (forceLandscape, forcePortrait, imageKey) {
+ if (typeof imageKey === "undefined") { imageKey = ''; }
+ this.scale.forceLandscape = forceLandscape;
+ this.scale.forcePortrait = forcePortrait;
+ this.orientationScreen.enable(imageKey);
+ if(forceLandscape || forcePortrait) {
+ if((this.scale.isLandscape && forcePortrait) || (this.scale.isPortrait && forceLandscape)) {
+ this.game.paused = true;
+ this.scale.incorrectOrientation = true;
+ } else {
+ this.scale.incorrectOrientation = false;
+ }
+ }
+ };
+ Stage.prototype.pauseGame = function () {
+ this.game.paused = true;
+ if(this.disablePauseScreen == false && this.pauseScreen) {
+ this.pauseScreen.onPaused();
+ }
+ this.saveCanvasValues();
+ };
+ Stage.prototype.resumeGame = function () {
+ if(this.disablePauseScreen == false && this.pauseScreen) {
+ this.pauseScreen.onResume();
+ }
+ this.restoreCanvasValues();
+ this.game.paused = false;
+ };
+ Stage.prototype.getOffset = function (element, populateOffset) {
+ if (typeof populateOffset === "undefined") { populateOffset = true; }
+ var box = element.getBoundingClientRect();
+ var clientTop = element.clientTop || document.body.clientTop || 0;
+ var clientLeft = element.clientLeft || document.body.clientLeft || 0;
+ var scrollTop = window.pageYOffset || element.scrollTop || document.body.scrollTop;
+ var scrollLeft = window.pageXOffset || element.scrollLeft || document.body.scrollLeft;
+ if(populateOffset) {
+ this.offset = new Phaser.Point(box.left + scrollLeft - clientLeft, box.top + scrollTop - clientTop);
+ return this.offset;
+ } else {
+ return new Phaser.Point(box.left + scrollLeft - clientLeft, box.top + scrollTop - clientTop);
+ }
+ };
+ Stage.prototype.saveCanvasValues = function () {
+ this.strokeStyle = this.context.strokeStyle;
+ this.lineWidth = this.context.lineWidth;
+ this.fillStyle = this.context.fillStyle;
+ };
+ Stage.prototype.restoreCanvasValues = function () {
+ this.context.strokeStyle = this.strokeStyle;
+ this.context.lineWidth = this.lineWidth;
+ this.context.fillStyle = this.fillStyle;
+ if(this.game.device.patchAndroidClearRectBug) {
+ this.context.fillStyle = this._backgroundColor;
+ this.context.fillRect(0, 0, this.width, this.height);
+ } else {
+ this.context.clearRect(0, 0, this.width, this.height);
+ }
+ };
+ Object.defineProperty(Stage.prototype, "backgroundColor", {
+ get: function () {
+ return this._backgroundColor;
+ },
+ set: function (color) {
+ this.canvas.style.backgroundColor = color;
+ this._backgroundColor = color;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "x", {
+ get: function () {
+ return this.bounds.x;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "y", {
+ get: function () {
+ return this.bounds.y;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "width", {
+ get: function () {
+ return this.bounds.width;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "height", {
+ get: function () {
+ return this.bounds.height;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "centerX", {
+ get: function () {
+ return this.bounds.halfWidth;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "centerY", {
+ get: function () {
+ return this.bounds.halfHeight;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "randomX", {
+ get: function () {
+ return Math.round(Math.random() * this.bounds.width);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stage.prototype, "randomY", {
+ get: function () {
+ return Math.round(Math.random() * this.bounds.height);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Stage;
+ })();
+ Phaser.Stage = Stage;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var State = (function () {
+ function State(game) {
+ this.game = game;
+ this.add = game.add;
+ this.camera = game.camera;
+ this.cache = game.cache;
+ this.input = game.input;
+ this.load = game.load;
+ this.math = game.math;
+ this.sound = game.sound;
+ this.stage = game.stage;
+ this.time = game.time;
+ this.tweens = game.tweens;
+ this.world = game.world;
+ }
+ State.prototype.init = function () {
+ };
+ State.prototype.create = function () {
+ };
+ State.prototype.update = function () {
+ };
+ State.prototype.render = function () {
+ };
+ State.prototype.paused = function () {
+ };
+ State.prototype.destroy = function () {
+ };
+ return State;
+ })();
+ Phaser.State = State;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ var Game = (function () {
+ function Game(callbackContext, parent, width, height, preloadCallback, createCallback, updateCallback, renderCallback, destroyCallback) {
+ if (typeof parent === "undefined") { parent = ''; }
+ if (typeof width === "undefined") { width = 800; }
+ if (typeof height === "undefined") { height = 600; }
+ if (typeof preloadCallback === "undefined") { preloadCallback = null; }
+ if (typeof createCallback === "undefined") { createCallback = null; }
+ if (typeof updateCallback === "undefined") { updateCallback = null; }
+ if (typeof renderCallback === "undefined") { renderCallback = null; }
+ if (typeof destroyCallback === "undefined") { destroyCallback = null; }
+ var _this = this;
+ this._loadComplete = false;
+ this._paused = false;
+ this._pendingState = null;
+ this.state = null;
+ this.onPreloadCallback = null;
+ this.onCreateCallback = null;
+ this.onUpdateCallback = null;
+ this.onRenderCallback = null;
+ this.onPreRenderCallback = null;
+ this.onLoadUpdateCallback = null;
+ this.onLoadRenderCallback = null;
+ this.onPausedCallback = null;
+ this.onDestroyCallback = null;
+ this.isBooted = false;
+ this.isRunning = false;
+ if(window['PhaserGlobal'] && window['PhaserGlobal'].singleInstance) {
+ if(Phaser.GAMES.length > 0) {
+ console.log('Phaser detected an instance of this game already running, aborting');
+ return;
+ }
+ }
+ this.id = Phaser.GAMES.push(this) - 1;
+ this.callbackContext = callbackContext;
+ this.onPreloadCallback = preloadCallback;
+ this.onCreateCallback = createCallback;
+ this.onUpdateCallback = updateCallback;
+ this.onRenderCallback = renderCallback;
+ this.onDestroyCallback = destroyCallback;
+ if(document.readyState === 'complete' || document.readyState === 'interactive') {
+ setTimeout(function () {
+ return Phaser.GAMES[_this.id].boot(parent, width, height);
+ });
+ } else {
+ document.addEventListener('DOMContentLoaded', Phaser.GAMES[this.id].boot(parent, width, height), false);
+ window.addEventListener('load', Phaser.GAMES[this.id].boot(parent, width, height), false);
+ }
+ }
+ Game.prototype.boot = function (parent, width, height) {
+ var _this = this;
+ if(this.isBooted == true) {
+ return;
+ }
+ if(!document.body) {
+ setTimeout(function () {
+ return Phaser.GAMES[_this.id].boot(parent, width, height);
+ }, 13);
+ } else {
+ document.removeEventListener('DOMContentLoaded', Phaser.GAMES[this.id].boot);
+ window.removeEventListener('load', Phaser.GAMES[this.id].boot);
+ this.onPause = new Phaser.Signal();
+ this.onResume = new Phaser.Signal();
+ this.device = new Phaser.Device();
+ this.net = new Phaser.Net(this);
+ this.math = new Phaser.GameMath(this);
+ this.stage = new Phaser.Stage(this, parent, width, height);
+ this.world = new Phaser.World(this, width, height);
+ this.add = new Phaser.GameObjectFactory(this);
+ this.cache = new Phaser.Cache(this);
+ this.load = new Phaser.Loader(this);
+ this.time = new Phaser.TimeManager(this);
+ this.tweens = new Phaser.TweenManager(this);
+ this.input = new Phaser.InputManager(this);
+ this.sound = new Phaser.SoundManager(this);
+ this.rnd = new Phaser.RandomDataGenerator([
+ (Date.now() * Math.random()).toString()
+ ]);
+ this.physics = new Phaser.Physics.PhysicsManager(this);
+ this.plugins = new Phaser.PluginManager(this, this);
+ this.load.onLoadComplete.add(this.loadComplete, this);
+ this.setRenderer(Phaser.Types.RENDERER_CANVAS);
+ this.world.boot();
+ this.stage.boot();
+ this.input.boot();
+ this.isBooted = true;
+ Phaser.DebugUtils.game = this;
+ Phaser.ColorUtils.game = this;
+ Phaser.DebugUtils.context = this.stage.context;
+ if(this.onPreloadCallback == null && this.onCreateCallback == null && this.onUpdateCallback == null && this.onRenderCallback == null && this._pendingState == null) {
+ this._raf = new Phaser.RequestAnimationFrame(this, this.bootLoop);
+ } else {
+ this.isRunning = true;
+ this._loadComplete = false;
+ this._raf = new Phaser.RequestAnimationFrame(this, this.loop);
+ if(this._pendingState) {
+ this.switchState(this._pendingState, false, false);
+ } else {
+ this.startState();
+ }
+ }
+ }
+ };
+ Game.prototype.loadComplete = function () {
+ this._loadComplete = true;
+ this.onCreateCallback.call(this.callbackContext);
+ };
+ Game.prototype.bootLoop = function () {
+ this.tweens.update();
+ this.input.update();
+ this.stage.update();
+ };
+ Game.prototype.pausedLoop = function () {
+ this.tweens.update();
+ this.input.update();
+ this.stage.update();
+ this.sound.update();
+ if(this.onPausedCallback !== null) {
+ this.onPausedCallback.call(this.callbackContext);
+ }
+ };
+ Game.prototype.loop = function () {
+ this.plugins.preUpdate();
+ this.tweens.update();
+ this.input.update();
+ this.stage.update();
+ this.sound.update();
+ this.physics.update();
+ this.world.update();
+ this.plugins.update();
+ if(this._loadComplete && this.onUpdateCallback) {
+ this.onUpdateCallback.call(this.callbackContext);
+ } else if(this._loadComplete == false && this.onLoadUpdateCallback) {
+ this.onLoadUpdateCallback.call(this.callbackContext);
+ }
+ this.world.postUpdate();
+ this.plugins.postUpdate();
+ this.plugins.preRender();
+ if(this._loadComplete && this.onPreRenderCallback) {
+ this.onPreRenderCallback.call(this.callbackContext);
+ }
+ this.renderer.render();
+ this.plugins.render();
+ if(this._loadComplete && this.onRenderCallback) {
+ this.onRenderCallback.call(this.callbackContext);
+ } else if(this._loadComplete == false && this.onLoadRenderCallback) {
+ this.onLoadRenderCallback.call(this.callbackContext);
+ }
+ this.plugins.postRender();
+ };
+ Game.prototype.startState = function () {
+ if(this.onPreloadCallback !== null) {
+ this.load.reset();
+ this.onPreloadCallback.call(this.callbackContext);
+ if(this.load.queueSize == 0) {
+ if(this.onCreateCallback !== null) {
+ this.onCreateCallback.call(this.callbackContext);
+ }
+ this._loadComplete = true;
+ } else {
+ this.load.onLoadComplete.add(this.loadComplete, this);
+ this.load.start();
+ }
+ } else {
+ if(this.onCreateCallback !== null) {
+ this.onCreateCallback.call(this.callbackContext);
+ }
+ this._loadComplete = true;
+ }
+ };
+ Game.prototype.setRenderer = function (renderer) {
+ switch(renderer) {
+ case Phaser.Types.RENDERER_AUTO_DETECT:
+ this.renderer = new Phaser.Renderer.Headless.HeadlessRenderer(this);
+ break;
+ case Phaser.Types.RENDERER_AUTO_DETECT:
+ case Phaser.Types.RENDERER_CANVAS:
+ this.renderer = new Phaser.Renderer.Canvas.CanvasRenderer(this);
+ break;
+ }
+ };
+ Game.prototype.setCallbacks = function (preloadCallback, createCallback, updateCallback, renderCallback, destroyCallback) {
+ if (typeof preloadCallback === "undefined") { preloadCallback = null; }
+ if (typeof createCallback === "undefined") { createCallback = null; }
+ if (typeof updateCallback === "undefined") { updateCallback = null; }
+ if (typeof renderCallback === "undefined") { renderCallback = null; }
+ if (typeof destroyCallback === "undefined") { destroyCallback = null; }
+ this.onPreloadCallback = preloadCallback;
+ this.onCreateCallback = createCallback;
+ this.onUpdateCallback = updateCallback;
+ this.onRenderCallback = renderCallback;
+ this.onDestroyCallback = destroyCallback;
+ };
+ Game.prototype.switchState = function (state, clearWorld, clearCache) {
+ if (typeof clearWorld === "undefined") { clearWorld = true; }
+ if (typeof clearCache === "undefined") { clearCache = false; }
+ if(this.isBooted == false) {
+ this._pendingState = state;
+ return;
+ }
+ if(this.onDestroyCallback !== null) {
+ this.onDestroyCallback.call(this.callbackContext);
+ }
+ this.input.reset(true);
+ if(typeof state === 'function') {
+ this.state = new state(this);
+ } else {
+ this.state = state;
+ }
+ if(this.state['create'] || this.state['update']) {
+ this.callbackContext = this.state;
+ this.onPreloadCallback = null;
+ this.onLoadRenderCallback = null;
+ this.onLoadUpdateCallback = null;
+ this.onCreateCallback = null;
+ this.onUpdateCallback = null;
+ this.onRenderCallback = null;
+ this.onPreRenderCallback = null;
+ this.onPausedCallback = null;
+ this.onDestroyCallback = null;
+ if(this.state['preload']) {
+ this.onPreloadCallback = this.state['preload'];
+ }
+ if(this.state['loadRender']) {
+ this.onLoadRenderCallback = this.state['loadRender'];
+ }
+ if(this.state['loadUpdate']) {
+ this.onLoadUpdateCallback = this.state['loadUpdate'];
+ }
+ if(this.state['create']) {
+ this.onCreateCallback = this.state['create'];
+ }
+ if(this.state['update']) {
+ this.onUpdateCallback = this.state['update'];
+ }
+ if(this.state['preRender']) {
+ this.onPreRenderCallback = this.state['preRender'];
+ }
+ if(this.state['render']) {
+ this.onRenderCallback = this.state['render'];
+ }
+ if(this.state['paused']) {
+ this.onPausedCallback = this.state['paused'];
+ }
+ if(this.state['destroy']) {
+ this.onDestroyCallback = this.state['destroy'];
+ }
+ if(clearWorld) {
+ this.world.destroy();
+ if(clearCache == true) {
+ this.cache.destroy();
+ }
+ }
+ this._loadComplete = false;
+ this.startState();
+ } else {
+ throw new Error("Invalid State object given. Must contain at least a create or update function.");
+ }
+ };
+ Game.prototype.destroy = function () {
+ this.callbackContext = null;
+ this.onPreloadCallback = null;
+ this.onLoadRenderCallback = null;
+ this.onLoadUpdateCallback = null;
+ this.onCreateCallback = null;
+ this.onUpdateCallback = null;
+ this.onRenderCallback = null;
+ this.onPausedCallback = null;
+ this.onDestroyCallback = null;
+ this.cache = null;
+ this.input = null;
+ this.load = null;
+ this.sound = null;
+ this.stage = null;
+ this.time = null;
+ this.world = null;
+ this.isBooted = false;
+ };
+ Object.defineProperty(Game.prototype, "paused", {
+ get: function () {
+ return this._paused;
+ },
+ set: function (value) {
+ if(value == true && this._paused == false) {
+ this._paused = true;
+ this.onPause.dispatch();
+ this.sound.pauseAll();
+ this._raf.callback = this.pausedLoop;
+ } else if(value == false && this._paused == true) {
+ this._paused = false;
+ this.onResume.dispatch();
+ this.input.reset();
+ this.sound.resumeAll();
+ if(this.isRunning == false) {
+ this._raf.callback = this.bootLoop;
+ } else {
+ this._raf.callback = this.loop;
+ }
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Game.prototype, "camera", {
+ get: function () {
+ return this.world.cameras.current;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Game;
+ })();
+ Phaser.Game = Game;
+})(Phaser || (Phaser = {}));
+var Phaser;
+(function (Phaser) {
+ Phaser.VERSION = 'Phaser version 1.0.0';
+ Phaser.GAMES = [];
+})(Phaser || (Phaser = {}));