diff --git a/README.md b/README.md
index e45f50012..ee1ca03d4 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ Thousands of developers worldwide use it. From indies and multi-national digital
* **Read:** Subscribe to the [Newsletter](https://confirmsubscription.com/h/r/369DE48E3E86AF1E) and grab our [Phaser Books](http://phaser.io/shop)
* **Chat:** [#phaserio IRC channel](http://www.html5gamedevs.com/topic/4470-official-phaserio-irc-channel-phaserio-on-freenode/) on freenode
* **Extend:** With [Phaser Plugins](https://github.com/photonstorm/phaser-plugins)
-* **Be awesome:** Support our work via [Gratipay](https://gratipay.com/photonstorm/)
+* **Be awesome:** Support our work by buying our [books](http://phaser.io/shop/books) and [plugins](http://phaser.io/shop/plugins)
![div](http://www.phaser.io/images/github/div.png)
@@ -39,25 +39,11 @@ Thousands of developers worldwide use it. From indies and multi-national digital
-> 26th March 2015
+> 15th July 2015
-Phaser 2.3.0 marks the second release in 2015 and easily one of our most significant for a while. In terms of API changes they're actually quite minimal, but under the hood we've taken Phaser for a serious workout.
+To be written.
-We've traditionally had something of a 'kitchen sink' issue with Phaser. As we thought of great new features to give you we just added them in. And like too much of a good thing they contributed to an ever growing file size.
-
-So two of the biggest changes 2.3.0 has is an internal shift to using Game Object components, and allowing you to exclude features in your own custom builds. The new build system lets you selectively exclude features from being bundled in: for example if your game doesn't need Gamepad or Keyboard support you can now tell Phaser to skip those parts entirely.
-
-[This tutorial](http://phaser.io/tutorials/creating-custom-phaser-builds) explains the process in detail. But the end result is that thanks to these changes we've both managed to remove thousands of lines of code and let you decide what Phaser contains. The minimum build size is now just 83KB minified and gzipped and that's still including both the WebGL and Canvas renderers.
-
-Even though we've been cutting down on size we still managed to pack a whole load of great new features in. For example the new spacial sorting added to Arcade Physics allows for incredible speed increases when dealing with densely populated game worlds. The Loader has received a complete overhaul - now offering full parallel asset loading, sync points and more! The Tilemap system was upgraded to support new Tiled 0.11 editor features. Audio has been also been enhanced, with better marker and loop handling. See the Change Log for all the details.
-
-Your games will run faster, have a smaller footprint, and load faster than ever.
-
-But it's not just Phaser that has been updated - we also finally released the [new Phaser web site](http://phaser.io)! For the past few years it was a huge "wall of text", with hundreds of links filling up the single page site. Now it's all changed! with a much more attractive layout and structure. We've got a healthy and constantly updating [news section](http://phaser.io/news), the [examples](http://phaser.io/examples) have a great new visual showcase and there's even a [Sandbox](http://phaser.io/sandbox) to play in.
-
-It was a lot of hard work but we're super-happy with the result - and judging by our page hits, which are going off the charts, you are too :) We'll be sure to keep enhancing it over the coming months, especially as Phaser 3 development ramps up.
-
-That's all for now. I hope you enjoy Phaser 2.3.0, the new site, the new features and the New Year. Happy coding everyone! See you on the forums.
+That's all for now. I hope you enjoy Phaser 2.4.0. Happy coding everyone! See you on the forums.
Cheers,
@@ -91,15 +77,15 @@ Install via [npm](https://www.npmjs.com)
[jsDelivr](http://www.jsdelivr.com/#!phaser) is a "super-fast CDN for developers". Include the following in your html:
-``
+``
or the minified version:
-``
+``
[cdnjs.com](https://cdnjs.com/libraries/phaser) also offers a free CDN service. They have all versions of Phaser and even the custom builds:
-``
+``
### Phaser Sandbox
@@ -231,7 +217,7 @@ All Phaser development is now taking place on the Phaser 3 project. The Phaser 2
## Phaser 3
-We're now several months in to development of Phaser 3. We've been working hard on creating a brand new and extremely powerful renderer. Progress reports are posted to the web site and [Phaser 3 repo](https://github.com/photonstorm/phaser3).
+We're now a good way in to development of Phaser 3. We've been working hard on creating a brand new and extremely powerful renderer. Progress reports are posted to the [web site](http://phaser.io/labs) and [Phaser 3 repo](https://github.com/photonstorm/phaser3).
There is still plenty of time to add your suggestions and feedback in [this forum thread](http://www.html5gamedevs.com/topic/7949-the-phaser-3-wishlist-thread/).
@@ -331,6 +317,7 @@ Version 2.4 - "Katar" - in dev
* All Game Objects have a new boolean property called `pendingDestroy`. If you set this to `true` then the object will automatically destroy itself in the *next* logic update, rather than immediately. This is useful for cases when you wish to destroy an object from within one of its own callbacks, such as with buttons or other input events (thanks @alamboley #1748)
* BitmapData.generateTexture will take a snapshot of the BitmapDatas canvas at that moment in time and convert it into an Image, which is then stored in the Phaser image Cache based on the key given. You can then use the new texture for any future sprites or texture based objects.
* All Signals now have the ability to carry extra custom arguments with them, which are passed on to the callback you define after any internal arguments. For example a Phaser.Key has an onDown signal. When dispatched onDown sends a reference to the Key as the first and only argument. But you can now set the callback like this: `fireKey.onDown.add(shoot, this, 0, 'lazer', 64)`. So when the onDown signal is dispatched internally the callback (`shoot` in this case) will receive 3 arguments: the Key reference that is raised internally and the string 'lazer' and value 64, which were the custom arguments provided when setting-up the callback.
+* Group.moveAll allows you to move all of the children of a Group into another Group.
### Updates
@@ -382,6 +369,7 @@ Version 2.4 - "Katar" - in dev
* RandomDataGenerator.weightedPick has been tweaked slightly to allow for a more even distribution of weights. It still favors the earlier array elements, but will accurately include 'distance' elements as well (thanks @gingerbeardman #1751)
* BitmapData.clear has 4 new optional parameters: x, y, width and height, that define the area to be cleared. If left undefined it works exactly the same as before and clears the entire canvas.
* Added Phaser.Keyboard.COMMA and Phaser.Keyboard.PERIOD to the consts list.
+* Canvas.setSmoothingEnabled only applies the value of the property exists, which avoids the Chrome webkit prefix deprecation warnings.
### Bug Fixes
@@ -434,6 +422,7 @@ Version 2.4 - "Katar" - in dev
* Rope.segments used the wrong vertices property, causing a runtime error.
* Debug.ropeSegments didn't take the scale of the Rope object into consideration, causing incorrect debug rendering.
* If a Sound was muted, or had its volume changed while it was still decoding (i.e. before it started playback) then the mute and/or volume were ignored and the sound would play anyway (thanks @brianbunch #1872)
+* Group.addMultiple if given a Group.children array as the first parameter would fail as the original group length was decreased out of line with the children being added. Group.addMultiple now checks if the children argument is a Phaser.Group instance, and if so it uses Group.moveAll instead on it (thanks @AnderbergE #1898)
### Deprecated
diff --git a/build/custom/phaser-arcade-physics.js b/build/custom/phaser-arcade-physics.js
index 142c10892..2021b0cbe 100644
--- a/build/custom/phaser-arcade-physics.js
+++ b/build/custom/phaser-arcade-physics.js
@@ -7,7 +7,7 @@
*
* Phaser - http://phaser.io
*
-* v2.4.0 "Katar" - Built: Tue May 19 2015 14:19:52
+* v2.4.0 "Katar" - Built: Fri Jul 10 2015 17:25:45
*
* By Richard Davey http://www.photonstorm.com @photonstorm
*
@@ -1753,7 +1753,7 @@ PIXI.Sprite.prototype._renderWebGL = function(renderSession, matrix)
}
else
{
- renderSession.spriteBatch.render(this, wt);
+ renderSession.spriteBatch.render(this);
// Render children!
for (var i = 0; i < this.children.length; i++)
@@ -2083,588 +2083,6 @@ PIXI.SpriteBatch.prototype._renderCanvas = function(renderSession)
};
-/**
- * @author Mat Groves http://matgroves.com/ @Doormat23
- * Modified by Tom Slezakowski http://www.tomslezakowski.com @TomSlezakowski (24/03/2014) - Added dropShadowColor.
- */
-
-/**
- * A Text Object will create a line or multiple lines of text. To split a line you can use '\n' in your text string,
- * or add a wordWrap property set to true and and wordWrapWidth property with a value in the style object.
- *
- * @class Text
- * @extends Sprite
- * @constructor
- * @param text {String} The copy that you would like the text to display
- * @param [style] {Object} The style parameters
- * @param [style.font] {String} default 'bold 20px Arial' The style and size of the font
- * @param [style.fill='black'] {String|Number} A canvas fillstyle that will be used on the text e.g 'red', '#00FF00'
- * @param [style.align='left'] {String} Alignment for multiline text ('left', 'center' or 'right'), does not affect single line text
- * @param [style.stroke] {String|Number} A canvas fillstyle that will be used on the text stroke e.g 'blue', '#FCFF00'
- * @param [style.strokeThickness=0] {Number} A number that represents the thickness of the stroke. Default is 0 (no stroke)
- * @param [style.wordWrap=false] {Boolean} Indicates if word wrap should be used
- * @param [style.wordWrapWidth=100] {Number} The width at which text will wrap, it needs wordWrap to be set to true
- * @param [style.dropShadow=false] {Boolean} Set a drop shadow for the text
- * @param [style.dropShadowColor='#000000'] {String} A fill style to be used on the dropshadow e.g 'red', '#00FF00'
- * @param [style.dropShadowAngle=Math.PI/4] {Number} Set a angle of the drop shadow
- * @param [style.dropShadowDistance=5] {Number} Set a distance of the drop shadow
- */
-PIXI.Text = function(text, style)
-{
- /**
- * The canvas element that everything is drawn to
- *
- * @property canvas
- * @type HTMLCanvasElement
- */
- this.canvas = document.createElement('canvas');
-
- /**
- * The canvas 2d context that everything is drawn with
- * @property context
- * @type HTMLCanvasElement
- */
- this.context = this.canvas.getContext('2d');
-
- /**
- * The resolution of the canvas.
- * @property resolution
- * @type Number
- */
- this.resolution = 1;
-
- PIXI.Sprite.call(this, PIXI.Texture.fromCanvas(this.canvas));
-
- this.setText(text);
- this.setStyle(style);
-};
-
-// constructor
-PIXI.Text.prototype = Object.create(PIXI.Sprite.prototype);
-PIXI.Text.prototype.constructor = PIXI.Text;
-
-/**
- * The width of the Text, setting this will actually modify the scale to achieve the value set
- *
- * @property width
- * @type Number
- */
-Object.defineProperty(PIXI.Text.prototype, 'width', {
- get: function() {
-
- if(this.dirty)
- {
- this.updateText();
- this.dirty = false;
- }
-
-
- return this.scale.x * this.texture.frame.width;
- },
- set: function(value) {
- this.scale.x = value / this.texture.frame.width;
- this._width = value;
- }
-});
-
-/**
- * The height of the Text, setting this will actually modify the scale to achieve the value set
- *
- * @property height
- * @type Number
- */
-Object.defineProperty(PIXI.Text.prototype, 'height', {
- get: function() {
-
- if(this.dirty)
- {
- this.updateText();
- this.dirty = false;
- }
-
-
- return this.scale.y * this.texture.frame.height;
- },
- set: function(value) {
- this.scale.y = value / this.texture.frame.height;
- this._height = value;
- }
-});
-
-/**
- * Set the copy for the text object. To split a line you can use '\n'.
- *
- * @method setText
- * @param text {String} The copy that you would like the text to display
- */
-PIXI.Text.prototype.setText = function(text)
-{
- this.text = text.toString() || ' ';
- this.dirty = true;
-};
-
-/**
- * Updates texture size based on canvas size
- *
- * @method updateTexture
- * @private
- */
-PIXI.Text.prototype.updateTexture = function()
-{
- this.texture.baseTexture.width = this.canvas.width;
- this.texture.baseTexture.height = this.canvas.height;
- this.texture.crop.width = this.texture.frame.width = this.canvas.width;
- this.texture.crop.height = this.texture.frame.height = this.canvas.height;
-
- this._width = this.canvas.width;
- this._height = this.canvas.height;
-
- // update the dirty base textures
- this.texture.baseTexture.dirty();
-};
-
-/**
-* Renders the object using the WebGL renderer
-*
-* @method _renderWebGL
-* @param renderSession {RenderSession}
-* @private
-*/
-PIXI.Text.prototype._renderWebGL = function(renderSession)
-{
- if(this.dirty)
- {
- this.resolution = renderSession.resolution;
-
- this.updateText();
- this.dirty = false;
- }
-
- PIXI.Sprite.prototype._renderWebGL.call(this, renderSession);
-};
-
-/**
-* Renders the object using the Canvas renderer
-*
-* @method _renderCanvas
-* @param renderSession {RenderSession}
-* @private
-*/
-PIXI.Text.prototype._renderCanvas = function(renderSession)
-{
- if(this.dirty)
- {
- this.resolution = renderSession.resolution;
-
- this.updateText();
- this.dirty = false;
- }
-
- PIXI.Sprite.prototype._renderCanvas.call(this, renderSession);
-};
-
-/**
-* Calculates the ascent, descent and fontSize of a given fontStyle
-*
-* @method determineFontProperties
-* @param fontStyle {Object}
-* @private
-*/
-PIXI.Text.prototype.determineFontProperties = function(fontStyle)
-{
- var properties = PIXI.Text.fontPropertiesCache[fontStyle];
-
- if (!properties)
- {
- properties = {};
-
- var canvas = PIXI.Text.fontPropertiesCanvas;
- var context = PIXI.Text.fontPropertiesContext;
-
- context.font = fontStyle;
-
- var width = Math.ceil(context.measureText('|MÉq').width);
- var baseline = Math.ceil(context.measureText('|MÉq').width);
- var height = 2 * baseline;
-
- baseline = baseline * 1.4 | 0;
-
- canvas.width = width;
- canvas.height = height;
-
- context.fillStyle = '#f00';
- context.fillRect(0, 0, width, height);
-
- context.font = fontStyle;
-
- context.textBaseline = 'alphabetic';
- context.fillStyle = '#000';
- context.fillText('|MÉq', 0, baseline);
-
- if (!context.getImageData(0, 0, width, height))
- {
- properties.ascent = baseline;
- properties.descent = baseline + 6;
- properties.fontSize = properties.ascent + properties.descent;
-
- PIXI.Text.fontPropertiesCache[fontStyle] = properties;
-
- return properties;
- }
-
- var imagedata = context.getImageData(0, 0, width, height).data;
- var pixels = imagedata.length;
- var line = width * 4;
-
- var i, j;
-
- var idx = 0;
- var stop = false;
-
- // ascent. scan from top to bottom until we find a non red pixel
- for (i = 0; i < baseline; i++)
- {
- for (j = 0; j < line; j += 4)
- {
- if (imagedata[idx + j] !== 255)
- {
- stop = true;
- break;
- }
- }
-
- if (!stop)
- {
- idx += line;
- }
- else
- {
- break;
- }
- }
-
- properties.ascent = baseline - i;
-
- idx = pixels - line;
- stop = false;
-
- // descent. scan from bottom to top until we find a non red pixel
- for (i = height; i > baseline; i--)
- {
- for (j = 0; j < line; j += 4)
- {
- if (imagedata[idx + j] !== 255)
- {
- stop = true;
- break;
- }
- }
-
- if (!stop)
- {
- idx -= line;
- }
- else
- {
- break;
- }
- }
-
- properties.descent = i - baseline;
- //TODO might need a tweak. kind of a temp fix!
- properties.descent += 6;
- properties.fontSize = properties.ascent + properties.descent;
-
- PIXI.Text.fontPropertiesCache[fontStyle] = properties;
- }
-
- return properties;
-};
-
-/**
-* Returns the bounds of the Text as a rectangle. The bounds calculation takes the worldTransform into account.
-*
-* @method getBounds
-* @param matrix {Matrix} the transformation matrix of the Text
-* @return {Rectangle} the framing rectangle
-*/
-PIXI.Text.prototype.getBounds = function(matrix)
-{
- if(this.dirty)
- {
- this.updateText();
- this.dirty = false;
- }
-
- return PIXI.Sprite.prototype.getBounds.call(this, matrix);
-};
-
-PIXI.Text.fontPropertiesCache = {};
-PIXI.Text.fontPropertiesCanvas = document.createElement('canvas');
-PIXI.Text.fontPropertiesContext = PIXI.Text.fontPropertiesCanvas.getContext('2d');
-
-/**
- * @author Mat Groves http://matgroves.com/ @Doormat23
- */
-
-/**
- * A BitmapText object will create a line or multiple lines of text using bitmap font. To split a line you can use '\n', '\r' or '\r\n' in your string.
- * You can generate the fnt files using
- * http://www.angelcode.com/products/bmfont/ for windows or
- * http://www.bmglyph.com/ for mac.
- *
- * @class BitmapText
- * @extends DisplayObjectContainer
- * @constructor
- * @param text {String} The copy that you would like the text to display
- * @param style {Object} The style parameters
- * @param style.font {String} The size (optional) and bitmap font id (required) eq 'Arial' or '20px Arial' (must have loaded previously)
- * @param [style.align='left'] {String} Alignment for multiline text ('left', 'center' or 'right'), does not affect single line text
- */
-PIXI.BitmapText = function(text, style)
-{
- PIXI.DisplayObjectContainer.call(this);
-
- /**
- * [read-only] The width of the overall text, different from fontSize,
- * which is defined in the style object
- *
- * @property textWidth
- * @type Number
- * @readOnly
- */
- this.textWidth = 0;
-
- /**
- * [read-only] The height of the overall text, different from fontSize,
- * which is defined in the style object
- *
- * @property textHeight
- * @type Number
- * @readOnly
- */
- this.textHeight = 0;
-
- /**
- * The max width of this bitmap text in pixels. If the text provided is longer than the value provided, line breaks will be
- * automatically inserted in the last whitespace. Disable by setting value to 0.
- *
- * @property maxWidth
- * @type Number
- */
- this.maxWidth = 0;
-
- /**
- * @property anchor
- * @type Point
- */
- this.anchor = new Phaser.Point(0, 0);
-
- /**
- * @property _prevAnchor
- * @type Point
- */
- this._prevAnchor = new Phaser.Point(0, 0);
-
- /**
- * @property _pool
- * @type Array
- * @private
- */
- this._pool = [];
-
- this.setText(text);
- this.setStyle(style);
- this.updateText();
-
- /**
- * The dirty state of this object.
- * @property dirty
- * @type Boolean
- */
- this.dirty = false;
-};
-
-// constructor
-PIXI.BitmapText.prototype = Object.create(PIXI.DisplayObjectContainer.prototype);
-PIXI.BitmapText.prototype.constructor = PIXI.BitmapText;
-
-/**
- * Set the text string to be rendered.
- *
- * @method setText
- * @param text {String} The text that you would like displayed
- */
-PIXI.BitmapText.prototype.setText = function(text)
-{
- this.text = text || ' ';
- this.dirty = true;
-};
-
-/**
- * Set the style of the text
- * style.font {String} The size (optional) and bitmap font id (required) eq 'Arial' or '20px Arial' (must have loaded previously)
- * [style.align='left'] {String} Alignment for multiline text ('left', 'center' or 'right'), does not affect single lines of text
- *
- * @method setStyle
- * @param style {Object} The style parameters, contained as properties of an object
- */
-PIXI.BitmapText.prototype.setStyle = function(style)
-{
- style = style || {};
- style.align = style.align || 'left';
- this.style = style;
-
- var font = style.font.split(' ');
- this.fontName = font[font.length - 1];
- this.fontSize = font.length >= 2 ? parseInt(font[font.length - 2], 10) : PIXI.BitmapText.fonts[this.fontName].size;
-
- this.dirty = true;
- this.tint = style.tint;
-};
-
-/**
- * Renders text and updates it when needed
- *
- * @method updateText
- * @private
- */
-PIXI.BitmapText.prototype.updateText = function()
-{
- var data = PIXI.BitmapText.fonts[this.fontName];
- var pos = new PIXI.Point();
- var prevCharCode = null;
- var chars = [];
- var maxLineWidth = 0;
- var lineWidths = [];
- var line = 0;
- var scale = this.fontSize / data.size;
- var lastSpace = 0;
-
- for (var i = 0; i < this.text.length; i++)
- {
- var charCode = this.text.charCodeAt(i);
- lastSpace = /(\s)/.test(this.text.charAt(i)) ? i : lastSpace;
-
- if (/(?:\r\n|\r|\n)/.test(this.text.charAt(i)))
- {
- lineWidths.push(pos.x);
- maxLineWidth = Math.max(maxLineWidth, pos.x);
- line++;
-
- pos.x = 0;
- pos.y += data.lineHeight;
- prevCharCode = null;
- continue;
- }
-
- if (lastSpace !== -1 && this.maxWidth > 0 && pos.x * scale > this.maxWidth)
- {
- chars.splice(lastSpace, i - lastSpace);
- i = lastSpace;
- lastSpace = -1;
-
- lineWidths.push(lastLineWidth);
- maxLineWidth = Math.max(maxLineWidth, lastLineWidth);
- line++;
-
- pos.x = 0;
- pos.y += data.lineHeight;
- prevCharCode = null;
- continue;
- }
-
- var charData = data.chars[charCode];
-
- if(!charData) continue;
-
- if(prevCharCode && charData.kerning[prevCharCode])
- {
- pos.x += charData.kerning[prevCharCode];
- }
-
- chars.push({texture:charData.texture, line: line, charCode: charCode, position: new PIXI.Point(pos.x + charData.xOffset, pos.y + charData.yOffset)});
- pos.x += charData.xAdvance;
-
- prevCharCode = charCode;
- }
-
- lineWidths.push(pos.x);
- maxLineWidth = Math.max(maxLineWidth, pos.x);
-
- var lineAlignOffsets = [];
-
- for (i = 0; i <= line; i++)
- {
- var alignOffset = 0;
-
- if (this.style.align === 'right')
- {
- alignOffset = maxLineWidth - lineWidths[i];
- }
- else if (this.style.align === 'center')
- {
- alignOffset = (maxLineWidth - lineWidths[i]) / 2;
- }
-
- lineAlignOffsets.push(alignOffset);
- }
-
- var lenChildren = this.children.length;
- var lenChars = chars.length;
- var tint = this.tint || 0xFFFFFF;
-
- this.textWidth = maxLineWidth * scale;
- this.textHeight = (pos.y + data.lineHeight) * scale;
-
- var ax = this.textWidth * this.anchor.x;
- var ay = this.textHeight * this.anchor.y;
-
- for (i = 0; i < lenChars; i++)
- {
- var c = i < lenChildren ? this.children[i] : this._pool.pop(); // get old child if have. if not - take from pool.
-
- if (c) c.setTexture(chars[i].texture); // check if got one before.
- else c = new PIXI.Sprite(chars[i].texture); // if no create new one.
-
- c.position.x = ((chars[i].position.x + lineAlignOffsets[chars[i].line]) * scale) - ax;
- c.position.y = (chars[i].position.y * scale) - ay;
-
- c.scale.x = c.scale.y = scale;
- c.tint = tint;
- if (!c.parent) this.addChild(c);
- }
-
- // Remove unnecessary children and put them into the pool
- while (this.children.length > lenChars)
- {
- var child = this.getChildAt(this.children.length - 1);
- this._pool.push(child);
- this.removeChild(child);
- }
-
-};
-
-/**
- * Updates the transform of this object
- *
- * @method updateTransform
- * @private
- */
-PIXI.BitmapText.prototype.updateTransform = function()
-{
- if (this.dirty || !this.anchor.equals(this._prevAnchor))
- {
- this.updateText();
- this.dirty = false;
- this._prevAnchor.copyFrom(this.anchor);
- }
-
- PIXI.DisplayObjectContainer.prototype.updateTransform.call(this);
-};
-
-PIXI.BitmapText.fonts = {};
-
/**
* @author Mat Groves http://matgroves.com/ @Doormat23
*/
@@ -6411,7 +5829,7 @@ PIXI.WebGLSpriteBatch.prototype.renderTilingSprite = function(sprite)
// Get the sprites current alpha and tint and combine them into a single color
var tint = sprite.tint;
- var color = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.alpha * 255 << 24);
+ var color = (tint >> 16) + (tint & 0xff00) + ((tint & 0xff) << 16) + (sprite.worldAlpha * 255 << 24);
var positions = this.positions;
var colors = this.colors;
@@ -8070,7 +7488,6 @@ PIXI.CanvasRenderer = function(width, height, options)
*/
this.autoResize = options.autoResize || false;
-
/**
* The width of the canvas view
*
@@ -8146,7 +7563,6 @@ PIXI.CanvasRenderer = function(width, height, options)
/**
* If true Pixi will Math.floor() x/y values when rendering, stopping pixel interpolation.
* Handy for crisp pixel art and speed on legacy devices.
- *
*/
roundPixels: false
};
@@ -9212,12 +8628,11 @@ PIXI.Graphics.prototype.drawRect = function(x, y, width, height)
/**
* @method drawRoundedRect
- *
* @param x {Number} The X coord of the top-left of the rectangle
* @param y {Number} The Y coord of the top-left of the rectangle
* @param width {Number} The width of the rectangle
* @param height {Number} The height of the rectangle
- * @param radius {Number} Radius of the rectangle corners
+ * @param radius {Number} Radius of the rectangle corners. In WebGL this must be a value between 0 and 9.
*/
PIXI.Graphics.prototype.drawRoundedRect = function(x, y, width, height, radius)
{
@@ -9226,15 +8641,15 @@ PIXI.Graphics.prototype.drawRoundedRect = function(x, y, width, height, radius)
return this;
};
-/*
-* Draws a circle.
-*
-* @method Phaser.Graphics.prototype.drawCircle
-* @param {Number} x - The X coordinate of the center of the circle.
-* @param {Number} y - The Y coordinate of the center of the circle.
-* @param {Number} diameter - The diameter of the circle.
-* @return {Graphics} This Graphics object.
-*/
+/**
+ * Draws a circle.
+ *
+ * @method drawCircle
+ * @param x {Number} The X coordinate of the center of the circle
+ * @param y {Number} The Y coordinate of the center of the circle
+ * @param diameter {Number} The diameter of the circle
+ * @return {Graphics}
+ */
PIXI.Graphics.prototype.drawCircle = function(x, y, diameter)
{
this.drawShape(new PIXI.Circle(x, y, diameter));
@@ -9826,8 +9241,9 @@ PIXI.Graphics.prototype.drawShape = function(shape)
this.currentPath = null;
// Handle mixed-type polygons
- if (shape instanceof PIXI.Polygon)
+ if (shape instanceof Phaser.Polygon)
{
+ shape = shape.clone();
shape.flatten();
}
@@ -10710,6 +10126,15 @@ PIXI.TilingSprite = function(texture, width, height)
* @default 0xFFFFFF
*/
this.tint = 0xFFFFFF;
+
+ /**
+ * If enabled a green rectangle will be drawn behind the generated tiling texture, allowing you to visually
+ * debug the texture being used.
+ *
+ * @property textureDebug
+ * @type Boolean
+ */
+ this.textureDebug = false;
/**
* The blend mode to be applied to the sprite
@@ -10838,6 +10263,7 @@ PIXI.TilingSprite.prototype._renderWebGL = function(renderSession)
}
renderSession.spriteBatch.start();
+
};
/**
@@ -11008,9 +10434,11 @@ PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo)
this.tilingTexture.needsUpdate = true;
}
- // Debug
- this.canvasBuffer.context.strokeStyle = 'rgb(0,255,0)';
- this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight);
+ if (this.textureDebug)
+ {
+ this.canvasBuffer.context.strokeStyle = '#00ff00';
+ this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight);
+ }
this.canvasBuffer.context.drawImage(texture.baseTexture.source,
texture.crop.x,
@@ -12022,7 +11450,7 @@ PIXI.RenderTexture.prototype.clear = function()
*/
PIXI.RenderTexture.prototype.renderWebGL = function(displayObject, matrix, clear)
{
- if (!this.valid)
+ if (!this.valid || displayObject.alpha === 0)
{
return;
}
@@ -12031,9 +11459,6 @@ PIXI.RenderTexture.prototype.renderWebGL = function(displayObject, matrix, clear
matrix.translate(0, this.projection.y * 2);
matrix.scale(1, -1);
- // Set worldAlpha to ensure that the object is renderer at full opacity
- displayObject.worldAlpha = 1;
-
// Time to update all the children of the displayObject with the new matrix.
for (var i = 0; i < displayObject.children.length; i++)
{
@@ -12071,14 +11496,11 @@ PIXI.RenderTexture.prototype.renderWebGL = function(displayObject, matrix, clear
*/
PIXI.RenderTexture.prototype.renderCanvas = function(displayObject, matrix, clear)
{
- if (!this.valid)
+ if (!this.valid || displayObject.alpha === 0)
{
return;
}
- // setWorld Alpha to ensure that the object is rendered at full opacity
- displayObject.worldAlpha = 1;
-
// Time to update all the children of the displayObject with the new matrix (what new matrix? there isn't one!)
for (var i = 0; i < displayObject.children.length; i++)
{
@@ -12317,7 +11739,8 @@ var Phaser = Phaser || {
VIDEO: 28,
/**
- * Various blend modes supported by pixi. IMPORTANT - The WebGL renderer only supports the NORMAL, ADD, MULTIPLY and SCREEN blend modes.
+ * Various blend modes supported by Pixi.
+ * IMPORTANT: The WebGL renderer only supports the NORMAL, ADD, MULTIPLY and SCREEN blend modes.
*
* @property {Object} blendModes
* @property {Number} blendModes.NORMAL
@@ -12360,7 +11783,7 @@ var Phaser = Phaser || {
},
/**
- * The scale modes that are supported by pixi.
+ * The scale modes that are supported by Pixi.
*
* The DEFAULT scale mode affects the default scaling mode of future operations.
* It can be re-assigned to either LINEAR or NEAREST, depending upon suitability.
@@ -12636,45 +12059,6 @@ Phaser.Utils = {
return (Math.random() < 0.5) ? choice1 : choice2;
},
- /**
- * Transposes the elements of the given matrix (array of arrays).
- *
- * @method Phaser.Utils.transposeArray
- * @param {Array} array - The matrix to transpose.
- * @return {Array} A new transposed matrix
- * @deprecated 2.2.0 - Use Phaser.ArrayUtils.transposeMatrix
- */
- transposeArray: function (array) {
- return Phaser.ArrayUtils.transposeMatrix(array);
- },
-
- /**
- * Rotates the given matrix (array of arrays).
- *
- * Based on the routine from {@link http://jsfiddle.net/MrPolywhirl/NH42z/}.
- *
- * @method Phaser.Utils.rotateArray
- * @param {Array} matrix - The array to rotate; this matrix _may_ be altered.
- * @param {number|string} direction - The amount to rotate: the roation in degrees (90, -90, 270, -270, 180) or a string command ('rotateLeft', 'rotateRight' or 'rotate180').
- * @return {Array} The rotated matrix. The source matrix should be discarded for the returned matrix.
- * @deprecated 2.2.0 - Use Phaser.ArrayUtils.rotateMatrix
- */
- rotateArray: function (matrix, direction) {
- return Phaser.ArrayUtils.rotateMatrix(matrix, direction);
- },
-
- /**
- * A standard Fisher-Yates Array shuffle implementation.
- *
- * @method Phaser.Utils.shuffle
- * @param {any[]} array - The array to shuffle.
- * @return {any[]} The shuffled array.
- * @deprecated 2.2.0 - User Phaser.ArrayUtils.shuffle
- */
- shuffle: function (array) {
- return Phaser.ArrayUtils.shuffle(array);
- },
-
/**
* Get a unit dimension from a string.
*
@@ -12719,13 +12103,13 @@ Phaser.Utils = {
},
/**
- * Javascript string pad http://www.webtoolkit.info/.
+ * JavaScript string pad http://www.webtoolkit.info/.
*
* @method Phaser.Utils.pad
* @param {string} str - The target string.
- * @param {number} len - The number of characters to be added.
- * @param {number} pad - The string to pad it out with (defaults to a space).
- * @param {number} [dir=3] The direction dir = 1 (left), 2 (right), 3 (both).
+ * @param {integer} [len=0] - The number of characters to be added.
+ * @param {string} [pad=" "] - The string to pad it out with (defaults to a space).
+ * @param {integer} [dir=3] The direction dir = 1 (left), 2 (right), 3 (both).
* @return {string} The padded string
*/
pad: function (str, len, pad, dir) {
@@ -12798,6 +12182,7 @@ Phaser.Utils = {
/**
* This is a slightly modified version of http://api.jquery.com/jQuery.extend/
+ *
* @method Phaser.Utils.extend
* @param {boolean} deep - Perform a deep copy?
* @param {object} target - The target object to copy to.
@@ -13049,6 +12434,31 @@ Phaser.Circle.prototype = {
},
+ /**
+ * Returns a uniformly distributed random point from anywhere within this Circle.
+ *
+ * @method Phaser.Circle#random
+ * @param {Phaser.Point|object} [out] - A Phaser.Point, or any object with public x/y properties, that the values will be set in.
+ * If no object is provided a new Phaser.Point object will be created. In high performance areas avoid this by re-using an existing object.
+ * @return {Phaser.Point} An object containing the random point in its `x` and `y` properties.
+ */
+ random: function (out) {
+
+ if (typeof out === 'undefined') { out = new Phaser.Point(); }
+
+ var t = 2 * Math.PI * Math.random();
+ var u = Math.random() + Math.random();
+ var r = (u > 1) ? 2 - u : u;
+ var x = r * Math.cos(t);
+ var y = r * Math.sin(t);
+
+ out.x = this.x + (x * this.radius);
+ out.y = this.y + (y * this.radius);
+
+ return out;
+
+ },
+
/**
* Returns the framing rectangle of the circle as a Phaser.Rectangle object.
*
@@ -13666,6 +13076,7 @@ Phaser.Ellipse.prototype = {
/**
* Return true if the given x/y coordinates are within this Ellipse object.
+ *
* @method Phaser.Ellipse#contains
* @param {number} x - The X value of the coordinate to test.
* @param {number} y - The Y value of the coordinate to test.
@@ -13677,6 +13088,31 @@ Phaser.Ellipse.prototype = {
},
+ /**
+ * Returns a uniformly distributed random point from anywhere within this Ellipse.
+ *
+ * @method Phaser.Ellipse#random
+ * @param {Phaser.Point|object} [out] - A Phaser.Point, or any object with public x/y properties, that the values will be set in.
+ * If no object is provided a new Phaser.Point object will be created. In high performance areas avoid this by re-using an existing object.
+ * @return {Phaser.Point} An object containing the random point in its `x` and `y` properties.
+ */
+ random: function (out) {
+
+ if (typeof out === 'undefined') { out = new Phaser.Point(); }
+
+ var p = Math.random() * Math.PI * 2;
+ var r = Math.random();
+
+ out.x = Math.sqrt(r) * Math.cos(p);
+ out.y = Math.sqrt(r) * Math.sin(p);
+
+ out.x = this.x + (out.x * this.width / 2.0);
+ out.y = this.y + (out.y * this.height / 2.0);
+
+ return out;
+
+ },
+
/**
* Returns a string representation of this object.
* @method Phaser.Ellipse#toString
@@ -13932,6 +13368,30 @@ Phaser.Line.prototype = {
},
+ /**
+ * Rotates the line by the amount specified in `angle`.
+ *
+ * Rotation takes place from the center of the line.
+ *
+ * If you wish to rotate from either end see Line.start.rotate or Line.end.rotate.
+ *
+ * @method Phaser.Line#rotate
+ * @param {number} angle - The angle in radians (unless asDegrees is true) to rotate the line by.
+ * @param {boolean} [asDegrees=false] - Is the given angle in radians (false) or degrees (true)?
+ * @return {Phaser.Line} This line object
+ */
+ rotate: function (angle, asDegrees) {
+
+ var x = this.start.x;
+ var y = this.start.y;
+
+ this.start.rotate(this.end.x, this.end.y, angle, asDegrees, this.length);
+ this.end.rotate(x, y, angle, asDegrees, this.length);
+
+ return this;
+
+ },
+
/**
* Checks for intersection between this line and another Line.
* If asSegment is true it will check for segment intersection. If asSegment is false it will check for line intersection.
@@ -13996,6 +13456,27 @@ Phaser.Line.prototype = {
},
+ /**
+ * Picks a random point from anywhere on the Line segment and returns it.
+ *
+ * @method Phaser.Line#random
+ * @param {Phaser.Point|object} [out] - A Phaser.Point, or any object with public x/y properties, that the values will be set in.
+ * If no object is provided a new Phaser.Point object will be created. In high performance areas avoid this by re-using an object.
+ * @return {Phaser.Point} An object containing the random point in its `x` and `y` properties.
+ */
+ random: function (out) {
+
+ if (typeof out === 'undefined') { out = new Phaser.Point(); }
+
+ var t = Math.random();
+
+ out.x = this.start.x + t * (this.end.x - this.start.x);
+ out.y = this.start.y + t * (this.end.y - this.start.y);
+
+ return out;
+
+ },
+
/**
* Using Bresenham's line algorithm this will return an array of all coordinates on this line.
* The start and end points are rounded before this runs as the algorithm works on integers.
@@ -14841,7 +14322,7 @@ Phaser.Point.prototype = {
/**
* Sets the `x` and `y` values of this Point object to the given values.
* If you omit the `y` value then the `x` value will be applied to both, for example:
- * `Point.setTo(2)` is the same as `Point.setTo(2, 2)`
+ * `Point.set(2)` is the same as `Point.set(2, 2)`
*
* @method Phaser.Point#set
* @param {number} x - The horizontal value of this point.
@@ -15062,7 +14543,7 @@ Phaser.Point.prototype = {
* @param {number} x - The x coordinate of the anchor point.
* @param {number} y - The y coordinate of the anchor point.
* @param {number} angle - The angle in radians (unless asDegrees is true) to rotate the Point to.
- * @param {boolean} asDegrees - Is the given rotation in radians (false) or degrees (true)?
+ * @param {boolean} [asDegrees=false] - Is the given angle in radians (false) or degrees (true)?
* @param {number} [distance] - An optional distance constraint between the Point and the anchor.
* @return {Phaser.Point} The modified point object.
*/
@@ -15539,36 +15020,44 @@ Phaser.Point.normalize = function (a, out) {
};
/**
-* Rotates a Point around the x/y coordinates given to the desired angle.
+* Rotates a Point object, or any object with exposed x/y properties, around the given coordinates by
+* the angle specified. If the angle between the point and coordinates was 45 deg and the angle argument
+* is 45 deg then the resulting angle will be 90 deg, as the angle argument is added to the current angle.
+*
+* The distance allows you to specify a distance constraint for the rotation between the point and the
+* coordinates. If none is given the distance between the two is calculated and used.
*
* @method Phaser.Point.rotate
* @param {Phaser.Point} a - The Point object to rotate.
* @param {number} x - The x coordinate of the anchor point
* @param {number} y - The y coordinate of the anchor point
-* @param {number} angle - The angle in radians (unless asDegrees is true) to rotate the Point to.
-* @param {boolean} [asDegrees=false] - Is the given rotation in radians (false) or degrees (true)?
+* @param {number} angle - The angle in radians (unless asDegrees is true) to rotate the Point by.
+* @param {boolean} [asDegrees=false] - Is the given angle in radians (false) or degrees (true)?
* @param {number} [distance] - An optional distance constraint between the Point and the anchor.
* @return {Phaser.Point} The modified point object.
*/
Phaser.Point.rotate = function (a, x, y, angle, asDegrees, distance) {
- asDegrees = asDegrees || false;
- distance = distance || null;
+ if (typeof asDegrees === 'undefined') { asDegrees = false; }
+ if (typeof distance === 'undefined') { distance = null; }
if (asDegrees)
{
angle = Phaser.Math.degToRad(angle);
}
- // Get distance from origin (cx/cy) to this point
if (distance === null)
{
+ // Get distance from origin (cx/cy) to this point
distance = Math.sqrt(((x - a.x) * (x - a.x)) + ((y - a.y) * (y - a.y)));
}
- var requiredAngle = angle + Math.atan2(a.y - y, a.x - x);
+ var t = angle + Math.atan2(a.y - y, a.x - x);
- return a.setTo(x + distance * Math.cos(requiredAngle), y + distance * Math.sin(requiredAngle));
+ a.x = x + distance * Math.cos(t);
+ a.y = y + distance * Math.sin(t);
+
+ return a;
};
@@ -16182,6 +15671,24 @@ Phaser.Rectangle.prototype = {
},
+ /**
+ * Resize the Rectangle by providing a new width and height.
+ * The x and y positions remain unchanged.
+ *
+ * @method Phaser.Rectangle#resize
+ * @param {number} width - The width of the Rectangle. Should always be either zero or a positive value.
+ * @param {number} height - The height of the Rectangle. Should always be either zero or a positive value.
+ * @return {Phaser.Rectangle} This Rectangle object
+ */
+ resize: function (width, height) {
+
+ this.width = width;
+ this.height = height;
+
+ return this;
+
+ },
+
/**
* Returns a new Rectangle object with the same values for the x, y, width, and height properties as the original Rectangle object.
* @method Phaser.Rectangle#clone
@@ -16290,6 +15797,25 @@ Phaser.Rectangle.prototype = {
},
+ /**
+ * Returns a uniformly distributed random point from anywhere within this Rectangle.
+ *
+ * @method Phaser.Rectangle#random
+ * @param {Phaser.Point|object} [out] - A Phaser.Point, or any object with public x/y properties, that the values will be set in.
+ * If no object is provided a new Phaser.Point object will be created. In high performance areas avoid this by re-using an existing object.
+ * @return {Phaser.Point} An object containing the random point in its `x` and `y` properties.
+ */
+ random: function (out) {
+
+ if (typeof out === 'undefined') { out = new Phaser.Point(); }
+
+ out.x = this.randomX;
+ out.y = this.randomY;
+
+ return out;
+
+ },
+
/**
* Returns a string representation of this object.
* @method Phaser.Rectangle#toString
@@ -17064,12 +16590,6 @@ Phaser.Camera = function (game, id, x, y, width, height) {
*/
this.view = new Phaser.Rectangle(x, y, width, height);
- /**
- * @property {Phaser.Rectangle} screenView - Used by Sprites to work out Camera culling.
- * @deprecated No longer used for camera culling. Uses Camera.view instead.
- */
- this.screenView = new Phaser.Rectangle(x, y, width, height);
-
/**
* The Camera is bound to this Rectangle and cannot move outside of it. By default it is enabled and set to the size of the World.
* The Rectangle can be located anywhere in the world and updated as often as you like. If you don't wish the Camera to be bound
@@ -17541,6 +17061,247 @@ Object.defineProperty(Phaser.Camera.prototype, "height", {
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
+/**
+*
+* TODO: Gradient generator
+* TODO: Look at sfxr for audio gen
+* TODO: Dither support
+* TODO: Sprite Sheet generator
+*
+* @class Phaser.Create
+* @constructor
+* @param {Phaser.Game} game - Game reference to the currently running game.
+ */
+Phaser.Create = function (game) {
+
+ /**
+ * @property {Phaser.Game} game - A reference to the currently running Game.
+ */
+ this.game = game;
+
+ this.bmd = game.make.bitmapData();
+
+ this.canvas = this.bmd.canvas;
+ this.ctx = this.bmd.context;
+
+ // http://androidarts.com/palette/16pal.htm
+
+ // { 0: '#000', 1: '#', 2: '#', 3: '#', 4: '#', 5: '#', 6: '#', 7: '#', 8: '#', 9: '#', A: '#', B: '#', C: '#', D: '#', E: '#', F: '#' }
+
+ this.palettes = [
+ { 0: '#000', 1: '#9D9D9D', 2: '#FFF', 3: '#BE2633', 4: '#E06F8B', 5: '#493C2B', 6: '#A46422', 7: '#EB8931', 8: '#F7E26B', 9: '#2F484E', A: '#44891A', B: '#A3CE27', C: '#1B2632', D: '#005784', E: '#31A2F2', F: '#B2DCEF' },
+ { 0: '#000', 1: '#191028', 2: '#46af45', 3: '#a1d685', 4: '#453e78', 5: '#7664fe', 6: '#833129', 7: '#9ec2e8', 8: '#dc534b', 9: '#e18d79', A: '#d6b97b', B: '#e9d8a1', C: '#216c4b', D: '#d365c8', E: '#afaab9', F: '#f5f4eb' },
+ { 0: '#000', 1: '#2234d1', 2: '#0c7e45', 3: '#44aacc', 4: '#8a3622', 5: '#5c2e78', 6: '#aa5c3d', 7: '#b5b5b5', 8: '#5e606e', 9: '#4c81fb', A: '#6cd947', B: '#7be2f9', C: '#eb8a60', D: '#e23d69', E: '#ffd93f', F: '#fff' },
+ { 0: '#000', 1: '#fff', 2: '#8b4131', 3: '#7bbdc5', 4: '#8b41ac', 5: '#6aac41', 6: '#3931a4', 7: '#d5de73', 8: '#945a20', 9: '#5a4100', A: '#bd736a', B: '#525252', C: '#838383', D: '#acee8b', E: '#7b73de', F: '#acacac' },
+ { 0: '#000', 1: '#191028', 2: '#46af45', 3: '#a1d685', 4: '#453e78', 5: '#7664fe', 6: '#833129', 7: '#9ec2e8', 8: '#dc534b', 9: '#e18d79', A: '#d6b97b', B: '#e9d8a1', C: '#216c4b', D: '#d365c8', E: '#afaab9', F: '#fff' }
+ ];
+
+};
+
+Phaser.Create.PALETTE_ARNE = 0;
+Phaser.Create.PALETTE_JMP = 1;
+Phaser.Create.PALETTE_CGA = 2;
+Phaser.Create.PALETTE_C64 = 3;
+Phaser.Create.PALETTE_JAPANESE_MACHINE = 4;
+
+Phaser.Create.prototype = {
+
+ texture: function (key, data, pixelWidth, pixelHeight, palette) {
+
+ if (typeof pixelWidth === 'undefined') { pixelWidth = 8; }
+ if (typeof pixelHeight === 'undefined') { pixelHeight = pixelWidth; }
+ if (typeof palette === 'undefined') { palette = 0; }
+
+ var w = data[0].length * pixelWidth;
+ var h = data.length * pixelHeight;
+
+ this.bmd.resize(w, h);
+ this.bmd.clear();
+
+ // Draw it
+ for (var y = 0; y < data.length; y++)
+ {
+ var row = data[y];
+
+ for (var x = 0; x < row.length; x++)
+ {
+ var d = row[x];
+
+ if (d !== '.' && d !== ' ')
+ {
+ this.ctx.fillStyle = this.palettes[palette][d];
+ this.ctx.fillRect(x * pixelWidth, y * pixelHeight, pixelWidth, pixelHeight);
+ }
+ }
+ }
+
+ return this.bmd.generateTexture(key);
+
+ },
+
+ grid: function (key, width, height, cellWidth, cellHeight, color) {
+
+ this.bmd.resize(width, height);
+
+ this.ctx.fillStyle = color;
+
+ for (var y = 0; y < height; y += cellHeight)
+ {
+ this.ctx.fillRect(0, y, width, 1);
+ }
+
+ for (var x = 0; x < width; x += cellWidth)
+ {
+ this.ctx.fillRect(x, 0, 1, height);
+ }
+
+ return this.bmd.generateTexture(key);
+
+ }
+
+};
+
+Phaser.Create.prototype.constructor = Phaser.Create;
+
+/*
+ * RIFFWAVE.js v0.03 - Audio encoder for HTML5 elements.
+ * Copyleft 2011 by Pedro Ladaria
+ *
+ * Public Domain
+ *
+ * Changelog:
+ *
+ * 0.01 - First release
+ * 0.02 - New faster base64 encoding
+ * 0.03 - Support for 16bit samples
+ *
+ * Notes:
+ *
+ * 8 bit data is unsigned: 0..255
+ * 16 bit data is signed: −32,768..32,767
+ *
+ */
+
+/*
+var FastBase64 = {
+
+ chars: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
+ encLookup: [],
+
+ Init: function() {
+ for (var i=0; i<4096; i++) {
+ this.encLookup[i] = this.chars[i >> 6] + this.chars[i & 0x3F];
+ }
+ },
+
+ Encode: function(src) {
+ var len = src.length;
+ var dst = '';
+ var i = 0;
+ while (len > 2) {
+ n = (src[i] << 16) | (src[i+1]<<8) | src[i+2];
+ dst+= this.encLookup[n >> 12] + this.encLookup[n & 0xFFF];
+ len-= 3;
+ i+= 3;
+ }
+ if (len > 0) {
+ var n1= (src[i] & 0xFC) >> 2;
+ var n2= (src[i] & 0x03) << 4;
+ if (len > 1) n2 |= (src[++i] & 0xF0) >> 4;
+ dst+= this.chars[n1];
+ dst+= this.chars[n2];
+ if (len == 2) {
+ var n3= (src[i++] & 0x0F) << 2;
+ n3 |= (src[i] & 0xC0) >> 6;
+ dst+= this.chars[n3];
+ }
+ if (len == 1) dst+= '=';
+ dst+= '=';
+ }
+ return dst;
+ } // end Encode
+
+}
+
+FastBase64.Init();
+
+var RIFFWAVE = function(data) {
+
+ this.data = []; // Array containing audio samples
+ this.wav = []; // Array containing the generated wave file
+ this.dataURI = ''; // http://en.wikipedia.org/wiki/Data_URI_scheme
+
+ this.header = { // OFFS SIZE NOTES
+ chunkId : [0x52,0x49,0x46,0x46], // 0 4 "RIFF" = 0x52494646
+ chunkSize : 0, // 4 4 36+SubChunk2Size = 4+(8+SubChunk1Size)+(8+SubChunk2Size)
+ format : [0x57,0x41,0x56,0x45], // 8 4 "WAVE" = 0x57415645
+ subChunk1Id : [0x66,0x6d,0x74,0x20], // 12 4 "fmt " = 0x666d7420
+ subChunk1Size: 16, // 16 4 16 for PCM
+ audioFormat : 1, // 20 2 PCM = 1
+ numChannels : 1, // 22 2 Mono = 1, Stereo = 2...
+ sampleRate : 8000, // 24 4 8000, 44100...
+ byteRate : 0, // 28 4 SampleRate*NumChannels*BitsPerSample/8
+ blockAlign : 0, // 32 2 NumChannels*BitsPerSample/8
+ bitsPerSample: 8, // 34 2 8 bits = 8, 16 bits = 16
+ subChunk2Id : [0x64,0x61,0x74,0x61], // 36 4 "data" = 0x64617461
+ subChunk2Size: 0 // 40 4 data size = NumSamples*NumChannels*BitsPerSample/8
+ };
+
+ function u32ToArray(i) {
+ return [i&0xFF, (i>>8)&0xFF, (i>>16)&0xFF, (i>>24)&0xFF];
+ }
+
+ function u16ToArray(i) {
+ return [i&0xFF, (i>>8)&0xFF];
+ }
+
+ function split16bitArray(data) {
+ var r = [];
+ var j = 0;
+ var len = data.length;
+ for (var i=0; i>8) & 0xFF;
+ }
+ return r;
+ }
+
+ this.Make = function(data) {
+ if (data instanceof Array) this.data = data;
+ this.header.blockAlign = (this.header.numChannels * this.header.bitsPerSample) >> 3;
+ this.header.byteRate = this.header.blockAlign * this.sampleRate;
+ this.header.subChunk2Size = this.data.length * (this.header.bitsPerSample >> 3);
+ this.header.chunkSize = 36 + this.header.subChunk2Size;
+
+ this.wav = this.header.chunkId.concat(
+ u32ToArray(this.header.chunkSize),
+ this.header.format,
+ this.header.subChunk1Id,
+ u32ToArray(this.header.subChunk1Size),
+ u16ToArray(this.header.audioFormat),
+ u16ToArray(this.header.numChannels),
+ u32ToArray(this.header.sampleRate),
+ u32ToArray(this.header.byteRate),
+ u16ToArray(this.header.blockAlign),
+ u16ToArray(this.header.bitsPerSample),
+ this.header.subChunk2Id,
+ u32ToArray(this.header.subChunk2Size),
+ (this.header.bitsPerSample == 16) ? split16bitArray(this.data) : this.data
+ );
+ this.dataURI = 'data:audio/wav;base64,'+FastBase64.Encode(this.wav);
+ };
+
+ if (data instanceof Array) this.Make(data);
+
+}; // end RIFFWAVE
+*/
+
+/**
+* @author Richard Davey
+* @copyright 2015 Photon Storm Ltd.
+* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
+*/
+
/**
* This is a base State class which can be extended if you are creating your own game.
* It provides quick access to common functions such as the camera, cache, input, match, sound and more.
@@ -17831,6 +17592,20 @@ Phaser.StateManager = function (game, pendingState) {
*/
this.current = '';
+ /**
+ * onStateChange is a Phaser.Signal that is dispatched whenever the game changes state.
+ *
+ * It is dispatched only when the new state is started, which isn't usually at the same time as StateManager.start
+ * is called because state swapping is done in sync with the game loop. It is dispatched *before* any of the new states
+ * methods (such as preload and create) are called, and *after* the previous states shutdown method has been run.
+ *
+ * The callback you specify is sent two parameters: the string based key of the new state,
+ * and the second parameter is the string based key of the old / previous state.
+ *
+ * @property {Phaser.Signal} onStateChange
+ */
+ this.onStateChange = new Phaser.Signal();
+
/**
* @property {function} onInitCallback - This is called when the state is set as the active state.
* @default
@@ -18080,11 +17855,15 @@ Phaser.StateManager.prototype = {
if (this._pendingState && this.game.isBooted)
{
+ var previousStateKey = this.current;
+
// Already got a state running?
this.clearCurrentState();
this.setCurrentState(this._pendingState);
+ this.onStateChange.dispatch(this.current, previousStateKey);
+
if (this.current !== this._pendingState)
{
return;
@@ -18616,7 +18395,7 @@ Phaser.Signal.prototype = {
* @param {number} [priority] - The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added. (default = 0).
* @return {Phaser.SignalBinding} An Object representing the binding between the Signal and listener.
*/
- _registerListener: function (listener, isOnce, listenerContext, priority) {
+ _registerListener: function (listener, isOnce, listenerContext, priority, args) {
var prevIndex = this._indexOfListener(listener, listenerContext);
var binding;
@@ -18632,7 +18411,7 @@ Phaser.Signal.prototype = {
}
else
{
- binding = new Phaser.SignalBinding(this, listener, isOnce, listenerContext, priority);
+ binding = new Phaser.SignalBinding(this, listener, isOnce, listenerContext, priority, args);
this._addBinding(binding);
}
@@ -18717,19 +18496,44 @@ Phaser.Signal.prototype = {
},
/**
- * Add an event listener.
+ * Add an event listener for this signal.
+ *
+ * An event listener is a callback with a related context and priority.
+ *
+ * You can optionally provide extra arguments which will be passed to the callback after any internal parameters.
+ *
+ * For example: `Phaser.Key.onDown` when dispatched will send the Phaser.Key object that caused the signal as the first parameter.
+ * Any arguments you've specified after `priority` will be sent as well:
+ *
+ * `fireButton.onDown.add(shoot, this, 0, 'lazer', 100);`
+ *
+ * When onDown dispatches it will call the `shoot` callback passing it: `Phaser.Key, 'lazer', 100`.
+ *
+ * Where the first parameter is the one that Key.onDown dispatches internally and 'lazer',
+ * and the value 100 were the custom arguments given in the call to 'add'.
*
* @method Phaser.Signal#add
* @param {function} listener - The function to call when this Signal is dispatched.
* @param {object} [listenerContext] - The context under which the listener will be executed (i.e. the object that should represent the `this` variable).
* @param {number} [priority] - The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added (default = 0)
+ * @param {...any} [args=(none)] - Additional arguments to pass to the callback (listener) function. They will be appended after any arguments usually dispatched.
* @return {Phaser.SignalBinding} An Object representing the binding between the Signal and listener.
*/
add: function (listener, listenerContext, priority) {
this.validateListener(listener, 'add');
- return this._registerListener(listener, false, listenerContext, priority);
+ var args = [];
+
+ if (arguments.length > 3)
+ {
+ for (var i = 3; i < arguments.length; i++)
+ {
+ args.push(arguments[i]);
+ }
+ }
+
+ return this._registerListener(listener, false, listenerContext, priority, args);
},
@@ -18743,13 +18547,24 @@ Phaser.Signal.prototype = {
* @param {function} listener - The function to call when this Signal is dispatched.
* @param {object} [listenerContext] - The context under which the listener will be executed (i.e. the object that should represent the `this` variable).
* @param {number} [priority] - The priority level of the event listener. Listeners with higher priority will be executed before listeners with lower priority. Listeners with same priority level will be executed at the same order as they were added (default = 0)
+ * @param {...any} [args=(none)] - Additional arguments to pass to the callback (listener) function. They will be appended after any arguments usually dispatched.
* @return {Phaser.SignalBinding} An Object representing the binding between the Signal and listener.
*/
addOnce: function (listener, listenerContext, priority) {
this.validateListener(listener, 'addOnce');
- return this._registerListener(listener, true, listenerContext, priority);
+ var args = [];
+
+ if (arguments.length > 3)
+ {
+ for (var i = 3; i < arguments.length; i++)
+ {
+ args.push(arguments[i]);
+ }
+ }
+
+ return this._registerListener(listener, true, listenerContext, priority, args);
},
@@ -18974,8 +18789,9 @@ Phaser.Signal.prototype.constructor = Phaser.Signal;
* @param {boolean} isOnce - If binding should be executed just once.
* @param {object} [listenerContext=null] - Context on which listener will be executed (object that should represent the `this` variable inside listener function).
* @param {number} [priority] - The priority level of the event listener. (default = 0).
+* @param {...any} [args=(none)] - Additional arguments to pass to the callback (listener) function. They will be appended after any arguments usually dispatched.
*/
-Phaser.SignalBinding = function (signal, listener, isOnce, listenerContext, priority) {
+Phaser.SignalBinding = function (signal, listener, isOnce, listenerContext, priority, args) {
/**
* @property {Phaser.Game} _listener - Handler function bound to the signal.
@@ -19004,6 +18820,11 @@ Phaser.SignalBinding = function (signal, listener, isOnce, listenerContext, prio
this._priority = priority;
}
+ if (args && args.length)
+ {
+ this._args = args;
+ }
+
};
Phaser.SignalBinding.prototype = {
@@ -19025,6 +18846,12 @@ Phaser.SignalBinding.prototype = {
*/
_priority: 0,
+ /**
+ * @property {array} _args - Listener arguments.
+ * @private
+ */
+ _args: null,
+
/**
* @property {number} callCount - The number of times the handler function has been called.
*/
@@ -19058,7 +18885,14 @@ Phaser.SignalBinding.prototype = {
if (this.active && !!this._listener)
{
params = this.params ? this.params.concat(paramsArr) : paramsArr;
+
+ if (this._args)
+ {
+ params = params.concat(this._args);
+ }
+
handlerReturn = this._listener.apply(this.context, params);
+
this.callCount++;
if (this._isOnce)
@@ -19499,7 +19333,7 @@ Phaser.PluginManager.prototype = {
*
* @method Phaser.PluginManager#add
* @param {object|Phaser.Plugin} plugin - The Plugin to add into the PluginManager. This can be a function or an existing object.
- * @param {...*} parameter - Additional parameters that will be passed to the Plugin.init method.
+ * @param {...*} parameter - Additional arguments that will be passed to the Plugin.init method.
* @return {Phaser.Plugin} The Plugin that was added to the manager.
*/
add: function (plugin) {
@@ -20400,6 +20234,8 @@ Phaser.Group.SORT_DESCENDING = 1;
*
* The child is automatically added to the top of the group and is displayed on top of every previous child.
*
+* If Group.enableBody is set then a physics body will be created on the object, so long as one does not already exist.
+*
* Use {@link #addAt} to control where a child is added. Use {@link #create} to create and add a new child.
*
* @method Phaser.Group#add
@@ -20417,10 +20253,14 @@ Phaser.Group.prototype.add = function (child, silent) {
child.z = this.children.length;
- if (this.enableBody)
+ if (this.enableBody && child.body === null)
{
this.game.physics.enable(child, this.physicsBodyType);
}
+ else if (child.body)
+ {
+ this.addToHash(child);
+ }
if (!silent && child.events)
{
@@ -20488,20 +20328,25 @@ Phaser.Group.prototype.removeFromHash = function (child) {
};
/**
-* Adds an array of existing display objects to this group.
+* Adds an array of existing Display Objects to this Group.
*
-* The children are automatically added to the top of the group, so render on-top of everything else within the group.
+* The Display Objects are automatically added to the top of this Group, and will render on-top of everything already in this Group.
*
-* TODO: Add ability to pass the children as parameters rather than having to be an array.
+* As well as an array you can also pass another Group as the first argument. In this case all of the children from that
+* Group will be removed from it and added into this Group.
*
* @method Phaser.Group#addMultiple
-* @param {DisplayObject[]} children - An array of display objects to add as children.
+* @param {DisplayObject[]|Phaser.Group} children - An array of display objects or a Phaser.Group. If a Group is given then *all* children will be moved from it.
* @param {boolean} [silent=false] - If true the children will not dispatch the `onAddedToGroup` event.
-* @return {DisplayObject[]} The array of children that were added to the group.
+* @return {DisplayObject[]|Phaser.Group} The array of children or Group of children that were added to this Group.
*/
Phaser.Group.prototype.addMultiple = function (children, silent) {
- if (Array.isArray(children))
+ if (children instanceof Phaser.Group)
+ {
+ children.moveAll(this, silent);
+ }
+ else if (Array.isArray(children))
{
for (var i = 0; i < children.length; i++)
{
@@ -20534,10 +20379,14 @@ Phaser.Group.prototype.addAt = function (child, index, silent) {
this.updateZ();
- if (this.enableBody)
+ if (this.enableBody && child.body === null)
{
this.game.physics.enable(child, this.physicsBodyType);
}
+ else if (child.body)
+ {
+ this.addToHash(child);
+ }
if (!silent && child.events)
{
@@ -20559,7 +20408,7 @@ Phaser.Group.prototype.addAt = function (child, index, silent) {
*
* @method Phaser.Group#getAt
* @param {integer} index - The index to return the child from.
-* @return {DisplayObject} The child that was found at the given index, or -1 for an invalid index.
+* @return {DisplayObject|integer} The child that was found at the given index, or -1 for an invalid index.
*/
Phaser.Group.prototype.getAt = function (index) {
@@ -20626,7 +20475,7 @@ Phaser.Group.prototype.create = function (x, y, key, frame, exists) {
* Useful if you need to quickly generate a pool of identical sprites, such as bullets.
*
* By default the sprites will be set to not exist and will be positioned at 0, 0 (relative to the group.x/y).
-* Use {@link #classType} to change the type of object creaded.
+* Use {@link #classType} to change the type of object created.
*
* @method Phaser.Group#createMultiple
* @param {integer} quantity - The number of Sprites to create.
@@ -20646,7 +20495,7 @@ Phaser.Group.prototype.createMultiple = function (quantity, key, frame, exists)
};
/**
-* Internal method that re-applies all of the childrens Z values.
+* Internal method that re-applies all of the children's Z values.
*
* This must be called whenever children ordering is altered so that their `z` indices are correctly updated.
*
@@ -21586,7 +21435,10 @@ Phaser.Group.prototype.forEach = function (callback, callbackContext, checkExist
// Using an array and pushing each element (not a slice!) is _significantly_ faster.
var args = [null];
- for (var i = 3; i < arguments.length; i++) { args.push(arguments[i]); }
+ for (var i = 3; i < arguments.length; i++)
+ {
+ args.push(arguments[i]);
+ }
for (var i = 0; i < this.children.length; i++)
{
@@ -22048,6 +21900,35 @@ Phaser.Group.prototype.remove = function (child, destroy, silent) {
};
+/**
+* Moves all children from this Group to the Group given.
+*
+* @method Phaser.Group#moveAll
+* @param {Phaser.Group} group - The new Group to which the children will be moved to.
+* @param {boolean} [silent=false] - If true the children will not dispatch the `onAddedToGroup` event for the new Group.
+* @return {Phaser.Group} The Group to which all the children were moved.
+*/
+Phaser.Group.prototype.moveAll = function (group, silent) {
+
+ if (typeof silent === 'undefined') { silent = false; }
+
+ if (this.children.length > 0 && group instanceof Phaser.Group)
+ {
+ do
+ {
+ group.add(this.children[0], silent);
+ }
+ while (this.children.length > 0);
+
+ this.hash = [];
+
+ this.cursor = null;
+ }
+
+ return group;
+
+};
+
/**
* Removes all children from this group, but does not remove the group from its parent.
*
@@ -22599,11 +22480,11 @@ Object.defineProperty(Phaser.World.prototype, "randomX", {
if (this.bounds.x < 0)
{
- return this.game.rnd.integerInRange(this.bounds.x, (this.bounds.width - Math.abs(this.bounds.x)));
+ return this.game.rnd.between(this.bounds.x, (this.bounds.width - Math.abs(this.bounds.x)));
}
else
{
- return this.game.rnd.integerInRange(this.bounds.x, this.bounds.width);
+ return this.game.rnd.between(this.bounds.x, this.bounds.width);
}
}
@@ -22621,11 +22502,11 @@ Object.defineProperty(Phaser.World.prototype, "randomY", {
if (this.bounds.y < 0)
{
- return this.game.rnd.integerInRange(this.bounds.y, (this.bounds.height - Math.abs(this.bounds.y)));
+ return this.game.rnd.between(this.bounds.y, (this.bounds.height - Math.abs(this.bounds.y)));
}
else
{
- return this.game.rnd.integerInRange(this.bounds.y, this.bounds.height);
+ return this.game.rnd.between(this.bounds.y, this.bounds.height);
}
}
@@ -23252,15 +23133,6 @@ Phaser.ScaleManager = function (game, width, height) {
*/
this._pageAlignVertically = false;
- /**
- * The maximum number of times a canvas will be resized (in a row) in order to fill the browser.
- * @property {number} maxIterations
- * @protected
- * @see {@link Phaser.ScaleManger#refresh refresh}
- * @deprecated 2.2.0 - This is not used anymore as reflow iterations are "automatic".
- */
- this.maxIterations = 5;
-
/**
* This signal is dispatched when the orientation changes _or_ the validity of the current orientation changes.
*
@@ -23287,28 +23159,6 @@ Phaser.ScaleManager = function (game, width, height) {
*/
this.onOrientationChange = new Phaser.Signal();
- /**
- * This signal is dispatched when the browser enters landscape orientation, having been in portrait.
- *
- * This is signaled from `preUpdate` (or `pauseUpdate`) _even when_ the game is paused.
- *
- * @property {Phaser.Signal} enterLandscape
- * @public
- * @deprecated 2.2.0 - Use {@link Phaser.ScaleManager#onOrientationChange onOrientationChange}
- */
- this.enterLandscape = new Phaser.Signal();
-
- /**
- * This signal is dispatched when the browser enters portrait orientation, having been in landscape.
- *
- * This is signaled from `preUpdate` (or `pauseUpdate`) _even when_ the game is paused.
- *
- * @property {Phaser.Signal} enterPortrait
- * @public
- * @deprecated 2.2.0 - Use {@link Phaser.ScaleManager#onOrientationChange onOrientationChange}
- */
- this.enterPortrait = new Phaser.Signal();
-
/**
* This signal is dispatched when the browser enters an incorrect orientation, as defined by {@link #forceOrientation}.
*
@@ -23397,34 +23247,6 @@ Phaser.ScaleManager = function (game, width, height) {
*/
this.onFullScreenError = new Phaser.Signal();
- /**
- * This signal is dispatched when the browser enters fullscreen mode, if supported.
- *
- * @property {Phaser.Signal} enterFullScreen
- * @public
- * @deprecated 2.2.0 - Use {@link Phaser.ScaleManager#onFullScreenChange onFullScreenChange}
- */
- this.enterFullScreen = new Phaser.Signal();
-
- /**
- * This signal is dispatched when the browser leaves fullscreen mode.
- *
- * @property {Phaser.Signal} leaveFullScreen
- * @public
- * @deprecated 2.2.0 - Use {@link Phaser.ScaleManager#onFullScreenChange onFullScreenChange}
- */
- this.leaveFullScreen = new Phaser.Signal();
-
- /**
- * This signal is dispatched when the browser fails to enter fullscreen mode;
- * or if the device does not support fullscreen mode and {@link #startFullScreen} is invoked.
- *
- * @property {Phaser.Signal} fullScreenFailed
- * @public
- * @deprecated 2.2.0 - Use {@link Phaser.ScaleManager#onFullScreenError onFullScreenError}
- */
- this.fullScreenFailed = this.onFullScreenError;
-
/**
* The _last known_ orientation of the screen, as defined in the Window Screen Web API.
* See {@link Phaser.DOM.getScreenOrientation} for possible values.
@@ -23625,6 +23447,12 @@ Phaser.ScaleManager = function (game, width, height) {
*/
this.onResizeContext = null;
+ /**
+ * @property {integer} _pendingScaleMode - Used to retain the scale mode if set from config before Boot.
+ * @private
+ */
+ this._pendingScaleMode = null;
+
/**
* Information saved when fullscreen mode is started.
* @property {?object} _fullScreenRestore
@@ -23704,6 +23532,12 @@ Phaser.ScaleManager = function (game, width, height) {
*/
this._lastReportedGameSize = new Phaser.Rectangle();
+ /**
+ * @property {boolean} _booted - ScaleManager booted state.
+ * @private
+ */
+ this._booted = false;
+
if (game.config)
{
this.parseConfig(game.config);
@@ -23753,7 +23587,6 @@ Phaser.ScaleManager.RESIZE = 3;
*/
Phaser.ScaleManager.USER_SCALE = 4;
-
Phaser.ScaleManager.prototype = {
/**
@@ -23846,6 +23679,14 @@ Phaser.ScaleManager.prototype = {
this.grid = new Phaser.FlexGrid(this, this.width, this.height);
+ this._booted = true;
+
+ if (this._pendingScaleMode)
+ {
+ this.scaleMode = this._pendingScaleMode;
+ this._pendingScaleMode = null;
+ }
+
},
/**
@@ -23859,7 +23700,14 @@ Phaser.ScaleManager.prototype = {
if (config['scaleMode'])
{
- this.scaleMode = config['scaleMode'];
+ if (this._booted)
+ {
+ this.scaleMode = config['scaleMode'];
+ }
+ else
+ {
+ this._pendingScaleMode = config['scaleMode'];
+ }
}
if (config['fullScreenScaleMode'])
@@ -24320,18 +24168,6 @@ Phaser.ScaleManager.prototype = {
var changed = previousOrientation !== this.screenOrientation;
var correctnessChanged = previouslyIncorrect !== this.incorrectOrientation;
- if (changed)
- {
- if (this.isLandscape)
- {
- this.enterLandscape.dispatch(this.orientation, true, false);
- }
- else
- {
- this.enterPortrait.dispatch(this.orientation, false, true);
- }
- }
-
if (correctnessChanged)
{
if (this.incorrectOrientation)
@@ -25187,76 +25023,6 @@ Phaser.ScaleManager.prototype = {
Phaser.ScaleManager.prototype.constructor = Phaser.ScaleManager;
-/**
-* window.resize event handler.
-* @method checkResize
-* @memberof Phaser.ScaleManager
-* @protected
-* @deprecated 2.2.0 - This method is INTERNAL: avoid using it directly.
-*/
-Phaser.ScaleManager.prototype.checkResize = Phaser.ScaleManager.prototype.windowResize;
-
-/**
-* window.orientationchange event handler.
-* @method checkOrientation
-* @memberof Phaser.ScaleManager
-* @protected
-* @deprecated 2.2.0 - This method is INTERNAL: avoid using it directly.
-*/
-Phaser.ScaleManager.prototype.checkOrientation = Phaser.ScaleManager.prototype.orientationChange;
-
-/**
-* Updates the size of the Game or the size/position of the Display canvas based on internal state.
-*
-* Do not call this directly. To "refresh" the layout use {@link Phaser.ScaleManager#refresh refresh}.
-* To precisely control the scaling/size, apply appropriate rules to the bounding Parent container or
-* use the {@link Phaser.ScaleManager#scaleMode USER_SCALE scale mode}.
-*
-* @method Phaser.ScaleManager#setScreenSize
-* @protected
-* @deprecated 2.2.0 - This method is INTERNAL: avoid using it directly.
-*/
-Phaser.ScaleManager.prototype.setScreenSize = Phaser.ScaleManager.prototype.updateLayout;
-
-/**
-* Updates the size/position of the Display canvas based on internal state.
-*
-* Do not call this directly. To "refresh" the layout use {@link Phaser.ScaleManager#refresh refresh}.
-* To precisely control the scaling/size, apply appropriate rules to the bounding Parent container or
-* use the {@link Phaser.ScaleManager#scaleMode USER_SCALE scale mode}.
-*
-* @method setSize
-* @memberof Phaser.ScaleManager
-* @protected
-* @deprecated 2.2.0 - This method is INTERNAL: avoid using it directly.
-*/
-Phaser.ScaleManager.prototype.setSize = Phaser.ScaleManager.prototype.reflowCanvas;
-
-/**
-* Checks if the browser is in the correct orientation for the game,
-* dependent upon {@link #forceLandscape} and {@link #forcePortrait}, and updates the state.
-*
-* The appropriate event is dispatched if the orientation became valid or invalid.
-*
-* @method checkOrientationState
-* @memberof Phaser.ScaleManager
-* @protected
-* @return {boolean} True if the orientation state changed (consider a refresh)
-* @deprecated 2.2.0 - This is only for backward compatibility of user code.
-*/
-Phaser.ScaleManager.prototype.checkOrientationState = function () {
-
- var changed = this.updateOrientationState();
-
- if (changed)
- {
- this.refresh();
- }
-
- return changed;
-
-};
-
/**
* The DOM element that is considered the Parent bounding element, if any.
*
@@ -25525,21 +25291,6 @@ Object.defineProperty(Phaser.ScaleManager.prototype, "isLandscape", {
});
-/**
-* The _last known_ orientation value of the screen. A value of 90 is landscape and 0 is portrait.
-* @name Phaser.ScaleManager#orientation
-* @property {integer} orientation
-* @readonly
-* @deprecated 2.2.0 - Use {@link #screenOrientation} instead.
-*/
-Object.defineProperty(Phaser.ScaleManager.prototype, "orientation", {
-
- get: function () {
- return (this.classifyOrientation(this.screenOrientation) === 'portrait' ? 0 : 90);
- }
-
-});
-
/**
* Returns true if the game dimensions are portrait (height > width).
* This is especially useful to check when using the RESIZE scale mode
@@ -25821,7 +25572,7 @@ Phaser.Game = function (width, height, renderer, parent, state, transparent, ant
this.context = null;
/**
- * @property {Phaser.Utils.Debug} debug - A set of useful debug utilitie.
+ * @property {Phaser.Utils.Debug} debug - A set of useful debug utilities.
*/
this.debug = null;
@@ -25830,6 +25581,11 @@ Phaser.Game = function (width, height, renderer, parent, state, transparent, ant
*/
this.particles = null;
+ /**
+ * @property {Phaser.Create} create - The Asset Generator.
+ */
+ this.create = null;
+
/**
* If `false` Phaser will automatically render the display list every update. If `true` the render loop will be skipped.
* You can toggle this value at run-time to gain exact control over when Phaser renders. This can be useful in certain types of game or application.
@@ -26120,6 +25876,7 @@ Phaser.Game.prototype = {
this.sound = new Phaser.SoundManager(this);
this.physics = new Phaser.Physics(this, this.physicsConfig);
this.particles = new Phaser.Particles(this);
+ this.create = new Phaser.Create(this);
this.plugins = new Phaser.PluginManager(this);
this.net = new Phaser.Net(this);
@@ -26585,6 +26342,12 @@ Phaser.Game.prototype = {
this.time.gamePaused();
this.sound.setMute();
this.onPause.dispatch(event);
+
+ // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800
+ if (this.device.cordova && this.device.iOS)
+ {
+ this.lockRender = true;
+ }
}
},
@@ -26606,6 +26369,12 @@ Phaser.Game.prototype = {
this.input.reset();
this.sound.unsetMute();
this.onResume.dispatch(event);
+
+ // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800
+ if (this.device.cordova && this.device.iOS)
+ {
+ this.lockRender = false;
+ }
}
},
@@ -26693,7 +26462,11 @@ Object.defineProperty(Phaser.Game.prototype, "paused", {
});
/**
-* "Deleted code is debugged code." - Jeff Sickel
+ *
+ * "Deleted code is debugged code." - Jeff Sickel
+ *
+ * ヽ(〃^▽^〃)ノ
+ *
*/
/**
@@ -26787,12 +26560,6 @@ Phaser.Input = function (game) {
*/
this.maxPointers = -1;
- /**
- * @property {number} currentPointers - The current number of active Pointers.
- * @deprecated This is only updated when `maxPointers >= 0` and will generally be innacurate. Use `totalActivePointers` instead.
- */
- this.currentPointers = 0;
-
/**
* @property {number} tapRate - The number of milliseconds that the Pointer has to be pressed down and then released to be considered a tap or click.
* @default
@@ -26907,18 +26674,27 @@ Phaser.Input = function (game) {
/**
* The most recently active Pointer object.
+ *
* When you've limited max pointers to 1 this will accurately be either the first finger touched or mouse.
+ *
* @property {Phaser.Pointer} activePointer
*/
this.activePointer = null;
/**
- * @property {Pointer} mousePointer - The mouse has its own unique Phaser.Pointer object which you can use if making a desktop specific game.
+ * The mouse has its own unique Phaser.Pointer object which you can use if making a desktop specific game.
+ *
+ * @property {Pointer} mousePointer
*/
this.mousePointer = null;
/**
- * @property {Phaser.Mouse} mouse - The Mouse Input manager.
+ * The Mouse Input manager.
+ *
+ * You should not usually access this manager directly, but instead use Input.mousePointer or Input.activePointer
+ * which normalizes all the input values for you, regardless of browser.
+ *
+ * @property {Phaser.Mouse} mouse
*/
this.mouse = null;
@@ -26928,12 +26704,22 @@ Phaser.Input = function (game) {
this.keyboard = null;
/**
- * @property {Phaser.Touch} touch - the Touch Input manager.
+ * The Touch Input manager.
+ *
+ * You should not usually access this manager directly, but instead use Input.activePointer
+ * which normalizes all the input values for you, regardless of browser.
+ *
+ * @property {Phaser.Touch} touch
*/
this.touch = null;
/**
- * @property {Phaser.MSPointer} mspointer - The MSPointer Input manager.
+ * The MSPointer Input manager.
+ *
+ * You should not usually access this manager directly, but instead use Input.activePointer
+ * which normalizes all the input values for you, regardless of browser.
+ *
+ * @property {Phaser.MSPointer} mspointer
*/
this.mspointer = null;
@@ -27078,7 +26864,6 @@ Phaser.Input.prototype = {
this.circle = new Phaser.Circle(0, 0, 44);
this.activePointer = this.mousePointer;
- this.currentPointers = 0;
this.hitCanvas = document.createElement('canvas');
this.hitCanvas.width = 1;
@@ -27276,8 +27061,6 @@ Phaser.Input.prototype = {
this.pointers[i].reset();
}
- this.currentPointers = 0;
-
if (this.game.canvas.style.cursor !== 'none')
{
this.game.canvas.style.cursor = 'inherit';
@@ -27447,9 +27230,6 @@ Phaser.Input.prototype = {
}
}
- // For backwards compatibility with side-effect in totalActivePointers.
- this.currentPointers = (limit - count);
-
return (limit - count);
},
@@ -27458,7 +27238,7 @@ Phaser.Input.prototype = {
* Get the first Pointer with the given active state.
*
* @method Phaser.Input#getPointer
- * @param {boolean} [isActive=false] - The state the Pointer should be in - active or innactive?
+ * @param {boolean} [isActive=false] - The state the Pointer should be in - active or inactive?
* @return {Phaser.Pointer} A Pointer object or null if no Pointer object matches the requested state.
*/
getPointer: function (isActive) {
@@ -27765,25 +27545,6 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", {
});
-/**
-* _All_ input sources (eg. Mouse, Keyboard, Touch) are ignored when Input is disabled.
-* To disable just one type of input; for example, the Mouse, use `input.mouse.enabled = false`.
-* @property {boolean} disabled
-* @memberof Phaser.Input
-* @default false
-* @deprecated Use {@link Phaser.Input#enabled} instead
-*/
-Object.defineProperty(Phaser.Input.prototype, "disabled", {
-
- get: function () {
- return !this.enabled;
- },
- set: function (value) {
- this.enabled = !value;
- }
-
-});
-
/**
* @author Richard Davey
* @copyright 2015 Photon Storm Ltd.
@@ -27796,6 +27557,8 @@ Object.defineProperty(Phaser.Input.prototype, "disabled", {
* It captures and processes mouse events that happen on the game canvas object. It also adds a single `mouseup` listener to `window` which
* is used to capture the mouse being released when not over the game.
*
+* You should not normally access this class directly, but instead use a Phaser.Pointer object which normalises all game input for you.
+*
* @class Phaser.Mouse
* @constructor
* @param {Phaser.Game} game - A reference to the currently running game.
@@ -27817,12 +27580,6 @@ Phaser.Mouse = function (game) {
*/
this.mouseDownCallback = null;
- /**
- * @property {function} mouseMoveCallback - A callback that can be fired when the mouse is moved.
- * @deprecated Will be removed soon. Please use `Input.addMoveCallback` instead.
- */
- this.mouseMoveCallback = null;
-
/**
* @property {function} mouseUpCallback - A callback that can be fired when the mouse is released from a pressed down state.
*/
@@ -28364,24 +28121,6 @@ Phaser.Mouse.prototype = {
Phaser.Mouse.prototype.constructor = Phaser.Mouse;
-/**
-* If disabled all Mouse input will be ignored.
-* @property {boolean} disabled
-* @memberof Phaser.Mouse
-* @default false
-* @deprecated Use {@link Phaser.Mouse#enabled} instead
-*/
-Object.defineProperty(Phaser.Mouse.prototype, "disabled", {
-
- get: function () {
- return !this.enabled;
- },
- set: function (value) {
- this.enabled = !value;
- }
-
-});
-
/* jshint latedef:nofunc */
/**
* A purely internal event support class to proxy 'wheelscroll' and 'DOMMouseWheel'
@@ -28477,6 +28216,8 @@ Object.defineProperties(WheelEventProxy.prototype, {
* It will work only in Internet Explorer 10 and Windows Store or Windows Phone 8 apps using JavaScript.
* http://msdn.microsoft.com/en-us/library/ie/hh673557(v=vs.85).aspx
*
+* You should not normally access this class directly, but instead use a Phaser.Pointer object which normalises all game input for you.
+*
* @class Phaser.MSPointer
* @constructor
* @param {Phaser.Game} game - A reference to the currently running game.
@@ -28714,24 +28455,6 @@ Phaser.MSPointer.prototype = {
Phaser.MSPointer.prototype.constructor = Phaser.MSPointer;
-/**
-* If disabled all MSPointer input will be ignored.
-* @property {boolean} disabled
-* @memberof Phaser.MSPointer
-* @default false
-* @deprecated Use {@link Phaser.MSPointer#enabled} instead
-*/
-Object.defineProperty(Phaser.MSPointer.prototype, "disabled", {
-
- get: function () {
- return !this.enabled;
- },
- set: function (value) {
- this.enabled = !value;
- }
-
-});
-
/**
* @author Richard Davey
* @copyright 2015 Photon Storm Ltd.
@@ -28789,11 +28512,55 @@ Phaser.Pointer = function (game, id) {
this.target = null;
/**
- * @property {any} button - The button property of the Pointer as set by the DOM event when this Pointer is started.
+ * @property {any} button - The button property of the most recent event as set by the DOM event when this Pointer is started.
* @default
*/
this.button = null;
+ /**
+ * True if the left mouse button is being held down, or in PointerEvent based devices it represents a Touch contact or Pen contact.
+ * @property {boolean} leftButton
+ * @default
+ */
+ this.leftButton = false;
+
+ /**
+ * True if the middle mouse button is being held down.
+ * @property {boolean} middleButton
+ * @default
+ */
+ this.middleButton = false;
+
+ /**
+ * True if the right mouse button is being held down, or in PointerEvent based devices it represents a Pen contact with a barrel button.
+ * @property {boolean} rightButton
+ * @default
+ */
+ this.rightButton = false;
+
+ /**
+ * True if the X1 (back) mouse button is being held down. On Linux (GTK) this is unsupported.
+ * On Windows if advanced pointer software (such as IntelliPoint) is installed this doesn't register.
+ * @property {boolean} backButton
+ * @default
+ */
+ this.backButton = false;
+
+ /**
+ * True if the X2 (forward) mouse button is being held down. On Linux (GTK) this is unsupported.
+ * On Windows if advanced pointer software (such as IntelliPoint) is installed this doesn't register.
+ * @property {boolean} forwardButton
+ * @default
+ */
+ this.forwardButton = false;
+
+ /**
+ * True if the Eraser pen button is being held down. Only works on PointerEvent supported devices.
+ * @property {boolean} eraserButton
+ * @default
+ */
+ this.eraserButton = false;
+
/**
* @property {boolean} _holdSent - Local private variable to store the status of dispatching a hold event.
* @private
@@ -29000,8 +28767,109 @@ Phaser.Pointer = function (game, id) {
};
+/**
+* No buttons at all.
+* @constant
+* @type {number}
+*/
+Phaser.Pointer.NO_BUTTON = 0;
+
+/**
+* The Left Mouse button, or in PointerEvent devices a Touch contact or Pen contact.
+* @constant
+* @type {number}
+*/
+Phaser.Pointer.LEFT_BUTTON = 1;
+
+/**
+* The Right Mouse button, or in PointerEvent devices a Pen contact with a barrel button.
+* @constant
+* @type {number}
+*/
+Phaser.Pointer.RIGHT_BUTTON = 2;
+
+/**
+* The Middle Mouse button.
+* @constant
+* @type {number}
+*/
+Phaser.Pointer.MIDDLE_BUTTON = 4;
+
+/**
+* The X1 button. This is typically the mouse Back button, but is often reconfigured.
+* On Linux (GTK) this is unsupported. On Windows if advanced pointer software (such as IntelliPoint) is installed this doesn't register.
+* @constant
+* @type {number}
+*/
+Phaser.Pointer.BACK_BUTTON = 8;
+
+/**
+* The X2 button. This is typically the mouse Forward button, but is often reconfigured.
+* On Linux (GTK) this is unsupported. On Windows if advanced pointer software (such as IntelliPoint) is installed this doesn't register.
+* @constant
+* @type {number}
+*/
+Phaser.Pointer.FORWARD_BUTTON = 16;
+
+/**
+* The Eraser pen button on PointerEvent supported devices only.
+* @constant
+* @type {number}
+*/
+Phaser.Pointer.ERASER_BUTTON = 32;
+
Phaser.Pointer.prototype = {
+ /**
+ * Resets the states of all the button booleans.
+ *
+ * @method Phaser.Pointer#resetButtons
+ * @protected
+ */
+ resetButtons: function () {
+
+ this.leftButton = false;
+ this.middleButton = false;
+ this.rightButton = false;
+ this.backButton = false;
+ this.forwardButton = false;
+ this.eraserButton = false;
+
+ },
+
+ /**
+ * Called when the event.buttons property changes from zero.
+ * Contains a button bitmask.
+ *
+ * @method Phaser.Pointer#updateButtons
+ * @protected
+ * @param {MouseEvent} event - The DOM event.
+ */
+ updateButtons: function (event) {
+
+ var buttons = event.buttons;
+
+ if (typeof buttons === 'undefined')
+ {
+ return;
+ }
+
+ this.leftButton = (Phaser.Pointer.LEFT_BUTTON & buttons) ? true : false;
+ this.rightButton = (Phaser.Pointer.RIGHT_BUTTON & buttons) ? true : false;
+ this.middleButton = (Phaser.Pointer.MIDDLE_BUTTON & buttons) ? true : false;
+ this.backButton = (Phaser.Pointer.BACK_BUTTON & buttons) ? true : false;
+ this.forwardButton = (Phaser.Pointer.FORWARD_BUTTON & buttons) ? true : false;
+ this.eraserButton = (Phaser.Pointer.ERASER_BUTTON & buttons) ? true : false;
+
+ // On OS X (and other devices with trackpads) you have to press CTRL + the pad
+ // to initiate a right-click event, so we'll check for that here
+ if (event.ctrlKey && this.leftButton)
+ {
+ this.rightButton = true;
+ }
+
+ },
+
/**
* Called when the Pointer is pressed onto the touchscreen.
* @method Phaser.Pointer#start
@@ -29017,10 +28885,7 @@ Phaser.Pointer.prototype = {
this.identifier = event.identifier;
this.target = event.target;
- if (typeof event.button !== 'undefined')
- {
- this.button = event.button;
- }
+ this.updateButtons(event);
this._history = [];
this.active = true;
@@ -29042,7 +28907,9 @@ Phaser.Pointer.prototype = {
// x and y are the old values here?
this.positionDown.setTo(this.x, this.y);
- if (this.game.input.multiInputOverride === Phaser.Input.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride === Phaser.Input.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride === Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers === 0))
+ if (this.game.input.multiInputOverride === Phaser.Input.MOUSE_OVERRIDES_TOUCH ||
+ this.game.input.multiInputOverride === Phaser.Input.MOUSE_TOUCH_COMBINE ||
+ (this.game.input.multiInputOverride === Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.totalActivePointers === 0))
{
this.game.input.x = this.x;
this.game.input.y = this.y;
@@ -29054,11 +28921,6 @@ Phaser.Pointer.prototype = {
this._stateReset = false;
this.totalTouches++;
- if (!this.isMouse)
- {
- this.game.input.currentPointers++;
- }
-
if (this.targetObject !== null)
{
this.targetObject._touchedHandler(this);
@@ -29089,7 +28951,9 @@ Phaser.Pointer.prototype = {
if (this._holdSent === false && this.duration >= this.game.input.holdRate)
{
- if (this.game.input.multiInputOverride == Phaser.Input.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride == Phaser.Input.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride == Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers === 0))
+ if (this.game.input.multiInputOverride === Phaser.Input.MOUSE_OVERRIDES_TOUCH ||
+ this.game.input.multiInputOverride === Phaser.Input.MOUSE_TOUCH_COMBINE ||
+ (this.game.input.multiInputOverride === Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.totalActivePointers === 0))
{
this.game.input.onHold.dispatch(this);
}
@@ -29132,9 +28996,9 @@ Phaser.Pointer.prototype = {
if (typeof fromClick === 'undefined') { fromClick = false; }
- if (typeof event.button !== 'undefined')
+ if (fromClick)
{
- this.button = event.button;
+ this.updateButtons(event);
}
this.clientX = event.clientX;
@@ -29162,7 +29026,9 @@ Phaser.Pointer.prototype = {
this.circle.x = this.x;
this.circle.y = this.y;
- if (this.game.input.multiInputOverride === Phaser.Input.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride === Phaser.Input.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride === Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers === 0))
+ if (this.game.input.multiInputOverride === Phaser.Input.MOUSE_OVERRIDES_TOUCH ||
+ this.game.input.multiInputOverride === Phaser.Input.MOUSE_TOUCH_COMBINE ||
+ (this.game.input.multiInputOverride === Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.totalActivePointers === 0))
{
this.game.input.activePointer = this;
this.game.input.x = this.x;
@@ -29341,9 +29207,13 @@ Phaser.Pointer.prototype = {
return;
}
+ this.updateButtons(event);
+
this.timeUp = this.game.time.time;
- if (this.game.input.multiInputOverride === Phaser.Input.MOUSE_OVERRIDES_TOUCH || this.game.input.multiInputOverride === Phaser.Input.MOUSE_TOUCH_COMBINE || (this.game.input.multiInputOverride === Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.currentPointers === 0))
+ if (this.game.input.multiInputOverride === Phaser.Input.MOUSE_OVERRIDES_TOUCH ||
+ this.game.input.multiInputOverride === Phaser.Input.MOUSE_TOUCH_COMBINE ||
+ (this.game.input.multiInputOverride === Phaser.Input.TOUCH_OVERRIDES_MOUSE && this.game.input.totalActivePointers === 0))
{
this.game.input.onUp.dispatch(this, event);
@@ -29391,6 +29261,7 @@ Phaser.Pointer.prototype = {
{
this._trampolineTargetObject = this.targetObject;
}
+
this.targetObject = null;
return this;
@@ -29524,6 +29395,8 @@ Phaser.Pointer.prototype = {
this._history.length = 0;
this._stateReset = true;
+ this.resetButtons();
+
if (this.targetObject)
{
this.targetObject._releasedHandler(this);
@@ -29610,6 +29483,8 @@ Object.defineProperty(Phaser.Pointer.prototype, "worldY", {
/**
* Phaser.Touch handles touch events with your game. Note: Android 2.x only supports 1 touch event at once, no multi-touch.
*
+* You should not normally access this class directly, but instead use a Phaser.Pointer object which normalises all game input for you.
+*
* @class Phaser.Touch
* @constructor
* @param {Phaser.Game} game - A reference to the currently running game.
@@ -30046,25 +29921,6 @@ Phaser.Touch.prototype = {
Phaser.Touch.prototype.constructor = Phaser.Touch;
-/**
-* If disabled all Touch events will be ignored.
-* @property {boolean} disabled
-* @memberof Phaser.Touch
-* @default false
-* @deprecated Use {@link Phaser.Touch#enabled} instead
-*/
-Object.defineProperty(Phaser.Touch.prototype, "disabled", {
-
- get: function () {
- return !this.enabled;
- },
-
- set: function (value) {
- this.enabled = !value;
- }
-
-});
-
/**
* @author Richard Davey
* @copyright 2015 Photon Storm Ltd.
@@ -30261,6 +30117,11 @@ Phaser.InputHandler = function (sprite) {
*/
this.dragStartPoint = new Phaser.Point();
+ /**
+ * @property {Phaser.Point} snapPoint - If the sprite is set to snap while dragging this holds the point of the most recent 'snap' event.
+ */
+ this.snapPoint = new Phaser.Point();
+
/**
* @property {Phaser.Point} _dragPoint - Internal cache var.
* @private
@@ -31126,6 +30987,7 @@ Phaser.InputHandler.prototype = {
{
this.sprite.cameraOffset.x = Math.round((this.sprite.cameraOffset.x - (this.snapOffsetX % this.snapX)) / this.snapX) * this.snapX + (this.snapOffsetX % this.snapX);
this.sprite.cameraOffset.y = Math.round((this.sprite.cameraOffset.y - (this.snapOffsetY % this.snapY)) / this.snapY) * this.snapY + (this.snapOffsetY % this.snapY);
+ this.snapPoint.set(this.sprite.cameraOffset.x, this.sprite.cameraOffset.y);
}
}
else
@@ -31154,9 +31016,12 @@ Phaser.InputHandler.prototype = {
{
this.sprite.x = Math.round((this.sprite.x - (this.snapOffsetX % this.snapX)) / this.snapX) * this.snapX + (this.snapOffsetX % this.snapX);
this.sprite.y = Math.round((this.sprite.y - (this.snapOffsetY % this.snapY)) / this.snapY) * this.snapY + (this.snapOffsetY % this.snapY);
+ this.snapPoint.set(this.sprite.x, this.sprite.y);
}
}
+ this.sprite.events.onDragUpdate.dispatch(this.sprite, pointer, px, py, this.snapPoint);
+
return true;
},
@@ -31264,7 +31129,15 @@ Phaser.InputHandler.prototype = {
},
/**
- * Make this Sprite draggable by the mouse. You can also optionally set mouseStartDragCallback and mouseStopDragCallback
+ * Allow this Sprite to be dragged by any valid pointer.
+ *
+ * When the drag begins the Sprite.events.onDragStart event will be dispatched.
+ *
+ * When the drag completes by way of the user letting go of the pointer that was dragging the sprite, the Sprite.events.onDragStop event is dispatched.
+ *
+ * For the duration of the drag the Sprite.events.onDragUpdate event is dispatched. This event is only dispatched when the pointer actually
+ * changes position and moves. The event sends 5 parameters: `sprite`, `pointer`, `dragX`, `dragY` and `snapPoint`.
+ *
* @method Phaser.InputHandler#enableDrag
* @param {boolean} [lockCenter=false] - If false the Sprite will drag from where you click it minus the dragOffset. If true it will center itself to the tip of the mouse pointer.
* @param {boolean} [bringToTop=false] - If true the Sprite will be bought to the top of the rendering list in its current Group.
@@ -32104,24 +31977,6 @@ Phaser.Gamepad.prototype = {
Phaser.Gamepad.prototype.constructor = Phaser.Gamepad;
-/**
-* If disabled all Gamepad input will be ignored.
-* @property {boolean} disabled
-* @memberof Phaser.Gamepad
-* @default false
-* @deprecated Use {@link Phaser.Gamepad#enabled} instead
-*/
-Object.defineProperty(Phaser.Gamepad.prototype, "disabled", {
-
- get: function () {
- return !this.enabled;
- },
- set: function (value) {
- this.enabled = !value;
- }
-
-});
-
/**
* If the gamepad input is active or not - if not active it should not be updated from Input.js
* @name Phaser.Gamepad#active
@@ -33592,6 +33447,30 @@ Phaser.Keyboard.prototype = {
},
+ /**
+ * A practical way to create an object containing user selected hotkeys.
+ *
+ * For example: `addKeys( { 'up': Phaser.Keyboard.W, 'down': Phaser.Keyboard.S, 'left': Phaser.Keyboard.A, 'right': Phaser.Keyboard.D } );`
+ *
+ * Would return an object containing the properties `up`, `down`, `left` and `right` that you could poll just like a Phaser.Key object.
+ *
+ * @method Phaser.Keyboard#addKeys
+ * @param {object} keys - A key mapping object, i.e. `{ 'up': Phaser.Keyboard.W, 'down': Phaser.Keyboard.S }` or `{ 'up': 52, 'down': 53 }`.
+ * @return {object} An object containing user selected properties
+ */
+ addKeys: function (keys) {
+
+ var output = {};
+
+ for (var key in keys)
+ {
+ output[key] = this.addKey(keys[key]);
+ }
+
+ return output;
+
+ },
+
/**
* Removes a Key object from the Keyboard manager.
*
@@ -33617,12 +33496,7 @@ Phaser.Keyboard.prototype = {
*/
createCursorKeys: function () {
- return {
- up: this.addKey(Phaser.Keyboard.UP),
- down: this.addKey(Phaser.Keyboard.DOWN),
- left: this.addKey(Phaser.Keyboard.LEFT),
- right: this.addKey(Phaser.Keyboard.RIGHT)
- };
+ return this.addKeys({ 'up': Phaser.Keyboard.UP, 'down': Phaser.Keyboard.DOWN, 'left': Phaser.Keyboard.LEFT, 'right': Phaser.Keyboard.RIGHT });
},
@@ -33951,24 +33825,6 @@ Phaser.Keyboard.prototype = {
};
-/**
-* If disabled all Keyboard input will be ignored.
-* @property {boolean} disabled
-* @memberof Phaser.Keyboard
-* @default false
-* @deprecated Use {@link Phaser.Keyboard#enabled} instead
-*/
-Object.defineProperty(Phaser.Keyboard.prototype, "disabled", {
-
- get: function () {
- return !this.enabled;
- },
- set: function (value) {
- this.enabled = !value;
- }
-
-});
-
/**
* Returns the string value of the most recently pressed key.
* @name Phaser.Keyboard#lastChar
@@ -34079,7 +33935,9 @@ Phaser.Keyboard.F14 = 125;
Phaser.Keyboard.F15 = 126;
Phaser.Keyboard.COLON = 186;
Phaser.Keyboard.EQUALS = 187;
+Phaser.Keyboard.COMMA = 188;
Phaser.Keyboard.UNDERSCORE = 189;
+Phaser.Keyboard.PERIOD = 190;
Phaser.Keyboard.QUESTION_MARK = 191;
Phaser.Keyboard.TILDE = 192;
Phaser.Keyboard.OPEN_BRACKET = 219;
@@ -34104,12 +33962,12 @@ Phaser.Keyboard.LEFT = 37;
Phaser.Keyboard.UP = 38;
Phaser.Keyboard.RIGHT = 39;
Phaser.Keyboard.DOWN = 40;
+Phaser.Keyboard.PLUS = 43;
+Phaser.Keyboard.MINUS = 44;
Phaser.Keyboard.INSERT = 45;
Phaser.Keyboard.DELETE = 46;
Phaser.Keyboard.HELP = 47;
Phaser.Keyboard.NUM_LOCK = 144;
-Phaser.Keyboard.PLUS = 43;
-Phaser.Keyboard.MINUS = 45;
/**
* @author Richard Davey
@@ -34571,6 +34429,12 @@ Phaser.Component.Core.init = function (game, x, y, key, frame) {
Phaser.Component.Core.preUpdate = function () {
+ if (this.pendingDestroy)
+ {
+ this.destroy();
+ return;
+ }
+
this.previousPosition.set(this.world.x, this.world.y);
this.previousRotation = this.rotation;
@@ -34713,6 +34577,17 @@ Phaser.Component.Core.prototype = {
*/
fresh: true,
+ /**
+ * A Game Object is that is pendingDestroy is flagged to have its destroy method called on the next logic update.
+ * You can set it directly to allow you to flag an object to be destroyed on its next update.
+ *
+ * This is extremely useful if you wish to destroy and object from within one of its own callbacks
+ * such as with Buttons or other Input events.
+ *
+ * @property {boolean} pendingDestroy
+ */
+ pendingDestroy: false,
+
/**
* @property {Phaser.Rectangle} _bounds - Internal cache var.
* @private
@@ -34792,7 +34667,7 @@ Phaser.Component.Core.prototype = {
*/
postUpdate: function() {
- if (this.key instanceof Phaser.BitmapData || this.key instanceof Phaser.Video)
+ if (this.customRender)
{
this.key.render();
}
@@ -35035,7 +34910,7 @@ Phaser.Component.Destroy.prototype = {
* @method
* @param {boolean} [destroyChildren=true] - Should every child of this object have its destroy method called as well?
*/
- destroy: function(destroyChildren) {
+ destroy: function (destroyChildren) {
if (this.game === null || this.destroyPhase) { return; }
@@ -35112,6 +34987,11 @@ Phaser.Component.Destroy.prototype = {
this.key.onChangeSource.remove(this.resizeFrame, this);
}
+ if (Phaser.BitmapText && this._glyphs)
+ {
+ this._glyphs = [];
+ }
+
this.alive = false;
this.exists = false;
this.visible = false;
@@ -35138,6 +35018,7 @@ Phaser.Component.Destroy.prototype = {
this._destroyCachedSprite();
this.destroyPhase = false;
+ this.pendingDestroy = false;
}
@@ -35201,6 +35082,7 @@ Phaser.Events.prototype = {
if (this._onInputDown) { this._onInputDown.dispose(); }
if (this._onInputUp) { this._onInputUp.dispose(); }
if (this._onDragStart) { this._onDragStart.dispose(); }
+ if (this._onDragUpdate) { this._onDragUpdate.dispose(); }
if (this._onDragStop) { this._onDragStop.dispose(); }
if (this._onAnimationStart) { this._onAnimationStart.dispose(); }
@@ -35276,6 +35158,11 @@ Phaser.Events.prototype = {
*/
onDragStart: null,
+ /**
+ * @property {Phaser.Signal} onDragUpdate - This signal is dispatched if the parent is inputEnabled and receives a drag update event from a Pointer.
+ */
+ onDragUpdate: null,
+
/**
* @property {Phaser.Signal} onDragStop - This signal is dispatched if the parent is inputEnabled and receives a drag stop event from a Pointer.
*/
@@ -35441,11 +35328,21 @@ Phaser.Component.Health.prototype = {
* The Game Objects health value. This is a handy property for setting and manipulating health on a Game Object.
*
* It can be used in combination with the `damage` method or modified directly.
+ *
* @property {number} health
* @default
*/
health: 1,
+ /**
+ * The Game Objects maximum health value. This works in combination with the `heal` method to ensure
+ * the health value never exceeds the maximum.
+ *
+ * @property {number} maxHealth
+ * @default
+ */
+ maxHealth: 100,
+
/**
* Damages the Game Object. This removes the given amount of health from the `health` property.
*
@@ -35469,6 +35366,29 @@ Phaser.Component.Health.prototype = {
return this;
+ },
+
+ /**
+ * Heal the Game Object. This adds the given amount of health to the `health` property.
+ *
+ * @member
+ * @param {number} amount - The amount to add to the current `health` value. The total will never exceed `maxHealth`.
+ * @return {Phaser.Sprite} This instance.
+ */
+ heal: function(amount) {
+
+ if (this.alive)
+ {
+ this.health += amount;
+
+ if (this.health > this.maxHealth)
+ {
+ this.health = this.maxHealth;
+ }
+ }
+
+ return this;
+
}
};
@@ -35852,6 +35772,12 @@ Phaser.Component.LoadTexture = function () {};
Phaser.Component.LoadTexture.prototype = {
+ /**
+ * @property {boolean} customRender - Does this texture require a custom render call? (as set by BitmapData, Video, etc)
+ * @private
+ */
+ customRender: false,
+
/**
* @property {Phaser.Rectangle} _frame - Internal cache var.
* @private
@@ -35882,6 +35808,7 @@ Phaser.Component.LoadTexture.prototype = {
}
this.key = key;
+ this.customRender = false;
var setFrame = true;
var smoothed = !this.texture.baseTexture.scaleMode;
@@ -35893,6 +35820,8 @@ Phaser.Component.LoadTexture.prototype = {
}
else if (Phaser.BitmapData && key instanceof Phaser.BitmapData)
{
+ this.customRender = true;
+
// This works from a reference, which probably isn't what we need here
this.setTexture(key.texture);
@@ -35903,6 +35832,8 @@ Phaser.Component.LoadTexture.prototype = {
}
else if (Phaser.Video && key instanceof Phaser.Video)
{
+ this.customRender = true;
+
// This works from a reference, which probably isn't what we need here
var valid = key.texture.valid;
this.setTexture(key.texture);
@@ -36137,7 +36068,7 @@ Phaser.Component.Overlap.prototype = {
/**
* The PhysicsBody component manages the Game Objects physics body and physics enabling.
-* It also overrides the x and y properties, ensuring that any manual adjustment of them is reflect in the physics body itself.
+* It also overrides the x and y properties, ensuring that any manual adjustment of them is reflected in the physics body itself.
*
* @class
*/
@@ -36915,12 +36846,28 @@ Phaser.GameObjectFactory.prototype = {
/**
* Create a new BitmapText object.
*
+ * BitmapText objects work by taking a texture file and an XML file that describes the font structure.
+ * It then generates a new Sprite object for each letter of the text, proportionally spaced out and aligned to
+ * match the font structure.
+ *
+ * BitmapText objects are less flexible than Text objects, in that they have less features such as shadows, fills and the ability
+ * to use Web Fonts. However you trade this flexibility for pure rendering speed. You can also create visually compelling BitmapTexts by
+ * processing the font texture in an image editor first, applying fills and any other effects required.
+ *
+ * To create multi-line text insert \r, \n or \r\n escape codes into the text string.
+ *
+ * To create a BitmapText data files you can use:
+ *
+ * BMFont (Windows, free): http://www.angelcode.com/products/bmfont/
+ * Glyph Designer (OS X, commercial): http://www.71squared.com/en/glyphdesigner
+ * Littera (Web-based, free): http://kvazars.com/littera/
+ *
* @method Phaser.GameObjectFactory#bitmapText
- * @param {number} x - The x coordinate of the BitmapText. The coordinate is relative to any parent container this object may be in.
- * @param {number} y - The y coordinate of the BitmapText. The coordinate is relative to any parent container this object may be in.
- * @param {string} font - The key of the BitmapText font as stored in Game.Cache.
- * @param {string} [text] - The actual text that will be rendered. Can be set later via BitmapText.text.
- * @param {number} [size] - The size the font will be rendered in, in pixels.
+ * @param {number} x - X coordinate to display the BitmapText object at.
+ * @param {number} y - Y coordinate to display the BitmapText object at.
+ * @param {string} font - The key of the BitmapText as stored in Phaser.Cache.
+ * @param {string} [text=''] - The text that will be rendered. This can also be set later via BitmapText.text.
+ * @param {number} [size=32] - The size the font will be rendered at in pixels.
* @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group.
* @return {Phaser.BitmapText} The newly created bitmapText object.
*/
@@ -36987,15 +36934,13 @@ Phaser.GameObjectFactory.prototype = {
* This will return a Phaser.Video object which you can pass to a Sprite to be used as a texture.
*
* @method Phaser.GameObjectFactory#video
- * @param {string|null} key - The key of the video file in the Phaser.Cache that the Video object will use. If null a `getUserMedia` video stream will be established instead.
- * @param {boolean} [captureAudio=false] - If the key is null this controls if audio should be captured along with video in the video stream.
- * @param {integer} [width] - If the key is null this width is used to create the video stream. If not provided the video width will be set to the width of the webcam input source.
- * @param {integer} [height] - If the key is null this height is used to create the video stream. If not provided the video height will be set to the height of the webcam input source.
+ * @param {string|null} [key=null] - The key of the video file in the Phaser.Cache that this Video object will play. Set to `null` or leave undefined if you wish to use a webcam as the source. See `startMediaStream` to start webcam capture.
+ * @param {string|null} [url=null] - If the video hasn't been loaded then you can provide a full URL to the file here (make sure to set key to null)
* @return {Phaser.Video} The newly created Video object.
*/
- video: function (key, captureAudio, width, height) {
+ video: function (key, url) {
- return new Phaser.Video(this.game, key, captureAudio, width, height);
+ return new Phaser.Video(this.game, key, url);
},
@@ -37366,17 +37311,34 @@ Phaser.GameObjectCreator.prototype = {
/**
* Create a new BitmapText object.
*
+ * BitmapText objects work by taking a texture file and an XML file that describes the font structure.
+ * It then generates a new Sprite object for each letter of the text, proportionally spaced out and aligned to
+ * match the font structure.
+ *
+ * BitmapText objects are less flexible than Text objects, in that they have less features such as shadows, fills and the ability
+ * to use Web Fonts. However you trade this flexibility for pure rendering speed. You can also create visually compelling BitmapTexts by
+ * processing the font texture in an image editor first, applying fills and any other effects required.
+ *
+ * To create multi-line text insert \r, \n or \r\n escape codes into the text string.
+ *
+ * To create a BitmapText data files you can use:
+ *
+ * BMFont (Windows, free): http://www.angelcode.com/products/bmfont/
+ * Glyph Designer (OS X, commercial): http://www.71squared.com/en/glyphdesigner
+ * Littera (Web-based, free): http://kvazars.com/littera/
+ *
* @method Phaser.GameObjectCreator#bitmapText
- * @param {number} x - X position of the new bitmapText object.
- * @param {number} y - Y position of the new bitmapText object.
- * @param {string} font - The key of the BitmapText font as stored in Game.Cache.
- * @param {string} [text] - The actual text that will be rendered. Can be set later via BitmapText.text.
- * @param {number} [size] - The size the font will be rendered in, in pixels.
+ * @param {number} x - X coordinate to display the BitmapText object at.
+ * @param {number} y - Y coordinate to display the BitmapText object at.
+ * @param {string} font - The key of the BitmapText as stored in Phaser.Cache.
+ * @param {string} [text=''] - The text that will be rendered. This can also be set later via BitmapText.text.
+ * @param {number} [size=32] - The size the font will be rendered at in pixels.
+ * @param {string} [align='left'] - The alignment of multi-line text. Has no effect if there is only one line of text.
* @return {Phaser.BitmapText} The newly created bitmapText object.
*/
- bitmapText: function (x, y, font, text, size) {
+ bitmapText: function (x, y, font, text, size, align) {
- return new Phaser.BitmapText(this.game, x, y, font, text, size);
+ return new Phaser.BitmapText(this.game, x, y, font, text, size, align);
},
@@ -37697,8 +37659,21 @@ Phaser.Image.prototype.preUpdate = function() {
*/
/**
-* A TileSprite is a Sprite that has a repeating texture. The texture can be scrolled and scaled and will automatically wrap on the edges as it does so.
-* Please note that TileSprites, as with normal Sprites, have no input handler or physics bodies by default. Both need enabling.
+* A TileSprite is a Sprite that has a repeating texture. The texture can be scrolled and scaled independently of the TileSprite itself.
+* Textures will automatically wrap and are designed so that you can create game backdrops using seamless textures as a source.
+*
+* TileSprites have no input handler or physics bodies by default, both need enabling in the same way as for normal Sprites.
+*
+* An important note about texture dimensions:
+*
+* When running under Canvas a TileSprite can use any texture size without issue. When running under WebGL the texture should be
+* a power of two in size (i.e. 4, 8, 16, 32, 64, 128, 256, 512, etch pixels width by height). If the texture isn't a power of two
+* it will be rendered to a blank canvas that is the correct size, which means you may have 'blank' areas appearing to the right and
+* bottom of your frame. To avoid this ensure your textures are perfect powers of two.
+*
+* TileSprites support animations in the same way that Sprites do. You add and play animations using the AnimationManager. However
+* if your game is running under WebGL please note that each frame of the animation must be a power of two in size, or it will receive
+* additional padding to enforce it to be so.
*
* @class Phaser.TileSprite
* @constructor
@@ -37726,7 +37701,7 @@ Phaser.Image.prototype.preUpdate = function() {
* @param {number} y - The y coordinate (in world space) to position the TileSprite at.
* @param {number} width - The width of the TileSprite.
* @param {number} height - The height of the TileSprite.
-* @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture.
+* @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a RenderTexture, PIXI.Texture or BitmapData.
* @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index.
*/
Phaser.TileSprite = function (game, x, y, width, height, key, frame) {
@@ -38094,22 +38069,23 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", {
{
index = i * 4;
- x1 = this.verticies[index];
- y1 = this.verticies[index + 1];
- x2 = this.verticies[index + 4];
- y2 = this.verticies[index + 3];
+ x1 = this.vertices[index] * this.scale.x;
+ y1 = this.vertices[index + 1] * this.scale.y;
+ x2 = this.vertices[index + 4] * this.scale.x;
+ y2 = this.vertices[index + 3] * this.scale.y;
- width = Phaser.Math.difference(x1,x2);
- height = Phaser.Math.difference(y1,y2);
+ width = Phaser.Math.difference(x1, x2);
+ height = Phaser.Math.difference(y1, y2);
x1 += this.world.x;
y1 += this.world.y;
- rect = new Phaser.Rectangle(x1,y1, width, height);
+ rect = new Phaser.Rectangle(x1, y1, width, height);
segments.push(rect);
}
return segments;
}
+
});
/**
@@ -38200,7 +38176,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound to be played when this Buttons Over state is activated.
* @property {Phaser.Sound|Phaser.AudioSprite|null} onOverSound
- * @deprecated
* @readonly
*/
this.onOverSound = null;
@@ -38208,7 +38183,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound to be played when this Buttons Out state is activated.
* @property {Phaser.Sound|Phaser.AudioSprite|null} onOutSound
- * @deprecated
* @readonly
*/
this.onOutSound = null;
@@ -38216,7 +38190,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound to be played when this Buttons Down state is activated.
* @property {Phaser.Sound|Phaser.AudioSprite|null} onDownSound
- * @deprecated
* @readonly
*/
this.onDownSound = null;
@@ -38224,7 +38197,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound to be played when this Buttons Up state is activated.
* @property {Phaser.Sound|Phaser.AudioSprite|null} onUpSound
- * @deprecated
* @readonly
*/
this.onUpSound = null;
@@ -38232,7 +38204,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound Marker used in conjunction with the onOverSound.
* @property {string} onOverSoundMarker
- * @deprecated
* @readonly
*/
this.onOverSoundMarker = '';
@@ -38240,7 +38211,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound Marker used in conjunction with the onOutSound.
* @property {string} onOutSoundMarker
- * @deprecated
* @readonly
*/
this.onOutSoundMarker = '';
@@ -38248,7 +38218,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound Marker used in conjunction with the onDownSound.
* @property {string} onDownSoundMarker
- * @deprecated
* @readonly
*/
this.onDownSoundMarker = '';
@@ -38256,7 +38225,6 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
/**
* The Sound Marker used in conjunction with the onUpSound.
* @property {string} onUpSoundMarker
- * @deprecated
* @readonly
*/
this.onUpSoundMarker = '';
@@ -38311,6 +38279,8 @@ Phaser.Button = function (game, x, y, key, callback, callbackContext, overFrame,
this.input.start(0, true);
+ this.input.useHandCursor = true;
+
this.setFrames(overFrame, outFrame, downFrame, upFrame);
if (callback !== null)
@@ -39119,12 +39089,143 @@ Phaser.BitmapData = function (game, key, width, height) {
*/
this._circle = new Phaser.Circle();
+ /**
+ * @property {HTMLCanvasElement} _swapCanvas - A swap canvas.
+ * @private
+ */
+ this._swapCanvas = Phaser.Canvas.create(width, height, '', true);
+
};
Phaser.BitmapData.prototype = {
/**
- * Updates the given objects so that they use this BitmapData as their texture. This will replace any texture they will currently have set.
+ * Shifts the contents of this BitmapData by the distances given.
+ *
+ * The image will wrap-around the edges on all sides.
+ *
+ * @method Phaser.BitmapData#move
+ * @param {integer} x - The amount of pixels to horizontally shift the canvas by. Use a negative value to shift to the left, positive to the right.
+ * @param {integer} y - The amount of pixels to vertically shift the canvas by. Use a negative value to shift up, positive to shift down.
+ * @return {Phaser.BitmapData} This BitmapData object for method chaining.
+ */
+ move: function (x, y) {
+
+ if (x !== 0)
+ {
+ this.moveH(x);
+ }
+
+ if (y !== 0)
+ {
+ this.moveV(y);
+ }
+
+ return this;
+
+ },
+
+ /**
+ * Shifts the contents of this BitmapData horizontally.
+ *
+ * The image will wrap-around the sides.
+ *
+ * @method Phaser.BitmapData#moveH
+ * @param {integer} distance - The amount of pixels to horizontally shift the canvas by. Use a negative value to shift to the left, positive to the right.
+ * @return {Phaser.BitmapData} This BitmapData object for method chaining.
+ */
+ moveH: function (distance) {
+
+ var c = this._swapCanvas;
+ var ctx = c.getContext('2d');
+ var h = this.height;
+ var src = this.canvas;
+
+ ctx.clearRect(0, 0, this.width, this.height);
+
+ if (distance < 0)
+ {
+ distance = Math.abs(distance);
+
+ // Moving to the left
+ var w = this.width - distance;
+
+ // Left-hand chunk
+ ctx.drawImage(src, 0, 0, distance, h, w, 0, distance, h);
+
+ // Rest of the image
+ ctx.drawImage(src, distance, 0, w, h, 0, 0, w, h);
+ }
+ else
+ {
+ // Moving to the right
+ var w = this.width - distance;
+
+ // Right-hand chunk
+ ctx.drawImage(src, w, 0, distance, h, 0, 0, distance, h);
+
+ // Rest of the image
+ ctx.drawImage(src, 0, 0, w, h, distance, 0, w, h);
+ }
+
+ this.clear();
+
+ return this.copy(this._swapCanvas);
+
+ },
+
+ /**
+ * Shifts the contents of this BitmapData vertically.
+ *
+ * The image will wrap-around the sides.
+ *
+ * @method Phaser.BitmapData#moveV
+ * @param {integer} distance - The amount of pixels to vertically shift the canvas by. Use a negative value to shift up, positive to shift down.
+ * @return {Phaser.BitmapData} This BitmapData object for method chaining.
+ */
+ moveV: function (distance) {
+
+ var c = this._swapCanvas;
+ var ctx = c.getContext('2d');
+ var w = this.width;
+ var src = this.canvas;
+
+ ctx.clearRect(0, 0, this.width, this.height);
+
+ if (distance < 0)
+ {
+ distance = Math.abs(distance);
+
+ // Moving up
+ var h = this.height - distance;
+
+ // Top chunk
+ ctx.drawImage(src, 0, 0, w, distance, 0, h, w, distance);
+
+ // Rest of the image
+ ctx.drawImage(src, 0, distance, w, h, 0, 0, w, h);
+ }
+ else
+ {
+ // Moving down
+ var h = this.height - distance;
+
+ // Bottom chunk
+ ctx.drawImage(src, 0, h, w, distance, 0, 0, w, distance);
+
+ // Rest of the image
+ ctx.drawImage(src, 0, 0, w, h, 0, distance, w, h);
+ }
+
+ this.clear();
+
+ return this.copy(this._swapCanvas);
+
+ },
+
+ /**
+ * Updates the given objects so that they use this BitmapData as their texture.
+ * This will replace any texture they will currently have set.
*
* @method Phaser.BitmapData#add
* @param {Phaser.Sprite|Phaser.Sprite[]|Phaser.Image|Phaser.Image[]} object - Either a single Sprite/Image or an Array of Sprites/Images.
@@ -39195,12 +39296,24 @@ Phaser.BitmapData.prototype = {
/**
* Clears the BitmapData context using a clearRect.
*
+ * You can optionally define the area to clear.
+ * If the arguments are left empty it will clear the entire canvas.
+ *
* @method Phaser.BitmapData#clear
+ * @param {number} [x=0] - The x coordinate of the top-left of the area to clear.
+ * @param {number} [y=0] - The y coordinate of the top-left of the area to clear.
+ * @param {number} [width] - The width of the area to clear. If undefined it will use BitmapData.width.
+ * @param {number} [height] - The height of the area to clear. If undefined it will use BitmapData.height.
* @return {Phaser.BitmapData} This BitmapData object for method chaining.
*/
- clear: function () {
+ clear: function (x, y, width, height) {
- this.context.clearRect(0, 0, this.width, this.height);
+ if (typeof x === 'undefined') { x = 0; }
+ if (typeof y === 'undefined') { y = 0; }
+ if (typeof width === 'undefined') { width = this.width; }
+ if (typeof height === 'undefined') { height = this.height; }
+
+ this.context.clearRect(x, y, width, height);
this.dirty = true;
@@ -39230,6 +39343,42 @@ Phaser.BitmapData.prototype = {
},
+ /**
+ * Creates a new Image element by converting this BitmapDatas canvas into a dataURL.
+ *
+ * The image is then stored in the Cache using the key given.
+ *
+ * Finally a PIXI.Texture is created based on the image and returned.
+ *
+ * You can apply the texture to a sprite or any other supporting object by using either the
+ * key or the texture. First call generateTexture:
+ *
+ * `var texture = bitmapdata.generateTexture('ball');`
+ *
+ * Then you can either apply the texture to a sprite:
+ *
+ * `game.add.sprite(0, 0, texture);`
+ *
+ * or by using the string based key:
+ *
+ * `game.add.sprite(0, 0, 'ball');`
+ *
+ * @method Phaser.BitmapData#generateTexture
+ * @param {string} key - The key which will be used to store the image in the Cache.
+ * @return {PIXI.Texture} The newly generated texture.
+ */
+ generateTexture: function (key) {
+
+ var image = new Image();
+
+ image.src = this.canvas.toDataURL("image/png");
+
+ this.game.cache.addImage(key, '', image);
+
+ return new PIXI.Texture(PIXI.BaseTextureCache[key]);
+
+ },
+
/**
* Resizes the BitmapData. This changes the size of the underlying canvas and refreshes the buffer.
*
@@ -39246,6 +39395,9 @@ Phaser.BitmapData.prototype = {
this.canvas.width = width;
this.canvas.height = height;
+ this._swapCanvas.width = width;
+ this._swapCanvas.height = height;
+
this.baseTexture.width = width;
this.baseTexture.height = height;
@@ -41174,44 +41326,36 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear)
* See {@link http://www.jordanm.co.uk/tinytype this compatibility table} for the available default fonts across mobile browsers.
*
* @class Phaser.Text
-* @extends PIXI.Text
-* @extends Phaser.Component.Core
-* @extends Phaser.Component.Angle
-* @extends Phaser.Component.AutoCull
-* @extends Phaser.Component.Bounds
-* @extends Phaser.Component.BringToTop
-* @extends Phaser.Component.Destroy
-* @extends Phaser.Component.FixedToCamera
-* @extends Phaser.Component.InputEnabled
-* @extends Phaser.Component.InWorld
-* @extends Phaser.Component.LifeSpan
-* @extends Phaser.Component.Overlap
-* @extends Phaser.Component.PhysicsBody
-* @extends Phaser.Component.Reset
-* @extends Phaser.Component.Smoothed
+* @extends Phaser.Sprite
* @constructor
* @param {Phaser.Game} game - Current game instance.
* @param {number} x - X position of the new text object.
* @param {number} y - Y position of the new text object.
* @param {string} text - The actual text that will be written.
-* @param {object} style - The style object containing style attributes like font, font size, etc.
+* @param {object} [style] - The style properties to be set on the Text.
+* @param {string} [style.font='bold 20pt Arial'] - The style and size of the font.
+* @param {string} [style.fontStyle=(from font)] - The style of the font (eg. 'italic'): overrides the value in `style.font`.
+* @param {string} [style.fontVariant=(from font)] - The variant of the font (eg. 'small-caps'): overrides the value in `style.font`.
+* @param {string} [style.fontWeight=(from font)] - The weight of the font (eg. 'bold'): overrides the value in `style.font`.
+* @param {string|number} [style.fontSize=(from font)] - The size of the font (eg. 32 or '32px'): overrides the value in `style.font`.
+* @param {string} [style.backgroundColor=null] - A canvas fillstyle that will be used as the background for the whole Text object. Set to `null` to disable.
+* @param {string} [style.fill='black'] - A canvas fillstyle that will be used on the text eg 'red', '#00FF00'.
+* @param {string} [style.align='left'] - Horizontal alignment of each line in multiline text. Can be: 'left', 'center' or 'right'. Does not affect single lines of text (see `textBounds` and `boundsAlignH` for that).
+* @param {string} [style.boundsAlignH='left'] - Horizontal alignment of the text within the `textBounds`. Can be: 'left', 'center' or 'right'.
+* @param {string} [style.boundsAlignV='top'] - Vertical alignment of the text within the `textBounds`. Can be: 'top', 'middle' or 'bottom'.
+* @param {string} [style.stroke='black'] - A canvas stroke style that will be used on the text stroke eg 'blue', '#FCFF00'.
+* @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke).
+* @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used.
+* @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap.
+* @param {number} [style.tab=0] - The size (in pixels) of a tab stop, for when text includes tab characters. 0 disables.
*/
Phaser.Text = function (game, x, y, text, style) {
x = x || 0;
y = y || 0;
- text = text || ' ';
+ text = text.toString() || '';
style = style || {};
- if (text.length === 0)
- {
- text = ' ';
- }
- else
- {
- text = text.toString();
- }
-
/**
* @property {number} type - The const type of this object.
* @default
@@ -41231,6 +41375,48 @@ Phaser.Text = function (game, x, y, text, style) {
*/
this.padding = new Phaser.Point();
+ /**
+ * The textBounds property allows you to specify a rectangular region upon which text alignment is based.
+ * See `Text.setTextBounds` for more details.
+ * @property {Phaser.Rectangle} textBounds
+ * @readOnly
+ */
+ this.textBounds = null;
+
+ /**
+ * @property {HTMLCanvasElement} canvas - The canvas element that the text is rendered.
+ */
+ this.canvas = document.createElement('canvas');
+
+ /**
+ * @property {HTMLCanvasElement} context - The context of the canvas element that the text is rendered to.
+ */
+ this.context = this.canvas.getContext('2d');
+
+ /**
+ * @property {array} colors - An array of the color values as specified by {@link Phaser.Text#addColor addColor}.
+ */
+ this.colors = [];
+
+ /**
+ * @property {array} strokeColors - An array of the stroke color values as specified by {@link Phaser.Text#addStrokeColor addStrokeColor}.
+ */
+ this.strokeColors = [];
+
+ /**
+ * Should the linePositionX and Y values be automatically rounded before rendering the Text?
+ * You may wish to enable this if you want to remove the effect of sub-pixel aliasing from text.
+ * @property {boolean} autoRound
+ * @default
+ */
+ this.autoRound = false;
+
+ /**
+ * @property {number} _res - Internal canvas resolution var.
+ * @private
+ */
+ this._res = game.renderer.resolution;
+
/**
* @property {string} _text - Internal cache var.
* @private
@@ -41256,47 +41442,31 @@ Phaser.Text = function (game, x, y, text, style) {
this._charCount = 0;
/**
- * @property {array} colors - An array of the color values as specified by {@link Phaser.Text#addColor addColor}.
+ * @property {number} _width - Internal width var.
+ * @private
*/
- this.colors = [];
+ this._width = 0;
+
+ /**
+ * @property {number} _height - Internal height var.
+ * @private
+ */
+ this._height = 0;
+
+ Phaser.Sprite.call(this, game, x, y, PIXI.Texture.fromCanvas(this.canvas));
this.setStyle(style);
- PIXI.Text.call(this, text, this.style);
-
- Phaser.Component.Core.init.call(this, game, x, y, '', null);
-
- if (text !== ' ')
+ if (text !== '')
{
this.updateText();
}
};
-Phaser.Text.prototype = Object.create(PIXI.Text.prototype);
+Phaser.Text.prototype = Object.create(Phaser.Sprite.prototype);
Phaser.Text.prototype.constructor = Phaser.Text;
-Phaser.Component.Core.install.call(Phaser.Text.prototype, [
- 'Angle',
- 'AutoCull',
- 'Bounds',
- 'BringToTop',
- 'Destroy',
- 'FixedToCamera',
- 'InputEnabled',
- 'InWorld',
- 'LifeSpan',
- 'Overlap',
- 'PhysicsBody',
- 'Reset',
- 'Smoothed'
-]);
-
-Phaser.Text.prototype.preUpdatePhysics = Phaser.Component.PhysicsBody.preUpdate;
-Phaser.Text.prototype.preUpdateLifeSpan = Phaser.Component.LifeSpan.preUpdate;
-Phaser.Text.prototype.preUpdateInWorld = Phaser.Component.InWorld.preUpdate;
-Phaser.Text.prototype.preUpdateCore = Phaser.Component.Core.preUpdate;
-
/**
* Automatically called by World.preUpdate.
*
@@ -41361,6 +41531,7 @@ Phaser.Text.prototype.destroy = function (destroyChildren) {
* @param {number} [blur=0] - The shadowBlur value. Make the shadow softer by applying a Gaussian blur to it. A number from 0 (no blur) up to approx. 10 (depending on scene).
* @param {boolean} [shadowStroke=true] - Apply the drop shadow to the Text stroke (if set).
* @param {boolean} [shadowFill=true] - Apply the drop shadow to the Text fill (if set).
+* @return {Phaser.Text} This Text instance.
*/
Phaser.Text.prototype.setShadow = function (x, y, color, blur, shadowStroke, shadowFill) {
@@ -41379,6 +41550,8 @@ Phaser.Text.prototype.setShadow = function (x, y, color, blur, shadowStroke, sha
this.style.shadowFill = shadowFill;
this.dirty = true;
+ return this;
+
};
/**
@@ -41393,11 +41566,15 @@ Phaser.Text.prototype.setShadow = function (x, y, color, blur, shadowStroke, sha
* @param {string|number} [style.fontSize=(from font)] - The size of the font (eg. 32 or '32px'): overrides the value in `style.font`.
* @param {string} [style.backgroundColor=null] - A canvas fillstyle that will be used as the background for the whole Text object. Set to `null` to disable.
* @param {string} [style.fill='black'] - A canvas fillstyle that will be used on the text eg 'red', '#00FF00'.
-* @param {string} [style.align='left'] - Alignment for multiline text ('left', 'center' or 'right'), does not affect single line text.
+* @param {string} [style.align='left'] - Horizontal alignment of each line in multiline text. Can be: 'left', 'center' or 'right'. Does not affect single lines of text (see `textBounds` and `boundsAlignH` for that).
+* @param {string} [style.boundsAlignH='left'] - Horizontal alignment of the text within the `textBounds`. Can be: 'left', 'center' or 'right'.
+* @param {string} [style.boundsAlignV='top'] - Vertical alignment of the text within the `textBounds`. Can be: 'top', 'middle' or 'bottom'.
* @param {string} [style.stroke='black'] - A canvas stroke style that will be used on the text stroke eg 'blue', '#FCFF00'.
* @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke).
* @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used.
* @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap.
+* @param {number|array} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop.
+* @return {Phaser.Text} This Text instance.
*/
Phaser.Text.prototype.setStyle = function (style) {
@@ -41406,6 +41583,8 @@ Phaser.Text.prototype.setStyle = function (style) {
style.backgroundColor = style.backgroundColor || null;
style.fill = style.fill || 'black';
style.align = style.align || 'left';
+ style.boundsAlignH = style.boundsAlignH || 'left';
+ style.boundsAlignV = style.boundsAlignV || 'top';
style.stroke = style.stroke || 'black'; //provide a default, see: https://github.com/GoodBoyDigital/pixi.js/issues/136
style.strokeThickness = style.strokeThickness || 0;
style.wordWrap = style.wordWrap || false;
@@ -41414,6 +41593,7 @@ Phaser.Text.prototype.setStyle = function (style) {
style.shadowOffsetY = style.shadowOffsetY || 0;
style.shadowColor = style.shadowColor || 'rgba(0,0,0,0)';
style.shadowBlur = style.shadowBlur || 0;
+ style.tabs = style.tabs || 0;
var components = this.fontToComponents(style.font);
@@ -41448,6 +41628,8 @@ Phaser.Text.prototype.setStyle = function (style) {
this.style = style;
this.dirty = true;
+ return this;
+
};
/**
@@ -41458,7 +41640,7 @@ Phaser.Text.prototype.setStyle = function (style) {
*/
Phaser.Text.prototype.updateText = function () {
- this.texture.baseTexture.resolution = this.resolution;
+ this.texture.baseTexture.resolution = this._res;
this.context.font = this.style.font;
@@ -41473,20 +41655,61 @@ Phaser.Text.prototype.updateText = function () {
var lines = outputText.split(/(?:\r\n|\r|\n)/);
// Calculate text width
+ var tabs = this.style.tabs;
var lineWidths = [];
var maxLineWidth = 0;
var fontProperties = this.determineFontProperties(this.style.font);
for (var i = 0; i < lines.length; i++)
{
- var lineWidth = this.context.measureText(lines[i]).width + this.padding.x;
- lineWidths[i] = lineWidth;
- maxLineWidth = Math.max(maxLineWidth, lineWidth);
+ if (tabs === 0)
+ {
+ // Simple layout (no tabs)
+ var lineWidth = this.context.measureText(lines[i]).width + this.style.strokeThickness + this.padding.x;
+ }
+ else
+ {
+ // Complex layout (tabs)
+ var line = lines[i].split(/(?:\t)/);
+ var lineWidth = this.padding.x + this.style.strokeThickness;
+
+ if (Array.isArray(tabs))
+ {
+ var tab = 0;
+
+ for (var c = 0; c < line.length; c++)
+ {
+ var section = Math.ceil(this.context.measureText(line[c]).width);
+
+ if (c > 0)
+ {
+ tab += tabs[c - 1];
+ }
+
+ lineWidth = tab + section;
+ }
+ }
+ else
+ {
+ for (var c = 0; c < line.length; c++)
+ {
+ // How far to the next tab?
+ lineWidth += Math.ceil(this.context.measureText(line[c]).width);
+
+ var diff = this.game.math.snapToCeil(lineWidth, tabs) - lineWidth;
+
+ lineWidth += diff;
+ }
+ }
+ }
+
+ lineWidths[i] = Math.ceil(lineWidth);
+ maxLineWidth = Math.max(maxLineWidth, lineWidths[i]);
}
var width = maxLineWidth + this.style.strokeThickness;
- this.canvas.width = width * this.resolution;
+ this.canvas.width = width * this._res;
// Calculate text height
var lineHeight = fontProperties.fontSize + this.style.strokeThickness + this.padding.y;
@@ -41505,9 +41728,9 @@ Phaser.Text.prototype.updateText = function () {
height += diff;
}
- this.canvas.height = height * this.resolution;
+ this.canvas.height = height * this._res;
- this.context.scale(this.resolution, this.resolution);
+ this.context.scale(this._res, this._res);
if (navigator.isCocoonJS)
{
@@ -41537,6 +41760,8 @@ Phaser.Text.prototype.updateText = function () {
// Draw text line by line
for (i = 0; i < lines.length; i++)
{
+ // Split the line by
+
linePositionX = this.style.strokeThickness / 2;
linePositionY = (this.style.strokeThickness / 2 + i * lineHeight) + fontProperties.ascent;
@@ -41554,7 +41779,13 @@ Phaser.Text.prototype.updateText = function () {
linePositionX += (maxLineWidth - lineWidths[i]) / 2;
}
- if (this.colors.length > 0)
+ if (this.autoRound)
+ {
+ linePositionX = Math.round(linePositionX);
+ linePositionY = Math.round(linePositionY);
+ }
+
+ if (this.colors.length > 0 || this.strokeColors.length > 0)
{
this.updateLine(lines[i], linePositionX, linePositionY);
}
@@ -41563,13 +41794,29 @@ Phaser.Text.prototype.updateText = function () {
if (this.style.stroke && this.style.strokeThickness)
{
this.updateShadow(this.style.shadowStroke);
- this.context.strokeText(lines[i], linePositionX, linePositionY);
+
+ if (tabs === 0)
+ {
+ this.context.strokeText(lines[i], linePositionX, linePositionY);
+ }
+ else
+ {
+ this.renderTabLine(lines[i], linePositionX, linePositionY, false);
+ }
}
if (this.style.fill)
{
this.updateShadow(this.style.shadowFill);
- this.context.fillText(lines[i], linePositionX, linePositionY);
+
+ if (tabs === 0)
+ {
+ this.context.fillText(lines[i], linePositionX, linePositionY);
+ }
+ else
+ {
+ this.renderTabLine(lines[i], linePositionX, linePositionY, true);
+ }
}
}
}
@@ -41578,6 +41825,70 @@ Phaser.Text.prototype.updateText = function () {
};
+/**
+* Renders a line of text that contains tab characters if Text.tab > 0.
+* Called automatically by updateText.
+*
+* @method Phaser.Text#renderTabLine
+* @private
+* @param {string} line - The line of text to render.
+* @param {integer} x - The x position to start rendering from.
+* @param {integer} y - The y position to start rendering from.
+* @param {boolean} fill - If true uses fillText, if false uses strokeText.
+*/
+Phaser.Text.prototype.renderTabLine = function (line, x, y, fill) {
+
+ var text = line.split(/(?:\t)/);
+ var tabs = this.style.tabs;
+ var snap = 0;
+
+ if (Array.isArray(tabs))
+ {
+ var tab = 0;
+
+ for (var c = 0; c < text.length; c++)
+ {
+ if (c > 0)
+ {
+ tab += tabs[c - 1];
+ }
+
+ snap = x + tab;
+
+ if (fill)
+ {
+ this.context.fillText(text[c], snap, y);
+ }
+ else
+ {
+ this.context.strokeText(text[c], snap, y);
+ }
+ }
+ }
+ else
+ {
+ for (var c = 0; c < text.length; c++)
+ {
+ var section = Math.ceil(this.context.measureText(text[c]).width);
+
+ // How far to the next tab?
+ snap = this.game.math.snapToCeil(x, tabs);
+
+ if (fill)
+ {
+ this.context.fillText(text[c], snap, y);
+ }
+ else
+ {
+ this.context.strokeText(text[c], snap, y);
+ }
+
+ x = snap + section;
+ }
+ }
+
+};
+
/**
* Sets the Shadow on the Text.context based on the Style settings, or disables it if not enabled.
* This is called automatically by Text.updateText.
@@ -41605,7 +41916,7 @@ Phaser.Text.prototype.updateShadow = function (state) {
};
/**
-* Updates a line of text.
+* Updates a line of text, applying fill and stroke per-character colors if applicable.
*
* @method Phaser.Text#updateLine
* @private
@@ -41616,20 +41927,24 @@ Phaser.Text.prototype.updateLine = function (line, x, y) {
{
var letter = line[i];
- if (this.colors[this._charCount])
- {
- this.context.fillStyle = this.colors[this._charCount];
- this.context.strokeStyle = this.colors[this._charCount];
- }
-
if (this.style.stroke && this.style.strokeThickness)
{
+ if (this.strokeColors[this._charCount])
+ {
+ this.context.strokeStyle = this.strokeColors[this._charCount];
+ }
+
this.updateShadow(this.style.shadowStroke);
this.context.strokeText(letter, x, y);
}
if (this.style.fill)
{
+ if (this.colors[this._charCount])
+ {
+ this.context.fillStyle = this.colors[this._charCount];
+ }
+
this.updateShadow(this.style.shadowFill);
this.context.fillText(letter, x, y);
}
@@ -41642,15 +41957,19 @@ Phaser.Text.prototype.updateLine = function (line, x, y) {
};
/**
-* Clears any previously set color stops.
+* Clears any text fill or stroke colors that were set by `addColor` or `addStrokeColor`.
*
* @method Phaser.Text#clearColors
+* @return {Phaser.Text} This Text instance.
*/
Phaser.Text.prototype.clearColors = function () {
this.colors = [];
+ this.strokeColors = [];
this.dirty = true;
+ return this;
+
};
/**
@@ -41661,15 +41980,46 @@ Phaser.Text.prototype.clearColors = function () {
* Once set the color remains in use until either another color or the end of the string is encountered.
* For example if the Text was `Photon Storm` and you did `Text.addColor('#ffff00', 6)` it would color in the word `Storm` in yellow.
*
+* If you wish to change the stroke color see addStrokeColor instead.
+*
* @method Phaser.Text#addColor
* @param {string} color - A canvas fillstyle that will be used on the text eg `red`, `#00FF00`, `rgba()`.
* @param {number} position - The index of the character in the string to start applying this color value from.
+* @return {Phaser.Text} This Text instance.
*/
Phaser.Text.prototype.addColor = function (color, position) {
this.colors[position] = color;
this.dirty = true;
+ return this;
+
+};
+
+/**
+* Set specific stroke colors for certain characters within the Text.
+*
+* It works by taking a color value, which is a typical HTML string such as `#ff0000` or `rgb(255,0,0)` and a position.
+* The position value is the index of the character in the Text string to start applying this color to.
+* Once set the color remains in use until either another color or the end of the string is encountered.
+* For example if the Text was `Photon Storm` and you did `Text.addColor('#ffff00', 6)` it would color in the word `Storm` in yellow.
+*
+* This has no effect if stroke is disabled or has a thickness of 0.
+*
+* If you wish to change the text fill color see addColor instead.
+*
+* @method Phaser.Text#addStrokeColor
+* @param {string} color - A canvas fillstyle that will be used on the text stroke eg `red`, `#00FF00`, `rgba()`.
+* @param {number} position - The index of the character in the string to start applying this color value from.
+* @return {Phaser.Text} This Text instance.
+*/
+Phaser.Text.prototype.addStrokeColor = function (color, position) {
+
+ this.strokeColors[position] = color;
+ this.dirty = true;
+
+ return this;
+
};
/**
@@ -41823,7 +42173,387 @@ Phaser.Text.prototype.componentsToFont = function (components) {
};
/**
-* The text string to be displayed by this Text object, taking into account the style settings.
+ * The text to be displayed by this Text object.
+ * Use a \n to insert a carriage return and split the text.
+ * The text will be rendered with any style currently set.
+ *
+ * @method Phaser.Text#setText
+ * @param {string} [text] - The text to be displayed. Set to an empty string to clear text that is already present.
+ * @return {Phaser.Text} This Text instance.
+ */
+Phaser.Text.prototype.setText = function (text) {
+
+ this.text = text.toString() || '';
+ this.dirty = true;
+
+ return this;
+
+};
+
+/**
+ * Converts the given array into a tab delimited string and then updates this Text object.
+ * This is mostly used when you want to display external data using tab stops.
+ *
+ * The array can be either single or multi dimensional depending on the result you need:
+ *
+ * `[ 'a', 'b', 'c' ]` would convert in to `"a\tb\tc"`.
+ *
+ * Where as:
+ *
+ * `[
+ * [ 'a', 'b', 'c' ],
+ * [ 'd', 'e', 'f']
+ * ]`
+ *
+ * would convert in to: `"a\tb\tc\nd\te\tf"`
+ *
+ * @method Phaser.Text#parseList
+ * @param {array} list - The array of data to convert into a string.
+ * @return {Phaser.Text} This Text instance.
+ */
+Phaser.Text.prototype.parseList = function (list) {
+
+ if (!Array.isArray(list))
+ {
+ return this;
+ }
+ else
+ {
+ var s = "";
+
+ for (var i = 0; i < list.length; i++)
+ {
+ if (Array.isArray(list[i]))
+ {
+ s += list[i].join("\t");
+
+ if (i < list.length - 1)
+ {
+ s += "\n";
+ }
+ }
+ else
+ {
+ s += list[i];
+
+ if (i < list.length - 1)
+ {
+ s += "\t";
+ }
+ }
+ }
+ }
+
+ this.text = s;
+ this.dirty = true;
+
+ return this;
+
+};
+
+/**
+ * The Text Bounds is a rectangular region that you control the dimensions of into which the Text object itself is positioned,
+ * regardless of the number of lines in the text, the font size or any other attribute.
+ *
+ * Alignment is controlled via the properties `boundsAlignH` and `boundsAlignV` within the Text.style object, or can be directly
+ * set through the setters `Text.boundsAlignH` and `Text.boundsAlignV`. Bounds alignment is independent of text alignment.
+ *
+ * For example: If your game is 800x600 in size and you set the text bounds to be 0,0,800,600 then by setting boundsAlignH to
+ * 'center' and boundsAlignV to 'bottom' the text will render in the center and at the bottom of your game window, regardless of
+ * how many lines of text there may be. Even if you adjust the text content or change the style it will remain at the bottom center
+ * of the text bounds.
+ *
+ * This is especially powerful when you need to align text against specific coordinates in your game, but the actual text dimensions
+ * may vary based on font (say for multi-lingual games).
+ *
+ * If `Text.wordWrapWidth` is greater than the width of the text bounds it is clamped to match the bounds width.
+ *
+ * Call this method with no arguments given to reset an existing textBounds.
+ *
+ * It works by calculating the final position based on the Text.canvas size, which is modified as the text is updated. Some fonts
+ * have additional padding around them which you can mitigate by tweaking the Text.padding property. It then adjusts the `pivot`
+ * property based on the given bounds and canvas size. This means if you need to set the pivot property directly in your game then
+ * you either cannot use `setTextBounds` or you must place the Text object inside another DisplayObject on which you set the pivot.
+ *
+ * @method Phaser.Text#setTextBounds
+ * @param {number} [x] - The x coordinate of the Text Bounds region.
+ * @param {number} [y] - The y coordinate of the Text Bounds region.
+ * @param {number} [width] - The width of the Text Bounds region.
+ * @param {number} [height] - The height of the Text Bounds region.
+ * @return {Phaser.Text} This Text instance.
+ */
+Phaser.Text.prototype.setTextBounds = function (x, y, width, height) {
+
+ if (typeof x === 'undefined')
+ {
+ this.textBounds = null;
+ }
+ else
+ {
+ if (!this.textBounds)
+ {
+ this.textBounds = new Phaser.Rectangle(x, y, width, height);
+ }
+ else
+ {
+ this.textBounds.setTo(x, y, width, height);
+ }
+
+ if (this.style.wordWrapWidth > width)
+ {
+ this.style.wordWrapWidth = width;
+ }
+ }
+
+ this.updateTexture();
+
+ return this;
+
+};
+
+/**
+ * Updates the texture based on the canvas dimensions.
+ *
+ * @method Phaser.Text#updateTexture
+ * @private
+ */
+Phaser.Text.prototype.updateTexture = function () {
+
+ var base = this.texture.baseTexture;
+ var crop = this.texture.crop;
+ var frame = this.texture.frame;
+
+ var w = this.canvas.width;
+ var h = this.canvas.height;
+
+ base.width = w;
+ base.height = h;
+
+ crop.width = w;
+ crop.height = h;
+
+ frame.width = w;
+ frame.height = h;
+
+ this.texture.width = w;
+ this.texture.height = h;
+
+ this._width = w;
+ this._height = h;
+
+ if (this.textBounds)
+ {
+ var x = this.textBounds.x;
+ var y = this.textBounds.y;
+
+ // Align the canvas based on the bounds
+ if (this.style.boundsAlignH === 'right')
+ {
+ x = this.textBounds.width - this.canvas.width;
+ }
+ else if (this.style.boundsAlignH === 'center')
+ {
+ x = this.textBounds.halfWidth - (this.canvas.width / 2);
+ }
+
+ if (this.style.boundsAlignV === 'bottom')
+ {
+ y = this.textBounds.height - this.canvas.height;
+ }
+ else if (this.style.boundsAlignV === 'middle')
+ {
+ y = this.textBounds.halfHeight - (this.canvas.height / 2);
+ }
+
+ this.pivot.x = -x;
+ this.pivot.y = -y;
+ }
+
+ this.texture.baseTexture.dirty();
+
+};
+
+/**
+* Renders the object using the WebGL renderer
+*
+* @method Phaser.Text#_renderWebGL
+* @private
+* @param {RenderSession} renderSession - The Render Session to render the Text on.
+*/
+Phaser.Text.prototype._renderWebGL = function (renderSession) {
+
+ if (this.dirty)
+ {
+ this.updateText();
+ this.dirty = false;
+ }
+
+ PIXI.Sprite.prototype._renderWebGL.call(this, renderSession);
+
+};
+
+/**
+* Renders the object using the Canvas renderer.
+*
+* @method Phaser.Text#_renderCanvas
+* @private
+* @param {RenderSession} renderSession - The Render Session to render the Text on.
+*/
+Phaser.Text.prototype._renderCanvas = function (renderSession) {
+
+ if (this.dirty)
+ {
+ this.updateText();
+ this.dirty = false;
+ }
+
+ PIXI.Sprite.prototype._renderCanvas.call(this, renderSession);
+
+};
+
+/**
+* Calculates the ascent, descent and fontSize of a given font style.
+*
+* @method Phaser.Text#determineFontProperties
+* @private
+* @param {object} fontStyle
+*/
+Phaser.Text.prototype.determineFontProperties = function (fontStyle) {
+
+ var properties = Phaser.Text.fontPropertiesCache[fontStyle];
+
+ if (!properties)
+ {
+ properties = {};
+
+ var canvas = Phaser.Text.fontPropertiesCanvas;
+ var context = Phaser.Text.fontPropertiesContext;
+
+ context.font = fontStyle;
+
+ var width = Math.ceil(context.measureText('|MÉq').width);
+ var baseline = Math.ceil(context.measureText('|MÉq').width);
+ var height = 2 * baseline;
+
+ baseline = baseline * 1.4 | 0;
+
+ canvas.width = width;
+ canvas.height = height;
+
+ context.fillStyle = '#f00';
+ context.fillRect(0, 0, width, height);
+
+ context.font = fontStyle;
+
+ context.textBaseline = 'alphabetic';
+ context.fillStyle = '#000';
+ context.fillText('|MÉq', 0, baseline);
+
+ if (!context.getImageData(0, 0, width, height))
+ {
+ properties.ascent = baseline;
+ properties.descent = baseline + 6;
+ properties.fontSize = properties.ascent + properties.descent;
+
+ Phaser.Text.fontPropertiesCache[fontStyle] = properties;
+
+ return properties;
+ }
+
+ var imagedata = context.getImageData(0, 0, width, height).data;
+ var pixels = imagedata.length;
+ var line = width * 4;
+
+ var i, j;
+
+ var idx = 0;
+ var stop = false;
+
+ // ascent. scan from top to bottom until we find a non red pixel
+ for (i = 0; i < baseline; i++)
+ {
+ for (j = 0; j < line; j += 4)
+ {
+ if (imagedata[idx + j] !== 255)
+ {
+ stop = true;
+ break;
+ }
+ }
+
+ if (!stop)
+ {
+ idx += line;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ properties.ascent = baseline - i;
+
+ idx = pixels - line;
+ stop = false;
+
+ // descent. scan from bottom to top until we find a non red pixel
+ for (i = height; i > baseline; i--)
+ {
+ for (j = 0; j < line; j += 4)
+ {
+ if (imagedata[idx + j] !== 255)
+ {
+ stop = true;
+ break;
+ }
+ }
+
+ if (!stop)
+ {
+ idx -= line;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ properties.descent = i - baseline;
+ //TODO might need a tweak. kind of a temp fix!
+ properties.descent += 6;
+ properties.fontSize = properties.ascent + properties.descent;
+
+ Phaser.Text.fontPropertiesCache[fontStyle] = properties;
+ }
+
+ return properties;
+
+};
+
+/**
+* Returns the bounds of the Text as a rectangle.
+* The bounds calculation takes the worldTransform into account.
+*
+* @method Phaser.Text#getBounds
+* @param {Phaser.Matrix} matrix - The transformation matrix of the Text.
+* @return {Phaser.Rectangle} The framing rectangle
+*/
+Phaser.Text.prototype.getBounds = function (matrix) {
+
+ if (this.dirty)
+ {
+ this.updateText();
+ this.dirty = false;
+ }
+
+ return PIXI.Sprite.prototype.getBounds.call(this, matrix);
+
+};
+
+/**
+* The text to be displayed by this Text object.
+* Use a \n to insert a carriage return and split the text.
+* The text will be rendered with any style currently set.
*
* @name Phaser.Text#text
* @property {string} text
@@ -41838,7 +42568,7 @@ Object.defineProperty(Phaser.Text.prototype, 'text', {
if (value !== this._text)
{
- this._text = value.toString() || ' ';
+ this._text = value.toString() || '';
this.dirty = true;
if (this.parent)
@@ -42040,8 +42770,11 @@ Object.defineProperty(Phaser.Text.prototype, 'fill', {
});
/**
+* Controls the horizontal alignment for multiline text.
+* Can be: 'left', 'center' or 'right'.
+* Does not affect single lines of text. For that please see `setTextBounds`.
* @name Phaser.Text#align
-* @property {string} align - Alignment for multiline text ('left', 'center' or 'right'), does not affect single line text.
+* @property {string} align
*/
Object.defineProperty(Phaser.Text.prototype, 'align', {
@@ -42061,6 +42794,100 @@ Object.defineProperty(Phaser.Text.prototype, 'align', {
});
+/**
+* The resolution of the canvas the text is rendered to.
+* This defaults to match the resolution of the renderer, but can be changed on a per Text object basis.
+* @name Phaser.Text#resolution
+* @property {integer} resolution
+*/
+Object.defineProperty(Phaser.Text.prototype, 'resolution', {
+
+ get: function() {
+ return this._res;
+ },
+
+ set: function(value) {
+
+ if (value !== this._res)
+ {
+ this._res = value;
+ this.dirty = true;
+ }
+
+ }
+
+});
+
+/**
+* x
+*
+* @name Phaser.Text#tab
+* @property {integer|array} tabs
+*/
+Object.defineProperty(Phaser.Text.prototype, 'tabs', {
+
+ get: function() {
+ return this.style.tabs;
+ },
+
+ set: function(value) {
+
+ if (value !== this.style.tabs)
+ {
+ this.style.tabs = value;
+ this.dirty = true;
+ }
+
+ }
+
+});
+
+/**
+* Horizontal alignment of the text within the `textBounds`. Can be: 'left', 'center' or 'right'.
+* @name Phaser.Text#boundsAlignH
+* @property {string} boundsAlignH
+*/
+Object.defineProperty(Phaser.Text.prototype, 'boundsAlignH', {
+
+ get: function() {
+ return this.style.boundsAlignH;
+ },
+
+ set: function(value) {
+
+ if (value !== this.style.boundsAlignH)
+ {
+ this.style.boundsAlignH = value;
+ this.dirty = true;
+ }
+
+ }
+
+});
+
+/**
+* Vertical alignment of the text within the `textBounds`. Can be: 'top', 'middle' or 'bottom'.
+* @name Phaser.Text#boundsAlignV
+* @property {string} boundsAlignV
+*/
+Object.defineProperty(Phaser.Text.prototype, 'boundsAlignV', {
+
+ get: function() {
+ return this.style.boundsAlignV;
+ },
+
+ set: function(value) {
+
+ if (value !== this.style.boundsAlignV)
+ {
+ this.style.boundsAlignV = value;
+ this.dirty = true;
+ }
+
+ }
+
+});
+
/**
* @name Phaser.Text#stroke
* @property {string} stroke - A canvas fillstyle that will be used on the text stroke eg 'blue', '#FCFF00'.
@@ -42308,6 +43135,61 @@ Object.defineProperty(Phaser.Text.prototype, 'shadowFill', {
});
+/**
+* @name Phaser.Text#width
+* @property {number} width - The width of the Text. Setting this will modify the scale to achieve the value requested.
+*/
+Object.defineProperty(Phaser.Text.prototype, 'width', {
+
+ get: function() {
+
+ if (this.dirty)
+ {
+ this.updateText();
+ this.dirty = false;
+ }
+
+ return this.scale.x * this.texture.frame.width;
+ },
+
+ set: function(value) {
+
+ this.scale.x = value / this.texture.frame.width;
+ this._width = value;
+ }
+
+});
+
+/**
+* @name Phaser.Text#height
+* @property {number} height - The height of the Text. Setting this will modify the scale to achieve the value requested.
+*/
+Object.defineProperty(Phaser.Text.prototype, 'height', {
+
+ get: function() {
+
+ if (this.dirty)
+ {
+ this.updateText();
+ this.dirty = false;
+ }
+
+ return this.scale.y * this.texture.frame.height;
+ },
+
+ set: function(value) {
+
+ this.scale.y = value / this.texture.frame.height;
+ this._height = value;
+ }
+
+});
+
+Phaser.Text.fontPropertiesCache = {};
+
+Phaser.Text.fontPropertiesCanvas = document.createElement('canvas');
+Phaser.Text.fontPropertiesContext = Phaser.Text.fontPropertiesCanvas.getContext('2d');
+
/**
* @author Richard Davey
* @copyright 2015 Photon Storm Ltd.
@@ -42315,23 +43197,30 @@ Object.defineProperty(Phaser.Text.prototype, 'shadowFill', {
*/
/**
-* BitmapText objects work by taking a texture file and an XML file that describes the font structure.
+* BitmapText objects work by taking a texture file and an XML or JSON file that describes the font structure.
* It then generates a new Sprite object for each letter of the text, proportionally spaced out and aligned to
* match the font structure.
*
* BitmapText objects are less flexible than Text objects, in that they have less features such as shadows, fills and the ability
-* to use Web Fonts, however you trade this flexibility for rendering speed. You can also create visually compelling BitmapTexts by
+* to use Web Fonts, however you trade this flexibility for rendering speed. You can also create visually compelling BitmapTexts by
* processing the font texture in an image editor, applying fills and any other effects required.
*
-* To create a BitmapText you can use:
+* To create multi-line text insert \r, \n or \r\n escape codes into the text string.
+*
+* If you are having performance issues due to the volume of sprites being rendered, and do not require the text to be constantly
+* updating, you can use BitmapText.generateTexture to create a static texture from this BitmapText.
+*
+* To create a BitmapText data files you can use:
*
* BMFont (Windows, free): http://www.angelcode.com/products/bmfont/
* Glyph Designer (OS X, commercial): http://www.71squared.com/en/glyphdesigner
* Littera (Web-based, free): http://kvazars.com/littera/
*
+* For most use cases it is recommended to use XML. If you wish to use JSON, the formatting should be equal to the result of running a valid XML file through the popular X2JS library.
+*
* @class Phaser.BitmapText
* @constructor
-* @extends PIXI.BitmapText
+* @extends PIXI.DisplayObjectContainer
* @extends Phaser.Component.Core
* @extends Phaser.Component.Angle
* @extends Phaser.Component.AutoCull
@@ -42344,19 +43233,23 @@ Object.defineProperty(Phaser.Text.prototype, 'shadowFill', {
* @extends Phaser.Component.PhysicsBody
* @extends Phaser.Component.Reset
* @param {Phaser.Game} game - A reference to the currently running game.
-* @param {number} x - X position of the new bitmapText object.
-* @param {number} y - Y position of the new bitmapText object.
-* @param {string} font - The key of the BitmapFont as stored in Game.Cache.
-* @param {string} [text=''] - The actual text that will be rendered. Can be set later via BitmapText.text.
-* @param {number} [size=32] - The size the font will be rendered in, in pixels.
+* @param {number} x - X coordinate to display the BitmapText object at.
+* @param {number} y - Y coordinate to display the BitmapText object at.
+* @param {string} font - The key of the BitmapText as stored in Phaser.Cache.
+* @param {string} [text=''] - The text that will be rendered. This can also be set later via BitmapText.text.
+* @param {number} [size=32] - The size the font will be rendered at in pixels.
+* @param {string} [align='left'] - The alignment of multi-line text. Has no effect if there is only one line of text.
*/
-Phaser.BitmapText = function (game, x, y, font, text, size) {
+Phaser.BitmapText = function (game, x, y, font, text, size, align) {
x = x || 0;
y = y || 0;
font = font || '';
text = text || '';
size = size || 32;
+ align = align || 'left';
+
+ PIXI.DisplayObjectContainer.call(this);
/**
* @property {number} type - The const type of this object.
@@ -42370,6 +43263,41 @@ Phaser.BitmapText = function (game, x, y, font, text, size) {
*/
this.physicsType = Phaser.SPRITE;
+ /**
+ * @property {number} textWidth - The width in pixels of the overall text area, taking into consideration multi-line text.
+ * @readOnly
+ */
+ this.textWidth = 0;
+
+ /**
+ * @property {number} textHeight - The height in pixels of the overall text area, taking into consideration multi-line text.
+ * @readOnly
+ */
+ this.textHeight = 0;
+
+ /**
+ * @property {Phaser.Point} anchor - The anchor value of this BitmapText.
+ */
+ this.anchor = new Phaser.Point();
+
+ /**
+ * @property {Phaser.Point} _prevAnchor - The previous anchor value.
+ * @private
+ */
+ this._prevAnchor = new Phaser.Point();
+
+ /**
+ * @property {array} _glyphs - Private tracker for the letter sprite pool.
+ * @private
+ */
+ this._glyphs = [];
+
+ /**
+ * @property {number} _maxWidth - Internal cache var.
+ * @private
+ */
+ this._maxWidth = 0;
+
/**
* @property {string} _text - Internal cache var.
* @private
@@ -42392,7 +43320,7 @@ Phaser.BitmapText = function (game, x, y, font, text, size) {
* @property {string} _align - Internal cache var.
* @private
*/
- this._align = 'left';
+ this._align = align;
/**
* @property {number} _tint - Internal cache var.
@@ -42400,25 +43328,18 @@ Phaser.BitmapText = function (game, x, y, font, text, size) {
*/
this._tint = 0xFFFFFF;
- /**
- * @property {number} _tw - Internal cache var. Holds the previous textWidth.
- * @private
- */
- this._tw = 0;
+ this.updateText();
/**
- * @property {number} _th - Internal cache var. Holds the previous textHeight.
- * @private
+ * @property {boolean} dirty - The dirty state of this object.
*/
- this._th = 0;
-
- PIXI.BitmapText.call(this, text);
+ this.dirty = false;
Phaser.Component.Core.init.call(this, game, x, y, '', null);
};
-Phaser.BitmapText.prototype = Object.create(PIXI.BitmapText.prototype);
+Phaser.BitmapText.prototype = Object.create(PIXI.DisplayObjectContainer.prototype);
Phaser.BitmapText.prototype.constructor = Phaser.BitmapText;
Phaser.Component.Core.install.call(Phaser.BitmapText.prototype, [
@@ -42466,31 +43387,274 @@ Phaser.BitmapText.prototype.postUpdate = function () {
Phaser.Component.PhysicsBody.postUpdate.call(this);
Phaser.Component.FixedToCamera.postUpdate.call(this);
- if (this.body && ((this.textWidth !== this._tw) || (this.textHeight !== this._th)))
+ if (this.body && this.body.type === Phaser.Physics.ARCADE)
{
- this.body.setSize(this.textWidth, this.textHeight);
- this._tw = this.textWidth;
- this._th = this.textHeight;
+ if ((this.textWidth !== this.body.sourceWidth) || (this.textHeight !== this.body.sourceHeight))
+ {
+ this.body.setSize(this.textWidth, this.textHeight);
+ }
}
};
/**
-* @method Phaser.BitmapText.prototype.setStyle
+* The text to be displayed by this BitmapText object.
+*
+* It's faster to use `BitmapText.text = string`, but this is kept for backwards compatibility.
+*
+* @method Phaser.BitmapText.prototype.setText
+* @param {string} text - The text to be displayed by this BitmapText object.
+*/
+Phaser.BitmapText.prototype.setText = function (text) {
+
+ this.text = text;
+
+};
+
+/**
+* Given the input text this will scan the characters until either a newline is encountered,
+* or the line exceeds maxWidth, taking into account kerning, character widths and scaling.
+*
+* @method Phaser.BitmapText.prototype.scanLine
+* @private
+* @param {object} data - A reference to the font object in the PIXI.BitmapText.fonts array.
+* @param {float} scale - The scale of the font in relation to the texture.
+* @param {string} text - The text to parse.
+* @return {object} An object containing the parsed characters, total pixel width and x offsets.
+*/
+Phaser.BitmapText.prototype.scanLine = function (data, scale, text) {
+
+ var x = 0;
+ var w = 0;
+ var lastSpace = -1;
+ var prevCharCode = null;
+ var maxWidth = (this._maxWidth > 0) ? this._maxWidth : null;
+ var chars = [];
+
+ // Let's scan the text and work out if any of the lines are > maxWidth
+ for (var i = 0; i < text.length; i++)
+ {
+ var end = (i === text.length - 1) ? true : false;
+
+ if (/(?:\r\n|\r|\n)/.test(text.charAt(i)))
+ {
+ return { width: w, text: text.substr(0, i), end: end, chars: chars };
+ }
+ else
+ {
+ var charCode = text.charCodeAt(i);
+ var charData = data.chars[charCode];
+
+ var c = 0;
+
+ if (!charData)
+ {
+ // Skip a character not found in the font data
+ continue;
+ }
+
+ // Adjust for kerning from previous character to this one
+ var kerning = (prevCharCode && charData.kerning[prevCharCode]) ? charData.kerning[prevCharCode] : 0;
+
+ // Record the last space in the string
+ lastSpace = /(\s)/.test(text.charAt(i)) ? i : lastSpace;
+
+ // What will the line width be if we add this character to it?
+ c = (kerning + charData.texture.width + charData.xOffset) * scale;
+
+ // Do we need to line-wrap?
+ if (maxWidth && ((w + c) >= maxWidth) && lastSpace > -1)
+ {
+ // The last space was at "lastSpace" which was "i - lastSpace" characters ago
+ return { width: w, text: text.substr(0, i - (i - lastSpace)), end: end, chars: chars };
+ }
+ else
+ {
+ w += charData.xAdvance * scale;
+
+ chars.push(x + (charData.xOffset * scale));
+
+ x += charData.xAdvance * scale;
+
+ prevCharCode = charCode;
+ }
+ }
+ }
+
+ return { width: w, text: text, end: end, chars: chars };
+
+};
+
+/**
+* Renders text and updates it when needed.
+*
+* @method Phaser.BitmapText.prototype.updateText
* @private
*/
-Phaser.BitmapText.prototype.setStyle = function() {
+Phaser.BitmapText.prototype.updateText = function () {
- this.style = { align: this._align };
- this.fontName = this._font;
- this.fontSize = this._fontSize;
- this.dirty = true;
+ var data = PIXI.BitmapText.fonts[this._font];
+
+ if (!data)
+ {
+ return;
+ }
+
+ var text = this.text;
+ var scale = this._fontSize / data.size;
+ var lines = [];
+
+ var y = 0;
+
+ this.textWidth = 0;
+
+ do
+ {
+ var line = this.scanLine(data, scale, text);
+
+ line.y = y;
+
+ lines.push(line);
+
+ if (line.width > this.textWidth)
+ {
+ this.textWidth = line.width;
+ }
+
+ y += (data.lineHeight * scale);
+
+ text = text.substr(line.text.length + 1);
+
+ } while (line.end === false);
+
+ this.textHeight = y;
+
+ var t = 0;
+ var align = 0;
+ var ax = this.textWidth * this.anchor.x;
+ var ay = this.textHeight * this.anchor.y;
+
+ for (var i = 0; i < lines.length; i++)
+ {
+ var line = lines[i];
+
+ if (this._align === 'right')
+ {
+ align = this.textWidth - line.width;
+ }
+ else if (this._align === 'center')
+ {
+ align = (this.textWidth - line.width) / 2;
+ }
+
+ for (var c = 0; c < line.text.length; c++)
+ {
+ var charCode = line.text.charCodeAt(c);
+ var charData = data.chars[charCode];
+
+ var g = this._glyphs[t];
+
+ if (g)
+ {
+ // Sprite already exists in the glyphs pool, so we'll reuse it for this letter
+ g.texture = charData.texture;
+ // g.name = line.text[c];
+ // console.log('reusing', g.name, 'as', line.text[c]);
+ }
+ else
+ {
+ // We need a new sprite as the pool is empty or exhausted
+ g = new PIXI.Sprite(charData.texture);
+ g.name = line.text[c];
+ this._glyphs.push(g);
+ // console.log('new', line.text[c]);
+ }
+
+ g.position.x = (line.chars[c] + align) - ax;
+ g.position.y = (line.y + (charData.yOffset * scale)) - ay;
+
+ g.scale.set(scale);
+ g.tint = this.tint;
+
+ if (!g.parent)
+ {
+ this.addChild(g);
+ }
+
+ t++;
+ }
+ }
+
+ // Remove unnecessary children
+ // This moves them from the display list (children array) but retains them in the _glyphs pool
+ for (i = t; i < this._glyphs.length; i++)
+ {
+ this.removeChild(this._glyphs[i]);
+ }
+
+};
+
+/**
+* If a BitmapText changes from having a large number of characters to having very few characters it will cause lots of
+* Sprites to be retained in the BitmapText._glyphs array. Although they are not attached to the display list they
+* still take up memory while sat in the glyphs pool waiting to be re-used in the future.
+*
+* If you know that the BitmapText will not grow any larger then you can purge out the excess glyphs from the pool
+* by calling this method.
+*
+* Calling this doesn't prevent you from increasing the length of the text again in the future.
+*
+* @method Phaser.BitmapText.prototype.purgeGlyphs
+* @return {integer} The amount of glyphs removed from the pool.
+*/
+Phaser.BitmapText.prototype.purgeGlyphs = function () {
+
+ var len = this._glyphs.length;
+ var kept = [];
+
+ for (var i = 0; i < this._glyphs.length; i++)
+ {
+ if (this._glyphs[i].parent !== this)
+ {
+ this._glyphs[i].destroy();
+ }
+ else
+ {
+ kept.push(this._glyphs[i]);
+ }
+ }
+
+ this._glyphs = [];
+ this._glyphs = kept;
+
+ this.updateText();
+
+ return len - kept.length;
+
+};
+
+/**
+* Updates the transform of this object.
+*
+* @method Phaser.BitmapText.prototype.updateTransform
+* @private
+*/
+Phaser.BitmapText.prototype.updateTransform = function () {
+
+ if (this.dirty || !this.anchor.equals(this._prevAnchor))
+ {
+ this.updateText();
+ this.dirty = false;
+ this._prevAnchor.copyFrom(this.anchor);
+ }
+
+ PIXI.DisplayObjectContainer.prototype.updateTransform.call(this);
};
/**
* @name Phaser.BitmapText#align
-* @property {string} align - Alignment for multiline text ('left', 'center' or 'right'), does not affect single line text.
+* @property {string} align - Alignment for multi-line text ('left', 'center' or 'right'), does not affect single lines of text.
*/
Object.defineProperty(Phaser.BitmapText.prototype, 'align', {
@@ -42500,10 +43664,10 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'align', {
set: function(value) {
- if (value !== this._align)
+ if (value !== this._align && (value === 'left' || value === 'center' || value === 'right'))
{
this._align = value;
- this.setStyle();
+ this.updateText();
}
}
@@ -42525,7 +43689,7 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'tint', {
if (value !== this._tint)
{
this._tint = value;
- this.dirty = true;
+ this.updateText();
}
}
@@ -42547,9 +43711,7 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'font', {
if (value !== this._font)
{
this._font = value.trim();
- this.fontName = this._font;
- this.style.font = this._fontSize + "px '" + this._font + "'";
- this.dirty = true;
+ this.updateText();
}
}
@@ -42570,11 +43732,10 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'fontSize', {
value = parseInt(value, 10);
- if (value !== this._fontSize)
+ if (value !== this._fontSize && value > 0)
{
this._fontSize = value;
- this.style.font = this._fontSize + "px '" + this._font + "'";
- this.dirty = true;
+ this.updateText();
}
}
@@ -42582,9 +43743,8 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'fontSize', {
});
/**
-* The text string to be displayed by this Text object, taking into account the style settings.
* @name Phaser.BitmapText#text
-* @property {string} text - The text string to be displayed by this Text object, taking into account the style settings.
+* @property {string} text - The text to be displayed by this BitmapText object.
*/
Object.defineProperty(Phaser.BitmapText.prototype, 'text', {
@@ -42596,8 +43756,41 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'text', {
if (value !== this._text)
{
- this._text = value.toString() || ' ';
- this.dirty = true;
+ this._text = value.toString() || '';
+ this.updateText();
+ }
+
+ }
+
+});
+
+/**
+* The maximum display width of this BitmapText in pixels.
+*
+* If BitmapText.text is longer than maxWidth then the lines will be automatically wrapped
+* based on the last whitespace character found in the line.
+*
+* If no whitespace was found then no wrapping will take place and consequently the maxWidth value will not be honored.
+*
+* Disable maxWidth by setting the value to 0.
+*
+* @name Phaser.BitmapText#maxWidth
+* @property {number} maxWidth - The maximum width of this BitmapText in pixels.
+*/
+Object.defineProperty(Phaser.BitmapText.prototype, 'maxWidth', {
+
+ get: function() {
+
+ return this._maxWidth;
+
+ },
+
+ set: function(value) {
+
+ if (value !== this._maxWidth)
+ {
+ this._maxWidth = value;
+ this.updateText();
}
}
@@ -43298,6 +44491,12 @@ Phaser.Device = function () {
*/
this.nodeWebkit = false;
+ /**
+ * @property {boolean} electron - Is the game running under GitHub Electron?
+ * @default
+ */
+ this.electron = false;
+
/**
* @property {boolean} ejecta - Is the game running under Ejecta?
* @default
@@ -43461,6 +44660,12 @@ Phaser.Device = function () {
*/
this.chrome = false;
+ /**
+ * @property {number} chromeVersion - If running in Chrome this will contain the major version number.
+ * @default
+ */
+ this.chromeVersion = 0;
+
/**
* @property {boolean} epiphany - Set to true if running in Epiphany.
* @default
@@ -43869,11 +45074,15 @@ Phaser.Device._initialize = function () {
else if (/Windows/.test(ua))
{
device.windows = true;
+ }
- if (/Windows Phone/i.test(ua))
- {
- device.windowsPhone = true;
- }
+ if (/Windows Phone/i.test(ua) || /IEMobile/i.test(ua))
+ {
+ device.android = false;
+ device.iOS = false;
+ device.macOS = false;
+ device.windows = true;
+ device.windowsPhone = true;
}
var silk = /Silk/.test(ua); // detected in browsers
@@ -43916,19 +45125,16 @@ Phaser.Device._initialize = function () {
device.quirksMode = (document.compatMode === 'CSS1Compat') ? false : true;
- navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
+ navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia;
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
device.getUserMedia = device.getUserMedia && !!navigator.getUserMedia && !!window.URL;
// Older versions of firefox (< 21) apparently claim support but user media does not actually work
- if (navigator.userAgent.match(/Firefox\D+(\d+)/))
+ if (device.firefoxVersion < 21)
{
- if (parseInt(RegExp.$1, 10) < 21)
- {
- device.getUserMedia = false;
- }
+ device.getUserMedia = false;
}
// TODO: replace canvasBitBltShift detection with actual feature check
@@ -44056,9 +45262,10 @@ Phaser.Device._initialize = function () {
{
device.arora = true;
}
- else if (/Chrome/.test(ua))
+ else if (/Chrome\/(\d+)/.test(ua) && !device.windowsPhone)
{
device.chrome = true;
+ device.chromeVersion = parseInt(RegExp.$1, 10);
}
else if (/Epiphany/.test(ua))
{
@@ -44086,7 +45293,7 @@ Phaser.Device._initialize = function () {
{
device.opera = true;
}
- else if (/Safari/.test(ua))
+ else if (/Safari/.test(ua) && !device.windowsPhone)
{
device.safari = true;
}
@@ -44098,13 +45305,13 @@ Phaser.Device._initialize = function () {
device.ieVersion = parseInt(RegExp.$3, 10);
}
- //Silk gets its own if clause because its ua also contains 'Safari'
+ // Silk gets its own if clause because its ua also contains 'Safari'
if (/Silk/.test(ua))
{
device.silk = true;
}
- // WebApp mode in iOS
+ // WebApp mode in iOS
if (navigator['standalone'])
{
device.webApp = true;
@@ -44120,15 +45327,11 @@ Phaser.Device._initialize = function () {
device.node = true;
}
- if (device.node)
+ if (device.node && typeof window.process.versions === 'object')
{
- try {
- device.nodeWebkit = (typeof require('nw.gui') !== "undefined");
- }
- catch(error)
- {
- device.nodeWebkit = false;
- }
+ device.nodeWebkit = !!window.process.versions['node-webkit'];
+
+ device.electron = !!window.process.versions.electron;
}
if (navigator['isCocoonJS'])
@@ -44211,32 +45414,38 @@ Phaser.Device._initialize = function () {
var result = false;
try {
- if (result = !!audioElement.canPlayType) {
-
- if (audioElement.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, '')) {
+ if (result = !!audioElement.canPlayType)
+ {
+ if (audioElement.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ''))
+ {
device.ogg = true;
}
- if (audioElement.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, '') || audioElement.canPlayType('audio/opus;').replace(/^no$/, '')) {
+ if (audioElement.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, '') || audioElement.canPlayType('audio/opus;').replace(/^no$/, ''))
+ {
device.opus = true;
}
- if (audioElement.canPlayType('audio/mpeg;').replace(/^no$/, '')) {
+ if (audioElement.canPlayType('audio/mpeg;').replace(/^no$/, ''))
+ {
device.mp3 = true;
}
// Mimetypes accepted:
// developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
// bit.ly/iphoneoscodecs
- if (audioElement.canPlayType('audio/wav; codecs="1"').replace(/^no$/, '')) {
+ if (audioElement.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ''))
+ {
device.wav = true;
}
- if (audioElement.canPlayType('audio/x-m4a;') || audioElement.canPlayType('audio/aac;').replace(/^no$/, '')) {
+ if (audioElement.canPlayType('audio/x-m4a;') || audioElement.canPlayType('audio/aac;').replace(/^no$/, ''))
+ {
device.m4a = true;
}
- if (audioElement.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, '')) {
+ if (audioElement.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ''))
+ {
device.webm = true;
}
}
@@ -45145,11 +46354,18 @@ Phaser.Canvas = {
*/
setSmoothingEnabled: function (context, value) {
- context['imageSmoothingEnabled'] = value;
- context['mozImageSmoothingEnabled'] = value;
- context['oImageSmoothingEnabled'] = value;
- context['webkitImageSmoothingEnabled'] = value;
- context['msImageSmoothingEnabled'] = value;
+ var vendor = [ 'i', 'mozI', 'oI', 'webkitI', 'msI' ];
+
+ for (var prefix in vendor)
+ {
+ var s = vendor[prefix] + 'mageSmoothingEnabled';
+
+ if (s in context)
+ {
+ context[s] = value;
+ return context;
+ }
+ }
return context;
@@ -45209,27 +46425,6 @@ Phaser.Canvas = {
};
-/**
-* Get the DOM offset values of any given element
-*
-* @method Phaser.Canvas.getOffset
-* @param {HTMLElement} element - The targeted element that we want to retrieve the offset.
-* @param {Phaser.Point} [point] - The point we want to take the x/y values of the offset.
-* @return {Phaser.Point} - A point objet with the offsetX and Y as its properties.
-* @deprecated 2.1.4 - Use {@link Phaser.DOM.getOffset}
-*/
-Phaser.Canvas.getOffset = Phaser.DOM.getOffset;
-
-/**
-* Returns the aspect ratio of the given canvas.
-*
-* @method Phaser.Canvas.getAspectRatio
-* @param {HTMLCanvasElement} canvas - The canvas to get the aspect ratio from.
-* @return {number} The ratio between canvas' width and height.
-* @deprecated 2.1.4 - User {@link Phaser.DOM.getAspectRatio}
-*/
-Phaser.Canvas.getAspectRatio = Phaser.DOM.getAspectRatio;
-
/**
* @author Richard Davey
* @copyright 2015 Photon Storm Ltd.
@@ -45421,7 +46616,6 @@ Phaser.Math = {
* Twice PI.
* @property {number} Phaser.Math#PI2
* @default ~6.283
- * @deprecated 2.2.0 - Not used internally. Use `2 * Math.PI` instead.
*/
PI2: Math.PI * 2,
@@ -45510,16 +46704,6 @@ Phaser.Math = {
},
- /**
- * @method Phaser.Math#truncate
- * @param {number} n
- * @return {integer}
- * @deprecated 2.2.0 - Use `Math.trunc` (now with polyfill)
- */
- truncate: function (n) {
- return Math.trunc(n);
- },
-
/**
* @method Phaser.Math#shear
* @param {number} n
@@ -45558,7 +46742,8 @@ Phaser.Math = {
/**
* Snap a value to nearest grid slice, using floor.
*
- * Example: if you have an interval gap of 5 and a position of 12... you will snap to 10. As will 14 snap to 10... but 16 will snap to 15
+ * Example: if you have an interval gap of 5 and a position of 12... you will snap to 10.
+ * As will 14 snap to 10... but 16 will snap to 15.
*
* @method Phaser.Math#snapToFloor
* @param {number} input - The value to snap.
@@ -45584,7 +46769,8 @@ Phaser.Math = {
/**
* Snap a value to nearest grid slice, using ceil.
*
- * Example: if you have an interval gap of 5 and a position of 12... you will snap to 15. As will 14 will snap to 15... but 16 will snap to 20.
+ * Example: if you have an interval gap of 5 and a position of 12... you will snap to 15.
+ * As will 14 will snap to 15... but 16 will snap to 20.
*
* @method Phaser.Math#snapToCeil
* @param {number} input - The value to snap.
@@ -45607,28 +46793,6 @@ Phaser.Math = {
},
- /**
- * Snaps a value to the nearest value in an array.
- *
- * @method Phaser.Math#snapToInArray
- * @param {number} input
- * @param {number[]} arr
- * @param {boolean} sort - True if the array needs to be sorted.
- * @return {number}
- * @deprecated 2.2.0 - See {@link Phaser.ArrayUtils.findClosest} for an alternative.
- */
- snapToInArray: function (input, arr, sort) {
-
- if (typeof sort === 'undefined') { sort = true; }
-
- if (sort) {
- arr.sort();
- }
-
- return Phaser.ArrayUtils.findClosest(input, arr);
-
- },
-
/**
* Round to some place comparative to a `base`, default is 10 for decimal place.
* The `place` is represented by the power applied to `base` to get that place.
@@ -45711,19 +46875,6 @@ Phaser.Math = {
},
- /**
- * A one dimensional linear interpolation of a value.
- * @method Phaser.Math#interpolateFloat
- * @param {number} a
- * @param {number} b
- * @param {number} weight
- * @return {number}
- * @deprecated 2.2.0 - See {@link Phaser.Math#linear}
- */
- interpolateFloat: function (a, b, weight) {
- return (b - a) * weight + a;
- },
-
/**
* Find the angle of a segment from (x1, y1) -> (x2, y2).
* @method Phaser.Math#angleBetween
@@ -45741,7 +46892,7 @@ Phaser.Math = {
* Find the angle of a segment from (x1, y1) -> (x2, y2).
* Note that the difference between this method and Math.angleBetween is that this assumes the y coordinate travels
* down the screen.
- *
+ *
* @method Phaser.Math#angleBetweenY
* @param {number} x1
* @param {number} y1
@@ -45798,76 +46949,6 @@ Phaser.Math = {
},
- /**
- * Normalizes a latitude to the [-90,90] range. Latitudes above 90 or below -90 are capped, not wrapped.
- * @method Phaser.Math#normalizeLatitude
- * @param {number} lat - The latitude to normalize, in degrees.
- * @return {number} Returns the latitude, fit within the [-90,90] range.
- * @deprecated 2.2.0 - Use {@link Phaser.Math#clamp}.
- */
- normalizeLatitude: function (lat) {
- return Phaser.Math.clamp(lat, -90, 90);
- },
-
- /**
- * Normalizes a longitude to the [-180,180] range. Longitudes above 180 or below -180 are wrapped.
- * @method Phaser.Math#normalizeLongitude
- * @param {number} lng - The longitude to normalize, in degrees.
- * @return {number} Returns the longitude, fit within the [-180,180] range.
- * @deprecated 2.2.0 - Use {@link Phaser.Math#wrap}.
- */
- normalizeLongitude: function (lng) {
- return Phaser.Math.wrap(lng, -180, 180);
- },
-
- /**
- * Generate a random bool result based on the chance value.
- *
- * Returns true or false based on the chance value (default 50%). For example if you wanted a player to have a 30% chance
- * of getting a bonus, call chanceRoll(30) - true means the chance passed, false means it failed.
- *
- * @method Phaser.Math#chanceRoll
- * @param {number} chance - The chance of receiving the value. A number between 0 and 100 (effectively 0% to 100%).
- * @return {boolean} True if the roll passed, or false otherwise.
- * @deprecated 2.2.0 - Use {@link Phaser.Utils.chanceRoll}
- */
- chanceRoll: function (chance) {
- return Phaser.Utils.chanceRoll(chance);
- },
-
- /**
- * Create an array representing the inclusive range of numbers (usually integers) in `[start, end]`.
- *
- * @method Phaser.Math#numberArray
- * @param {number} start - The minimum value the array starts with.
- * @param {number} end - The maximum value the array contains.
- * @return {number[]} The array of number values.
- * @deprecated 2.2.0 - See {@link Phaser.ArrayUtils.numberArray}
- */
- numberArray: function (start, end) {
- return Phaser.ArrayUtils.numberArray(start, end);
- },
-
- /**
- * Create an array of numbers (positive and/or negative) progressing from `start`
- * up to but not including `end` by advancing by `step`.
- *
- * If `start` is less than `stop` a zero-length range is created unless a negative `step` is specified.
- *
- * Certain values for `start` and `end` (eg. NaN/undefined/null) are coerced to 0;
- * for forward compatibility make sure to pass in actual numbers.
- *
- * @method Phaser.Math#numberArrayStep
- * @param {number} start - The start of the range.
- * @param {number} end - The end of the range.
- * @param {number} [step=1] - The value to increment or decrement by.
- * @returns {Array} Returns the new array of numbers.
- * @deprecated 2.2.0 - See {@link Phaser.ArrayUtils.numberArrayStep}
- */
- numberArrayStep: function(start, end, step) {
- return Phaser.ArrayUtils.numberArrayStep(start, end, step);
- },
-
/**
* Adds the given amount to the value, but never lets the value go over the specified maximum.
*
@@ -45948,37 +47029,12 @@ Phaser.Math = {
},
- /**
- * Ensures the given value is between min and max inclusive.
- *
- * @method Phaser.Math#limitValue
- * @param {number} value - The value to limit.
- * @param {number} min - The minimum the value can be.
- * @param {number} max - The maximum the value can be.
- * @return {number} The limited value.
- * @deprecated 2.2.0 - Use {@link Phaser.Math#clamp}
- */
- limitValue: function(value, min, max) {
- return Phaser.Math.clamp(value, min, max);
- },
-
- /**
- * Randomly returns either a 1 or -1.
- *
- * @method Phaser.Math#randomSign
- * @return {number} Either 1 or -1
- * @deprecated 2.2.0 - Use {@link Phaser.Utils.randomChoice} or other
- */
- randomSign: function () {
- return Phaser.Utils.randomChoice(-1, 1);
- },
-
/**
* Returns true if the number given is odd.
*
* @method Phaser.Math#isOdd
* @param {integer} n - The number to check.
- * @return {boolean} True if the given number is odd. False if the given number is even.
+ * @return {boolean} True if the given number is odd. False if the given number is even.
*/
isOdd: function (n) {
// Does not work with extremely large values
@@ -45998,7 +47054,7 @@ Phaser.Math = {
},
/**
- * Variation of Math.min that can be passed either an array of numbers or the numbers as parameters.
+ * Variation of Math.min that can be passed either an array of numbers or the numbers as parameters.
*
* Prefer the standard `Math.min` function when appropriate.
*
@@ -46007,7 +47063,7 @@ Phaser.Math = {
* @see {@link http://jsperf.com/math-s-min-max-vs-homemade}
*/
min: function () {
-
+
if (arguments.length === 1 && typeof arguments[0] === 'object')
{
var data = arguments[0];
@@ -46016,7 +47072,7 @@ Phaser.Math = {
{
var data = arguments;
}
-
+
for (var i = 1, min = 0, len = data.length; i < len; i++)
{
if (data[i] < data[min])
@@ -46039,7 +47095,7 @@ Phaser.Math = {
* @see {@link http://jsperf.com/math-s-min-max-vs-homemade}
*/
max: function () {
-
+
if (arguments.length === 1 && typeof arguments[0] === 'object')
{
var data = arguments[0];
@@ -46048,7 +47104,7 @@ Phaser.Math = {
{
var data = arguments;
}
-
+
for (var i = 1, max = 0, len = data.length; i < len; i++)
{
if (data[i] > data[max])
@@ -46135,36 +47191,9 @@ Phaser.Math = {
},
- /**
- * Keeps an angle value between the given min and max values.
- *
- * @method Phaser.Math#angleLimit
- * @param {number} angle - The angle value to check. Must be between -180 and +180.
- * @param {number} min - The minimum angle that is allowed (must be -180 or greater).
- * @param {number} max - The maximum angle that is allowed (must be 180 or less).
- * @return {number} The new angle value, returns the same as the input angle if it was within bounds
- * @deprecated 2.2.0 - Use {@link Phaser.Math#clamp} instead
- */
- angleLimit: function (angle, min, max) {
-
- var result = angle;
-
- if (angle > max)
- {
- result = max;
- }
- else if (angle < min)
- {
- result = min;
- }
-
- return result;
-
- },
-
/**
* A Linear Interpolation Method, mostly used by Phaser.Tween.
- *
+ *
* @method Phaser.Math#linearInterpolation
* @param {Array} v - The input array of values to interpolate between.
* @param {number} k - The percentage of interpolation, between 0 and 1.
@@ -46192,7 +47221,7 @@ Phaser.Math = {
/**
* A Bezier Interpolation Method, mostly used by Phaser.Tween.
- *
+ *
* @method Phaser.Math#bezierInterpolation
* @param {Array} v - The input array of values to interpolate between.
* @param {number} k - The percentage of interpolation, between 0 and 1.
@@ -46214,7 +47243,7 @@ Phaser.Math = {
/**
* A Catmull Rom Interpolation Method, mostly used by Phaser.Tween.
- *
+ *
* @method Phaser.Math#catmullRomInterpolation
* @param {Array} v - The input array of values to interpolate between.
* @param {number} k - The percentage of interpolation, between 0 and 1.
@@ -46254,7 +47283,7 @@ Phaser.Math = {
/**
* Calculates a linear (interpolation) value over t.
- *
+ *
* @method Phaser.Math#linear
* @param {number} p0
* @param {number} p1
@@ -46301,7 +47330,7 @@ Phaser.Math = {
/**
* Calculates a catmum rom value.
- *
+ *
* @method Phaser.Math#catmullRom
* @protected
* @param {number} p0
@@ -46331,72 +47360,6 @@ Phaser.Math = {
return Math.abs(a - b);
},
- /**
- * Fetch a random entry from the given array.
- *
- * Will return null if there are no array items that fall within the specified range
- * or if there is no item for the randomly choosen index.
- *
- * @method Phaser.Math#getRandom
- * @param {any[]} objects - An array of objects.
- * @param {integer} startIndex - Optional offset off the front of the array. Default value is 0, or the beginning of the array.
- * @param {integer} length - Optional restriction on the number of values you want to randomly select from.
- * @return {object} The random object that was selected.
- * @deprecated 2.2.0 - Use {@link Phaser.ArrayUtils.getRandomItem}
- */
- getRandom: function (objects, startIndex, length) {
- return Phaser.ArrayUtils.getRandomItem(objects, startIndex, length);
- },
-
- /**
- * Removes a random object from the given array and returns it.
- *
- * Will return null if there are no array items that fall within the specified range
- * or if there is no item for the randomly choosen index.
- *
- * @method Phaser.Math#removeRandom
- * @param {any[]} objects - An array of objects.
- * @param {integer} startIndex - Optional offset off the front of the array. Default value is 0, or the beginning of the array.
- * @param {integer} length - Optional restriction on the number of values you want to randomly select from.
- * @return {object} The random object that was removed.
- * @deprecated 2.2.0 - Use {@link Phaser.ArrayUtils.removeRandomItem}
- */
- removeRandom: function (objects, startIndex, length) {
- return Phaser.ArrayUtils.removeRandomItem(objects, startIndex, length);
- },
-
- /**
- * _Do not use this function._
- *
- * Round to the next whole number _towards_ zero.
- *
- * E.g. `floor(1.7) == 1`, and `floor(-2.7) == -2`.
- *
- * @method Phaser.Math#floor
- * @param {number} value - Any number.
- * @return {integer} The rounded value of that number.
- * @deprecated 2.2.0 - Use {@link Phaser.Math#truncate} or `Math.trunc` instead.
- */
- floor: function (value) {
- return Math.trunc(value);
- },
-
- /**
- * _Do not use this function._
- *
- * Round to the next whole number _away_ from zero.
- *
- * E.g. `ceil(1.3) == 2`, and `ceil(-2.3) == -3`.
- *
- * @method Phaser.Math#ceil
- * @param {number} value - Any number.
- * @return {integer} The rounded value of that number.
- * @deprecated 2.2.0 - Use {@link Phaser.Math#roundAwayFromZero} instead.
- */
- ceil: function (value) {
- return Phaser.Math.roundAwayFromZero(value);
- },
-
/**
* Round to the next whole number _away_ from zero.
*
@@ -46405,8 +47368,10 @@ Phaser.Math = {
* @return {integer} The rounded value of that number.
*/
roundAwayFromZero: function (value) {
+
// "Opposite" of truncate.
return (value > 0) ? Math.ceil(value) : Math.floor(value);
+
},
/**
@@ -46449,34 +47414,6 @@ Phaser.Math = {
},
- /**
- * Moves the element from the start of the array to the end, shifting all items in the process.
- *
- * @method Phaser.Math#shift
- * @param {any[]} array - The array to shift/rotate. The array is modified.
- * @return {any} The shifted value.
- * @deprecated 2.2.0 - Use {@link Phaser.ArrayUtils.rotate} instead
- */
- shift: function (array) {
-
- var s = array.shift();
- array.push(s);
-
- return s;
-
- },
-
- /**
- * Shuffles the data in the given array into a new order.
- * @method Phaser.Math#shuffleArray
- * @param {any[]} array - The array to shuffle
- * @return {any[]} The array
- * @deprecated 2.2.0 - Use {@link Phaser.ArrayUtils.shuffle}
- */
- shuffleArray: function (array) {
- return Phaser.ArrayUtils.shuffle(array);
- },
-
/**
* Returns the euclidian distance between the two given set of coordinates.
*
@@ -46496,6 +47433,26 @@ Phaser.Math = {
},
+ /**
+ * Returns the euclidean distance squared between the two given set of
+ * coordinates (cuts out a square root operation before returning).
+ *
+ * @method Phaser.Math#distanceSq
+ * @param {number} x1
+ * @param {number} y1
+ * @param {number} x2
+ * @param {number} y2
+ * @return {number} The distance squared between the two sets of coordinates.
+ */
+ distanceSq: function (x1, y1, x2, y2) {
+
+ var dx = x1 - x2;
+ var dy = y1 - y2;
+
+ return dx * dx + dy * dy;
+
+ },
+
/**
* Returns the distance between the two given set of coordinates at the power given.
*
@@ -46515,21 +47472,6 @@ Phaser.Math = {
},
- /**
- * Returns the rounded distance between the two given set of coordinates.
- *
- * @method Phaser.Math#distanceRounded
- * @param {number} x1
- * @param {number} y1
- * @param {number} x2
- * @param {number} y2
- * @return {number} The distance between this Point object and the destination Point object.
- * @deprecated 2.2.0 - Do the rounding locally.
- */
- distanceRounded: function (x1, y1, x2, y2) {
- return Math.round(Phaser.Math.distance(x1, y1, x2, y2));
- },
-
/**
* Force a value within the boundaries by clamping `x` to the range `[a, b]`.
*
@@ -46953,7 +47895,7 @@ Phaser.RandomDataGenerator.prototype = {
*/
weightedPick: function (ary) {
- return ary[~~(Math.pow(this.frac(), 2) * (ary.length - 1))];
+ return ary[~~(Math.pow(this.frac(), 2) * (ary.length - 1) + 0.5)];
},
@@ -47908,7 +48850,7 @@ Phaser.Tween = function (target, game, manager) {
/**
* The speed at which the tweens will run. A value of 1 means it will match the game frame rate. 0.5 will run at half the frame rate. 2 at double the frame rate, etc.
* If a tweens duration is 1 second but timeScale is 0.5 then it will take 2 seconds to complete.
- *
+ *
* @property {number} timeScale
* @default
*/
@@ -48046,7 +48988,7 @@ Phaser.Tween.prototype = {
to: function (properties, duration, ease, autoStart, delay, repeat, yoyo) {
if (typeof duration === 'undefined' || duration <= 0) { duration = 1000; }
- if (typeof ease === 'undefined') { ease = Phaser.Easing.Default; }
+ if (typeof ease === 'undefined' || ease === null) { ease = Phaser.Easing.Default; }
if (typeof autoStart === 'undefined') { autoStart = false; }
if (typeof delay === 'undefined') { delay = 0; }
if (typeof repeat === 'undefined') { repeat = 0; }
@@ -48093,7 +49035,7 @@ Phaser.Tween.prototype = {
from: function (properties, duration, ease, autoStart, delay, repeat, yoyo) {
if (typeof duration === 'undefined') { duration = 1000; }
- if (typeof ease === 'undefined') { ease = Phaser.Easing.Default; }
+ if (typeof ease === 'undefined' || ease === null) { ease = Phaser.Easing.Default; }
if (typeof autoStart === 'undefined') { autoStart = false; }
if (typeof delay === 'undefined') { delay = 0; }
if (typeof repeat === 'undefined') { repeat = 0; }
@@ -48408,7 +49350,7 @@ Phaser.Tween.prototype = {
* as soon as this tween completes. If this tween never completes (i.e. repeatAll or loop is set) then the chain will never progress.
* Note that `Tween.onComplete` will fire when *this* tween completes, not when the whole chain completes.
* For that you should listen to `onComplete` on the final tween in your chain.
- *
+ *
* If you pass multiple tweens to this method they will be joined into a single long chain.
* For example if this is Tween A and you pass in B, C and D then B will be chained to A, C will be chained to B and D will be chained to C.
* Any previously chained tweens that may have been set will be overwritten.
@@ -48503,7 +49445,7 @@ Phaser.Tween.prototype = {
/**
* This is called by the core Game loop. Do not call it directly, instead use Tween.pause.
- *
+ *
* @private
* @method Phaser.Tween#_pause
*/
@@ -48692,7 +49634,13 @@ Phaser.Tween.prototype = {
return null;
}
- if (typeof data === 'undefined') { data = []; }
+ if (typeof frameRate === 'undefined') {
+ frameRate = 60;
+ }
+
+ if (typeof data === 'undefined') {
+ data = [];
+ }
// Populate the tween data
for (var i = 0; i < this.timeline.length; i++)
@@ -48795,7 +49743,7 @@ Phaser.TweenData = function (parent) {
this.vEnd = {};
/**
- * @property {object} vEnd - Cached ending values.
+ * @property {object} vEndCache - Cached ending values.
* @private
*/
this.vEndCache = {};
@@ -48929,7 +49877,7 @@ Phaser.TweenData.prototype = {
* Sets this tween to be a `to` tween on the properties given. A `to` tween starts at the current value and tweens to the destination value given.
* For example a Sprite with an `x` coordinate of 100 could be tweened to `x` 200 by giving a properties object of `{ x: 200 }`.
*
- * @method Phaser.Tween#to
+ * @method Phaser.TweenData#to
* @param {object} properties - The properties you want to tween, such as `Sprite.x` or `Sound.volume`. Given as a JavaScript object.
* @param {number} [duration=1000] - Duration of this tween in ms.
* @param {function} [ease=null] - Easing function. If not set it will default to Phaser.Easing.Default, which is Phaser.Easing.Linear.None by default but can be over-ridden at will.
@@ -48957,7 +49905,7 @@ Phaser.TweenData.prototype = {
* Sets this tween to be a `from` tween on the properties given. A `from` tween sets the target to the destination value and tweens to its current value.
* For example a Sprite with an `x` coordinate of 100 tweened from `x` 500 would be set to `x` 500 and then tweened to `x` 100 by giving a properties object of `{ x: 500 }`.
*
- * @method Phaser.Tween#from
+ * @method Phaser.TweenData#from
* @param {object} properties - The properties you want to tween, such as `Sprite.x` or `Sound.volume`. Given as a JavaScript object.
* @param {number} [duration=1000] - Duration of this tween in ms.
* @param {function} [ease=null] - Easing function. If not set it will default to Phaser.Easing.Default, which is Phaser.Easing.Linear.None by default but can be over-ridden at will.
@@ -49049,8 +49997,12 @@ Phaser.TweenData.prototype = {
continue;
}
- // Create a local copy of the Array with the start value at the front
- this.vEnd[property] = [this.vStart[property]].concat(this.vEnd[property]);
+ if (this.percent === 0)
+ {
+ // Put the start value at the beginning of the array
+ // but we only want to do this once, if the Tween hasn't run before
+ this.vEnd[property] = [this.vStart[property]].concat(this.vEnd[property]);
+ }
}
if (typeof this.vEnd[property] !== 'undefined')
@@ -50409,7 +51361,7 @@ Phaser.Time.prototype.constructor = Phaser.Time;
* A Timer is a way to create small re-usable (or disposable) objects that wait for a specific moment in time,
* and then run the specified callbacks.
*
-* You can many events to a Timer, each with their own delays. A Timer uses milliseconds as its unit of time (there are 1000 ms in 1 second).
+* You can add many events to a Timer, each with their own delays. A Timer uses milliseconds as its unit of time (there are 1000 ms in 1 second).
* So a delay to 250 would fire the event every quarter of a second.
*
* Timers are based on real-world (not physics) time, adjusted for game pause durations.
@@ -53720,7 +54672,7 @@ Phaser.Cache.prototype = {
*
* @method Phaser.Cache#addTilemap
* @param {string} key - The unique key by which you will reference this object.
- * @param {string} url - URL of the tilemap image.
+ * @param {string} url - URL of the tilemap image or key reference.
* @param {object} mapData - The tilemap data object (either a CSV or JSON file).
* @param {number} format - The format of the tilemap data.
*/
@@ -53777,23 +54729,29 @@ Phaser.Cache.prototype = {
* @param {string} key - The unique key by which you will reference this object.
* @param {string} url - URL of this font xml file.
* @param {object} data - Extra font data.
- * @param {object} xmlData - Texture atlas frames data.
+ * @param {object} atlasData - Texture atlas frames data.
* @param {number} [xSpacing=0] - If you'd like to add additional horizontal spacing between the characters then set the pixel value here.
* @param {number} [ySpacing=0] - If you'd like to add additional vertical spacing between the lines then set the pixel value here.
*/
- addBitmapFont: function (key, url, data, xmlData, xSpacing, ySpacing) {
+ addBitmapFont: function (key, url, data, atlasData, atlasType, xSpacing, ySpacing) {
this._images[key] = { url: url, data: data };
PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data);
// PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]);
- Phaser.LoaderParser.bitmapFont(this.game, xmlData, key, xSpacing, ySpacing);
+ if (atlasType === 'json')
+ {
+ Phaser.LoaderParser.jsonBitmapFont(this.game, atlasData, key, xSpacing, ySpacing);
+ }
+ else
+ {
+ Phaser.LoaderParser.xmlBitmapFont(this.game, atlasData, key, xSpacing, ySpacing);
+ }
this._bitmapFont[key] = PIXI.BitmapText.fonts[key];
this._resolveURL(url, this._bitmapFont[key]);
-
},
/**
@@ -53921,12 +54879,11 @@ Phaser.Cache.prototype = {
this._images[key] = { url: url, data: data };
- this._images[key].frame = new Phaser.Frame(0, 0, 0, data.width, data.height, key, this.game.rnd.uuid());
+ this._images[key].frame = new Phaser.Frame(0, 0, 0, data.width, data.height, key);
this._images[key].frameData = new Phaser.FrameData();
- this._images[key].frameData.addFrame(new Phaser.Frame(0, 0, 0, data.width, data.height, url, this.game.rnd.uuid()));
+ this._images[key].frameData.addFrame(new Phaser.Frame(0, 0, 0, data.width, data.height, url));
PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data);
- // PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]);
this._resolveURL(url, this._images[key]);
@@ -54721,16 +55678,27 @@ Phaser.Cache.prototype = {
/**
* Get a JSON object by key from the cache.
+ *
+ * You can either return the object by reference (the default), or return a clone
+ * of it using the `clone` parameter.
*
* @method Phaser.Cache#getJSON
* @param {string} key - Asset key of the json object to retrieve from the Cache.
+ * @param {boolean} [clonse=false] - Return a clone of the original object (true) or a reference to it? (false)
* @return {object} The JSON object.
*/
- getJSON: function (key) {
+ getJSON: function (key, clone) {
if (this._json[key])
{
- return this._json[key].data;
+ if (clone)
+ {
+ return Phaser.Utils.extend(true, this._json[key].data);
+ }
+ else
+ {
+ return this._json[key].data;
+ }
}
else
{
@@ -54807,23 +55775,6 @@ Phaser.Cache.prototype = {
},
- /**
- * DEPRECATED: Please use Cache.getURL instead.
- * Get a cached object by the URL.
- * This only returns a value if you set Cache.autoResolveURL to `true` *before* starting the preload of any assets.
- * Be aware that every call to this function makes a DOM src query, so use carefully and double-check for implications in your target browsers/devices.
- *
- * @method Phaser.Cache#getUrl
- * @deprecated Please use Cache.getURL instead.
- * @param {string} url - The url for the object loaded to get from the cache.
- * @return {object} The cached object.
- */
- getUrl: function (url) {
-
- return this.getURL(url);
-
- },
-
/**
* Gets all keys used by the Cache for the given data type.
*
@@ -55235,7 +56186,7 @@ Phaser.Loader = function (game) {
this.onFileStart = new Phaser.Signal();
/**
- * This event is dispatched when a file has either loaded or failed to load. *
+ * This event is dispatched when a file has either loaded or failed to load.
*
* Any function bound to this will receive the following parameters:
*
@@ -55984,6 +56935,10 @@ Phaser.Loader.prototype = {
*
* The URL can be relative or absolute. If the URL is relative the Loader.baseURL value will be prepended to it.
*
+ * Mobile warning: There are some mobile devices (certain iPad 2 and iPad Mini revisions) that cannot play 48000 Hz audio.
+ * When they try to play the audio becomes extremely distorted and buzzes, eventually crashing the sound system.
+ * The solution is to use a lower encoding rate such as 44100 Hz.
+ *
* @method Phaser.Loader#audio
* @param {string} key - Unique asset key of the audio file.
* @param {string|string[]|object[]} urls - Either a single string or an array of URIs or pairs of `{uri: .., type: ..}`.
@@ -56083,18 +57038,37 @@ Phaser.Loader.prototype = {
*
* The URL can be relative or absolute. If the URL is relative the Loader.baseURL value will be prepended to it.
*
+ * You don't need to preload a video in order to play it in your game. See `Video.createVideoFromURL` for details.
+ *
* @method Phaser.Loader#video
* @param {string} key - Unique asset key of the video file.
* @param {string|string[]|object[]} urls - Either a single string or an array of URIs or pairs of `{uri: .., type: ..}`.
* If an array is specified then the first URI (or URI + mime pair) that is device-compatible will be selected.
* For example: `"boom.mp4"`, `['boom.mp4', 'boom.ogg', 'boom.webm']`, or `[{uri: "data:", type: 'opus'}, 'fallback.mp4']`.
* BLOB and DATA URIs can be used but only support automatic detection when used in the pair form; otherwise the format must be manually checked before adding the resource.
+ * @param {string} [loadEvent='canplaythrough'] - This sets the Video source event to listen for before the load is considered complete.
+ * 'canplaythrough' implies the video has downloaded enough, and bandwidth is high enough that it can be played to completion.
+ * 'canplay' implies the video has downloaded enough to start playing, but not necessarily to finish.
+ * 'loadeddata' just makes sure that the video meta data and first frame have downloaded. Phaser uses this value automatically if the
+ * browser is detected as being Firefox and no `loadEvent` is given, otherwise it defaults to `canplaythrough`.
* @param {boolean} [asBlob=false] - Video files can either be loaded via the creation of a video element which has its src property set.
* Or they can be loaded via xhr, stored as binary data in memory and then converted to a Blob. This isn't supported in IE9 or Android 2.
* If you need to have the same video playing at different times across multiple Sprites then you need to load it as a Blob.
* @return {Phaser.Loader} This Loader instance.
*/
- video: function (key, urls, asBlob) {
+ video: function (key, urls, loadEvent, asBlob) {
+
+ if (typeof loadEvent === 'undefined')
+ {
+ if (this.game.device.firefox)
+ {
+ loadEvent = 'loadeddata';
+ }
+ else
+ {
+ loadEvent = 'canplaythrough';
+ }
+ }
if (typeof asBlob === 'undefined') { asBlob = false; }
@@ -56103,7 +57077,7 @@ Phaser.Loader.prototype = {
urls = [urls];
}
- return this.addToFileList('video', key, urls, { buffer: null, asBlob: asBlob });
+ return this.addToFileList('video', key, urls, { buffer: null, asBlob: asBlob, loadEvent: loadEvent });
},
@@ -56276,53 +57250,56 @@ Phaser.Loader.prototype = {
*
* @method Phaser.Loader#bitmapFont
* @param {string} key - Unique asset key of the bitmap font.
- * @param {string} [textureURL] - URL of the Bitmap Font texture file. If undefined or `null` the url will be set to `.png`, i.e. if `key` was "megaFont" then the URL will be "megaFont.png".
- * @param {string} [xmlURL] - URL of the Bitmap Font data file. If undefined or `null` and no data is given the url will be set to `.xml`, i.e. if `key` was "megaFont" then the URL will be "megaFont.xml".
- * @param {object} [xmlData] - An optional XML data object.
+ * @param {string} textureURL - URL of the Bitmap Font texture file. If undefined or `null` the url will be set to `.png`, i.e. if `key` was "megaFont" then the URL will be "megaFont.png".
+ * @param {string} atlasURL - URL of the Bitmap Font atlas file (xml/json).
+ * @param {object} atlasData - An optional Bitmap Font atlas in string form (stringified xml/json).
* @param {number} [xSpacing=0] - If you'd like to add additional horizontal spacing between the characters then set the pixel value here.
* @param {number} [ySpacing=0] - If you'd like to add additional vertical spacing between the lines then set the pixel value here.
* @return {Phaser.Loader} This Loader instance.
*/
- bitmapFont: function (key, textureURL, xmlURL, xmlData, xSpacing, ySpacing) {
-
+ bitmapFont: function (key, textureURL, atlasURL, atlasData, xSpacing, ySpacing) {
if (typeof textureURL === 'undefined' || textureURL === null)
{
textureURL = key + '.png';
}
- if (typeof xmlURL === 'undefined') { xmlURL = null; }
- if (typeof xmlData === 'undefined') { xmlData = null; }
+ if (typeof atlasURL === 'undefined') { atlasURL = null; }
+ if (typeof atlasData === 'undefined') { atlasData = null; }
if (typeof xSpacing === 'undefined') { xSpacing = 0; }
if (typeof ySpacing === 'undefined') { ySpacing = 0; }
- if (!xmlURL && !xmlData)
+ // A URL to a json/xml atlas has been given
+ if (atlasURL)
{
- xmlURL = key + '.xml';
- }
-
- // A URL to a json/xml file has been given
- if (xmlURL)
- {
- this.addToFileList('bitmapfont', key, textureURL, { xmlURL: xmlURL, xSpacing: xSpacing, ySpacing: ySpacing });
+ this.addToFileList('bitmapfont', key, textureURL, { atlasURL: atlasURL, xSpacing: xSpacing, ySpacing: ySpacing });
}
else
{
- // An xml string or object has been given
- if (typeof xmlData === 'string')
+ // A stringified xml/json atlas has been given
+ if (typeof atlasData === 'string')
{
- var xml = this.parseXml(xmlData);
+ var json, xml;
- if (!xml)
+ try
{
- throw new Error("Phaser.Loader. Invalid Bitmap Font XML given");
+ json = JSON.parse(atlasData);
+ }
+ catch ( e )
+ {
+ xml = this.parseXml(atlasData);
}
- this.addToFileList('bitmapfont', key, textureURL, { xmlURL: null, xmlData: xml, xSpacing: xSpacing, ySpacing: ySpacing });
+ if (!xml && !json)
+ {
+ throw new Error("Phaser.Loader. Invalid Bitmap Font atlas given");
+ }
+
+ this.addToFileList('bitmapfont', key, textureURL, { atlasURL: null, atlasData: json || xml,
+ atlasType: (!!json ? 'json' : 'xml'), xSpacing: xSpacing, ySpacing: ySpacing });
}
}
return this;
-
},
/**
@@ -56951,7 +57928,7 @@ Phaser.Loader.prototype = {
break;
case "audiosprite":
- this.audio(file.key, file.urls, file.jsonURL);
+ this.audiosprite(file.key, file.urls, file.jsonURL, file.jsonData, file.autoDecode);
break;
case "tilemap":
@@ -56963,7 +57940,7 @@ Phaser.Loader.prototype = {
break;
case "bitmapFont":
- this.bitmapFont(file.key, file.textureURL, file.xmlURL, file.xmlData, file.xSpacing, file.ySpacing);
+ this.bitmapFont(file.key, file.textureURL, file.atlasURL, file.atlasData, file.xSpacing, file.ySpacing);
break;
case "atlasJSONArray":
@@ -57176,42 +58153,23 @@ Phaser.Loader.prototype = {
file.data.controls = false;
file.data.autoplay = false;
- var playThroughEvent = function () {
- // console.log('playThroughEvent', file.data.name);
- file.data.removeEventListener('canplaythrough', playThroughEvent, false);
+ var videoLoadEvent = function () {
+
+ file.data.removeEventListener(file.loadEvent, videoLoadEvent, false);
file.data.onerror = null;
file.data.canplay = true;
- // Why does this cycle through games?
Phaser.GAMES[_this.game.id].load.fileComplete(file);
- };
- var loadedDataEvent = function () {
- // console.log('loadedDataEvent', file.data.name);
- file.data.removeEventListener('loadeddata', loadedDataEvent, false);
- file.data.onerror = null;
- file.data.canplay = false;
- // Why does this cycle through games?
- Phaser.GAMES[_this.game.id].load.fileComplete(file);
};
file.data.onerror = function () {
- file.data.removeEventListener('canplaythrough', playThroughEvent, false);
- file.data.removeEventListener('loadeddata', playThroughEvent, false);
+ file.data.removeEventListener(file.loadEvent, videoLoadEvent, false);
file.data.onerror = null;
file.data.canplay = false;
_this.fileError(file);
};
-
- if (this.game.device.firefox)
- {
- // I wish there was another easier way, but I'm not aware of it yet
- file.data.addEventListener('loadeddata', loadedDataEvent, false);
- }
- else
- {
- // file.data.addEventListener('canplay', playThroughEvent, false);
- file.data.addEventListener('canplaythrough', playThroughEvent, false);
- }
+
+ file.data.addEventListener(file.loadEvent, videoLoadEvent, false);
file.data.src = this.transformUrl(file.url, file);
file.data.load();
@@ -57613,15 +58571,35 @@ Phaser.Loader.prototype = {
case 'bitmapfont':
- if (!file.xmlURL)
+ if (!file.atlasURL)
{
- this.game.cache.addBitmapFont(file.key, file.url, file.data, file.xmlData, file.xSpacing, file.ySpacing);
+ this.game.cache.addBitmapFont(file.key, file.url, file.data, file.atlasData, file.atlasType, file.xSpacing, file.ySpacing);
}
else
{
// Load the XML before carrying on with the next file
loadNext = false;
- this.xhrLoad(file, this.transformUrl(file.xmlURL, file), 'text', this.xmlLoadComplete);
+ this.xhrLoad(file, this.transformUrl(file.atlasURL, file), 'text', function (file, xhr) {
+ var json;
+
+ try
+ {
+ // Try to parse as JSON, if it fails, then it's hopefully XML
+ json = JSON.parse(xhr.responseText);
+ }
+ catch (e) {}
+
+ if (!!json)
+ {
+ file.atlasType = 'json';
+ this.jsonLoadComplete(file, xhr);
+ }
+ else
+ {
+ file.atlasType = 'xml';
+ this.xmlLoadComplete(file, xhr);
+ }
+ });
}
break;
@@ -57722,6 +58700,10 @@ Phaser.Loader.prototype = {
{
this.game.cache.addTilemap(file.key, file.url, data, file.format);
}
+ else if (file.type === 'bitmapfont')
+ {
+ this.game.cache.addBitmapFont(file.key, file.url, file.data, data, file.atlasType, file.xSpacing, file.ySpacing);
+ }
else if (file.type === 'json')
{
this.game.cache.addJSON(file.key, file.url, data);
@@ -57732,7 +58714,6 @@ Phaser.Loader.prototype = {
}
this.asyncComplete(file);
-
},
/**
@@ -57777,7 +58758,7 @@ Phaser.Loader.prototype = {
if (file.type === 'bitmapfont')
{
- this.game.cache.addBitmapFont(file.key, file.url, file.data, xml, file.xSpacing, file.ySpacing);
+ this.game.cache.addBitmapFont(file.key, file.url, file.data, xml, file.atlasType, file.xSpacing, file.ySpacing);
}
else if (file.type === 'textureatlas')
{
@@ -57970,7 +58951,7 @@ Phaser.Loader.prototype.constructor = Phaser.Loader;
Phaser.LoaderParser = {
/**
- * Parse a Bitmap Font from an XML file.
+ * Alias for xmlBitmapFont, for backwards compatiblity.
*
* @method Phaser.LoaderParser.bitmapFont
* @param {Phaser.Game} game - A reference to the current game.
@@ -57980,7 +58961,20 @@ Phaser.LoaderParser = {
* @param {number} [ySpacing=0] - Additional vertical spacing between the characters.
*/
bitmapFont: function (game, xml, cacheKey, xSpacing, ySpacing) {
+ this.xmlBitmapFont(game, xml, cacheKey, xSpacing, ySpacing);
+ },
+ /**
+ * Parse a Bitmap Font from an XML file.
+ *
+ * @method Phaser.LoaderParser.xmlBitmapFont
+ * @param {Phaser.Game} game - A reference to the current game.
+ * @param {object} xml - XML data you want to parse.
+ * @param {string} cacheKey - The key of the texture this font uses in the cache.
+ * @param {number} [xSpacing=0] - Additional horizontal spacing between the characters.
+ * @param {number} [ySpacing=0] - Additional vertical spacing between the characters.
+ */
+ xmlBitmapFont: function (game, xml, cacheKey, xSpacing, ySpacing) {
var data = {};
var info = xml.getElementsByTagName('info')[0];
var common = xml.getElementsByTagName('common')[0];
@@ -57996,19 +58990,15 @@ Phaser.LoaderParser = {
{
var charCode = parseInt(letters[i].getAttribute('id'), 10);
- var textureRect = new PIXI.Rectangle(
- parseInt(letters[i].getAttribute('x'), 10),
- parseInt(letters[i].getAttribute('y'), 10),
- parseInt(letters[i].getAttribute('width'), 10),
- parseInt(letters[i].getAttribute('height'), 10)
- );
-
data.chars[charCode] = {
+ x: parseInt(letters[i].getAttribute('x'), 10),
+ y: parseInt(letters[i].getAttribute('y'), 10),
+ width: parseInt(letters[i].getAttribute('width'), 10),
+ height: parseInt(letters[i].getAttribute('height'), 10),
xOffset: parseInt(letters[i].getAttribute('xoffset'), 10),
yOffset: parseInt(letters[i].getAttribute('yoffset'), 10),
xAdvance: parseInt(letters[i].getAttribute('xadvance'), 10) + xSpacing,
- kerning: {},
- texture: PIXI.TextureCache[cacheKey] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], textureRect)
+ kerning: {}
};
}
@@ -58023,10 +59013,76 @@ Phaser.LoaderParser = {
data.chars[second].kerning[first] = amount;
}
- PIXI.BitmapText.fonts[cacheKey] = data;
+ this.finalizeBitmapFont(cacheKey, data);
+ },
+ /**
+ * Parse a Bitmap Font from a JSON file.
+ *
+ * @method Phaser.LoaderParser.jsonBitmapFont
+ * @param {Phaser.Game} game - A reference to the current game.
+ * @param {object} json - JSON data you want to parse.
+ * @param {string} cacheKey - The key of the texture this font uses in the cache.
+ * @param {number} [xSpacing=0] - Additional horizontal spacing between the characters.
+ * @param {number} [ySpacing=0] - Additional vertical spacing between the characters.
+ */
+ jsonBitmapFont: function (game, json, cacheKey, xSpacing, ySpacing) {
+ var data = {
+ font: json.font.info._font,
+ size: parseInt(json.font.info._size, 10),
+ lineHeight: parseInt(json.font.common._lineHeight, 10) + ySpacing,
+ chars: {}
+ };
+
+ json.font.chars["char"].forEach(
+ function parseChar(letter) {
+ var charCode = parseInt(letter._id, 10);
+
+ data.chars[charCode] = {
+ x: parseInt(letter._x, 10),
+ y: parseInt(letter._y, 10),
+ width: parseInt(letter._width, 10),
+ height: parseInt(letter._height, 10),
+ xOffset: parseInt(letter._xoffset, 10),
+ yOffset: parseInt(letter._yoffset, 10),
+ xAdvance: parseInt(letter._xadvance, 10) + xSpacing,
+ kerning: {}
+ };
+ }
+ );
+
+ json.font.kernings.kerning.forEach(
+ function parseKerning(kerning) {
+ data.chars[kerning._second].kerning[kerning._first] = parseInt(kerning._amount, 10);
+ }
+ );
+
+ this.finalizeBitmapFont(cacheKey, data);
+ },
+
+ /**
+ * Finalize Bitmap Font parsing.
+ *
+ * @method Phaser.LoaderParser.finalizeBitmapFont
+ * @private
+ * @param {string} cacheKey - The key of the texture this font uses in the cache.
+ * @param {object} bitmapFontData - Pre-parsed bitmap font data.
+ */
+ finalizeBitmapFont: function (cacheKey, bitmapFontData) {
+ Object.keys(bitmapFontData.chars).forEach(
+ function addTexture(charCode) {
+ var letter = bitmapFontData.chars[charCode];
+ var textureRect = new PIXI.Rectangle(
+ letter.x, letter.y,
+ letter.width, letter.height
+ );
+
+ letter.texture = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], textureRect);
+ }
+ );
+
+ PIXI.BitmapText.fonts[cacheKey] = bitmapFontData;
}
-
};
/**
@@ -58485,6 +59541,7 @@ Phaser.Sound = function (game, key, volume, loop, connect) {
* @private
*/
this._onDecodedEventDispatched = false;
+
};
Phaser.Sound.prototype = {
@@ -58518,7 +59575,7 @@ Phaser.Sound.prototype = {
*/
addMarker: function (name, start, duration, volume, loop) {
- if (typeof volume === 'undefined') { volume = 1; }
+ if (typeof volume === 'undefined' || volume === null) { volume = 1; }
if (typeof loop === 'undefined') { loop = false; }
this.markers[name] = {
@@ -58587,8 +59644,6 @@ Phaser.Sound.prototype = {
{
if (this.loop)
{
- // console.log('Sound update loop: ' + this.currentTime + ' m: ' + this.currentMarker);
-
// won't work with markers, needs to reset the position
this.onLoop.dispatch(this);
@@ -58614,8 +59669,6 @@ Phaser.Sound.prototype = {
}
else
{
- // console.log('Sound update stop: ' + this.currentTime + ' m: ' + this.currentMarker);
-
if (this.loop)
{
this.onLoop.dispatch(this);
@@ -58659,8 +59712,6 @@ Phaser.Sound.prototype = {
if (typeof marker === 'undefined' || marker === false || marker === null) { marker = ''; }
if (typeof forceRestart === 'undefined') { forceRestart = true; }
- // console.log('Sound play: ' + marker);
-
if (this.isPlaying && !this.allowMultiple && !forceRestart && !this.override)
{
// Use Restart instead
@@ -58671,6 +59722,15 @@ Phaser.Sound.prototype = {
{
if (this.usingWebAudio)
{
+ if (this.externalNode)
+ {
+ this._sound.disconnect(this.externalNode);
+ }
+ else
+ {
+ this._sound.disconnect(this.gainNode);
+ }
+
if (typeof this._sound.stop === 'undefined')
{
this._sound.noteOff(0);
@@ -58725,8 +59785,6 @@ Phaser.Sound.prototype = {
this._tempPosition = this.position;
this._tempVolume = this.volume;
this._tempLoop = this.loop;
-
- // console.log('Marker pos: ' + this.position + ' duration: ' + this.duration + ' ms: ' + this.durationMS);
}
else
{
@@ -58758,14 +59816,7 @@ Phaser.Sound.prototype = {
// Does the sound need decoding?
if (this.game.cache.isSoundDecoded(this.key))
{
- // Do we need to do this every time we play? How about just if the buffer is empty?
- if (this._buffer === null)
- {
- this._buffer = this.game.cache.getSoundData(this.key);
- }
-
this._sound = this.context.createBufferSource();
- this._sound.buffer = this._buffer;
if (this.externalNode)
{
@@ -58776,6 +59827,9 @@ Phaser.Sound.prototype = {
this._sound.connect(this.gainNode);
}
+ this._buffer = this.game.cache.getSoundData(this.key);
+ this._sound.buffer = this._buffer;
+
if (this.loop && marker === '')
{
this._sound.loop = true;
@@ -58788,11 +59842,8 @@ Phaser.Sound.prototype = {
this.totalDuration = this._sound.buffer.duration;
- // console.log('dur', this._sound.buffer.duration, Math.ceil(this._sound.buffer.duration * 1000));
-
if (this.duration === 0)
{
- // console.log('duration reset');
this.duration = this.totalDuration;
this.durationMS = Math.ceil(this.totalDuration * 1000);
}
@@ -58801,13 +59852,12 @@ Phaser.Sound.prototype = {
if (typeof this._sound.start === 'undefined')
{
this._sound.noteGrainOn(0, this.position, this.duration);
- //this._sound.noteOn(0); // the zero is vitally important, crashes iOS6 without it
}
else
{
if (this.loop && marker === '')
{
- this._sound.start(0);
+ this._sound.start(0, 0);
}
else
{
@@ -58869,8 +59919,6 @@ Phaser.Sound.prototype = {
this.currentTime = 0;
this.stopTime = this.startTime + this.durationMS;
this.onPlay.dispatch(this);
-
- // console.log('stopTime: ' + this.stopTime + ' rs: ' + this._sound.readyState);
}
else
{
@@ -58965,7 +60013,22 @@ Phaser.Sound.prototype = {
}
else
{
- this._sound.start(0, p, duration);
+ if (this.loop && this.game.device.chrome)
+ {
+ // Handle chrome bug: https://code.google.com/p/chromium/issues/detail?id=457099
+ if (this.game.device.chromeVersion === 42)
+ {
+ this._sound.start(0);
+ }
+ else
+ {
+ this._sound.start(0, p);
+ }
+ }
+ else
+ {
+ this._sound.start(0, p, duration);
+ }
}
}
else
@@ -58992,6 +60055,15 @@ Phaser.Sound.prototype = {
{
if (this.usingWebAudio)
{
+ if (this.externalNode)
+ {
+ this._sound.disconnect(this.externalNode);
+ }
+ else
+ {
+ this._sound.disconnect(this.gainNode);
+ }
+
if (typeof this._sound.stop === 'undefined')
{
this._sound.noteOff(0);
@@ -59205,20 +60277,24 @@ Object.defineProperty(Phaser.Sound.prototype, "mute", {
set: function (value) {
- value = value || null;
+ value = value || false;
+
+ if (value === this._muted)
+ {
+ return;
+ }
if (value)
{
this._muted = true;
+ this._muteVolume = this._tempVolume;
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;
}
}
@@ -59255,19 +60331,28 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", {
set: function (value) {
+ // Causes an Index size error in Firefox if you don't clamp the value
+ if (this.game.device.firefox && this.usingAudioTag)
+ {
+ value = this.game.math.clamp(value, 0, 1);
+ }
+
+ if (this._muted)
+ {
+ this._muteVolume = value;
+ return;
+ }
+
+ this._tempVolume = value;
+ this._volume = value;
+
if (this.usingWebAudio)
{
- this._volume = value;
this.gainNode.gain.value = value;
}
else if (this.usingAudioTag && this._sound)
{
- // Causes an Index size error in Firefox if you don't clamp the value
- if (value >= 0 && value <= 1)
- {
- this._volume = value;
- this._sound.volume = value;
- }
+ this._sound.volume = value;
}
}
@@ -59289,6 +60374,10 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", {
* of AudioContext nodes. If this is the case create a global var called PhaserGlobal on the window object before creating the game. The active
* AudioContext will then be saved to window.PhaserGlobal.audioContext when the Phaser game is destroyed, and re-used when it starts again.
*
+* Mobile warning: There are some mobile devices (certain iPad 2 and iPad Mini revisions) that cannot play 48000 Hz audio.
+* When they try to play the audio becomes extremely distorted and buzzes, eventually crashing the sound system.
+* The solution is to use a lower encoding rate such as 44100 Hz.
+*
* @class Phaser.SoundManager
* @constructor
* @param {Phaser.Game} game - Reference to the current game instance.
@@ -60014,7 +61103,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "mute", {
set: function (value) {
- value = value || null;
+ value = value || false;
if (value)
{
@@ -60169,7 +61258,7 @@ Phaser.Utils.Debug = function (game) {
this.currentY = 0;
/**
- * @property {number} currentAlpha - The current alpha the debug information will be rendered at.
+ * @property {number} currentAlpha - The alpha of the Debug context, set before all debug information is rendered to it.
* @default
*/
this.currentAlpha = 1;
@@ -60264,7 +61353,6 @@ Phaser.Utils.Debug.prototype = {
this.currentX = x;
this.currentY = y;
this.currentColor = color;
- this.currentAlpha = this.context.globalAlpha;
this.columnWidth = columnWidth;
this.dirty = true;
@@ -60274,7 +61362,7 @@ Phaser.Utils.Debug.prototype = {
this.context.strokeStyle = color;
this.context.fillStyle = color;
this.context.font = this.font;
- this.context.globalAlpha = 1;
+ this.context.globalAlpha = this.currentAlpha;
},
@@ -60287,7 +61375,6 @@ Phaser.Utils.Debug.prototype = {
stop: function () {
this.context.restore();
- this.context.globalAlpha = this.currentAlpha;
},
@@ -60536,18 +61623,23 @@ Phaser.Utils.Debug.prototype = {
this.rectangle(bounds, color, filled);
},
+
/**
- * Renders the Rope's segments. Note: This is really expensive as it has to calculate new segments everytime you call it
+ * Renders the Rope's segments. Note: This is really expensive as it has to calculate new segments every time you call it
*
* @method Phaser.Utils.Debug#ropeSegments
* @param {Phaser.Rope} rope - The rope to display the segments of.
* @param {string} [color] - Color of the debug info to be rendered (format is css color string).
* @param {boolean} [filled=true] - Render the rectangle as a fillRect (default, true) or a strokeRect (false)
*/
- ropeSegments: function(rope, color, filled) {
+ ropeSegments: function (rope, color, filled) {
+
var segments = rope.segments;
+
+ var self = this;
+
segments.forEach(function(segment) {
- this.rectangle(segment, color, filled);
+ self.rectangle(segment, color, filled);
}, this);
},
@@ -61190,15 +62282,6 @@ Object.defineProperty(Phaser.ArraySet.prototype, "next", {
Phaser.ArraySet.prototype.constructor = Phaser.ArraySet;
-/**
-* Phaser.ArrayList is a deprecated alias for Phaser.ArraySet.
-*
-* @class Phaser.ArrayList
-* @constructor
-* @deprecated 2.2.0 - Use {@link Phaser.ArraySet} instead.
-*/
-Phaser.ArrayList = Phaser.ArraySet;
-
/**
* @author Richard Davey
* @copyright 2015 Photon Storm Ltd.
@@ -64085,7 +65168,7 @@ Phaser.Physics.Arcade.prototype = {
}
else if (object2.physicsType === Phaser.TILEMAPLAYER)
{
- this.collideSpriteVsTilemapLayer(object1, object2, collideCallback, processCallback, callbackContext);
+ this.collideSpriteVsTilemapLayer(object1, object2, collideCallback, processCallback, callbackContext, overlapOnly);
}
}
// GROUPS
@@ -66081,7 +67164,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
* @param {object} callbackContext - The context in which to run the callbacks.
* @param {boolean} overlapOnly - Just run an overlap or a full collision.
*/
- collideSpriteVsTilemapLayer: function (sprite, tilemapLayer, collideCallback, processCallback, callbackContext) {
+ collideSpriteVsTilemapLayer: function (sprite, tilemapLayer, collideCallback, processCallback, callbackContext, overlapOnly) {
if (!sprite.body)
{
@@ -66106,7 +67189,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
{
if (processCallback.call(callbackContext, sprite, mapData[i]))
{
- if (this.separateTile(i, sprite.body, mapData[i]))
+ if (this.separateTile(i, sprite.body, mapData[i], overlapOnly))
{
this._total++;
@@ -66119,7 +67202,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
}
else
{
- if (this.separateTile(i, sprite.body, mapData[i]))
+ if (this.separateTile(i, sprite.body, mapData[i], overlapOnly))
{
this._total++;
@@ -66145,7 +67228,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
* @param {object} callbackContext - The context in which to run the callbacks.
* @param {boolean} overlapOnly - Just run an overlap or a full collision.
*/
- collideGroupVsTilemapLayer: function (group, tilemapLayer, collideCallback, processCallback, callbackContext) {
+ collideGroupVsTilemapLayer: function (group, tilemapLayer, collideCallback, processCallback, callbackContext, overlapOnly) {
if (group.length === 0)
{
@@ -66156,7 +67239,7 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
{
if (group.children[i].exists)
{
- this.collideSpriteVsTilemapLayer(group.children[i], tilemapLayer, collideCallback, processCallback, callbackContext);
+ this.collideSpriteVsTilemapLayer(group.children[i], tilemapLayer, collideCallback, processCallback, callbackContext, overlapOnly);
}
}
@@ -66171,14 +67254,24 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = {
* @param {Phaser.Tile} tile - The tile to collide against.
* @return {boolean} Returns true if the body was separated, otherwise false.
*/
- separateTile: function (i, body, tile) {
+ separateTile: function (i, body, tile, overlapOnly) {
+
+ if (!body.enable)
+ {
+ return false;
+ }
// We re-check for collision in case body was separated in a previous step
- if (!body.enable || !tile.intersects(body.position.x, body.position.y, body.right, body.bottom))
+ if (!tile.intersects(body.position.x, body.position.y, body.right, body.bottom))
{
// no collision so bail out (separated in a previous step)
return false;
}
+ else if (overlapOnly)
+ {
+ // There is an overlap, and we don't need to separate. Bail.
+ return true;
+ }
// They overlap. Any custom callbacks?
@@ -66452,6 +67545,137 @@ Phaser.Utils.mixinPrototype(Phaser.Physics.Arcade.prototype, Phaser.Physics.Arca
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
+/**
+* An Image Collection is a special tileset containing mulitple images, with no slicing into each image.
+*
+* Image Collections are normally created automatically when Tiled data is loaded.
+*
+* @class Phaser.ImageCollection
+* @constructor
+* @param {string} name - The name of the image collection in the map data.
+* @param {integer} firstgid - The first image index this image collection contains.
+* @param {integer} [width=32] - Width of widest image (in pixels).
+* @param {integer} [height=32] - Height of tallest image (in pixels).
+* @param {integer} [margin=0] - The margin around all images in the collection (in pixels).
+* @param {integer} [spacing=0] - The spacing between each image in the collection (in pixels).
+* @param {object} [properties={}] - Custom Image Collection properties.
+*/
+Phaser.ImageCollection = function (name, firstgid, width, height, margin, spacing, properties) {
+
+ if (typeof width === 'undefined' || width <= 0) { width = 32; }
+ if (typeof height === 'undefined' || height <= 0) { height = 32; }
+ if (typeof margin === 'undefined') { margin = 0; }
+ if (typeof spacing === 'undefined') { spacing = 0; }
+
+ /**
+ * The name of the Image Collection.
+ * @property {string} name
+ */
+ this.name = name;
+
+ /**
+ * The Tiled firstgid value.
+ * This is the starting index of the first image index this Image Collection contains.
+ * @property {integer} firstgid
+ */
+ this.firstgid = firstgid | 0;
+
+ /**
+ * The width of the widest image (in pixels).
+ * @property {integer} imageWidth
+ * @readonly
+ */
+ this.imageWidth = width | 0;
+
+ /**
+ * The height of the tallest image (in pixels).
+ * @property {integer} imageHeight
+ * @readonly
+ */
+ this.imageHeight = height | 0;
+
+ /**
+ * The margin around the images in the collection (in pixels).
+ * Use `setSpacing` to change.
+ * @property {integer} imageMarge
+ * @readonly
+ */
+ // Modified internally
+ this.imageMargin = margin | 0;
+
+ /**
+ * The spacing between each image in the collection (in pixels).
+ * Use `setSpacing` to change.
+ * @property {integer} imageSpacing
+ * @readonly
+ */
+ this.imageSpacing = spacing | 0;
+
+ /**
+ * Image Collection-specific properties that are typically defined in the Tiled editor.
+ * @property {object} properties
+ */
+ this.properties = properties || {};
+
+ /**
+ * The cached images that are a part of this collection.
+ * @property {array} images
+ * @readonly
+ */
+ // Modified internally
+ this.images = [];
+
+ /**
+ * The total number of images in the image collection.
+ * @property {integer} total
+ * @readonly
+ */
+ // Modified internally
+ this.total = 0;
+};
+
+Phaser.ImageCollection.prototype = {
+
+ /**
+ * Returns true if and only if this image collection contains the given image index.
+ *
+ * @method Phaser.ImageCollection#containsImageIndex
+ * @param {integer} imageIndex - The image index to search for.
+ * @return {boolean} True if this Image Collection contains the given index.
+ */
+ containsImageIndex: function (imageIndex) {
+
+ return (
+ imageIndex >= this.firstgid &&
+ imageIndex < (this.firstgid + this.total)
+ );
+
+ },
+
+ /**
+ * Add an image to this Image Collection.
+ *
+ * @method Phaser.ImageCollection#addImage
+ * @param {integer} gid - The gid of the image in the Image Collection.
+ * @param {string} image - The the key of the image in the Image Collection and in the cache.
+ */
+ addImage: function (gid, image) {
+
+ this.images.push({ gid: gid, image: image });
+ this.total++;
+
+ }
+
+};
+
+Phaser.ImageCollection.prototype.constructor = Phaser.ImageCollection;
+
+/**
+* @author Richard Davey
+* @copyright 2015 Photon Storm Ltd.
+* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
+*/
+
/**
* A Tile is a representation of a single tile within the Tilemap.
*
@@ -66956,6 +68180,11 @@ Phaser.Tilemap = function (game, key, tileWidth, tileHeight, width, height) {
* @property {array} tilesets - An array of Tilesets.
*/
this.tilesets = data.tilesets;
+
+ /**
+ * @property {array} imagecollections - An array of Image Collections.
+ */
+ this.imagecollections = data.imagecollections;
/**
* @property {array} tiles - The super array of Tiles.
@@ -67099,7 +68328,9 @@ Phaser.Tilemap.prototype = {
*
* @method Phaser.Tilemap#addTilesetImage
* @param {string} tileset - The name of the tileset as specified in the map data.
- * @param {string} [key] - The key of the Phaser.Cache image used for this tileset. If not specified it will look for an image with a key matching the tileset parameter.
+ * @param {string|Phaser.BitmapData} [key] - The key of the Phaser.Cache image used for this tileset.
+ * If `undefined` or `null` it will look for an image with a key matching the tileset parameter.
+ * You can also pass in a BitmapData which can be used instead of an Image.
* @param {number} [tileWidth=32] - The width of the tiles in the Tileset Image. If not given it will default to the map.tileWidth value, if that isn't set then 32.
* @param {number} [tileHeight=32] - The height of the tiles in the Tileset Image. If not given it will default to the map.tileHeight value, if that isn't set then 32.
* @param {number} [tileMargin=0] - The width of the tiles in the Tileset Image. If not given it will default to the map.tileWidth value.
@@ -67109,6 +68340,7 @@ Phaser.Tilemap.prototype = {
*/
addTilesetImage: function (tileset, key, tileWidth, tileHeight, tileMargin, tileSpacing, gid) {
+ if (typeof tileset === 'undefined') { return null; }
if (typeof tileWidth === 'undefined') { tileWidth = this.tileWidth; }
if (typeof tileHeight === 'undefined') { tileHeight = this.tileHeight; }
if (typeof tileMargin === 'undefined') { tileMargin = 0; }
@@ -67126,45 +68358,46 @@ Phaser.Tilemap.prototype = {
tileHeight = 32;
}
- if (typeof key === 'undefined')
- {
- if (typeof tileset === 'string')
- {
- key = tileset;
+ var img = null;
- if (!this.game.cache.checkImageKey(key))
- {
- console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "' + key + '"');
- return null;
- }
- }
- else
- {
- return null;
- }
+ if (typeof key === 'undefined' || key === null)
+ {
+ key = tileset;
}
- if (typeof tileset === 'string')
+ if (key instanceof Phaser.BitmapData)
{
- tileset = this.getTilesetIndex(tileset);
-
- if (tileset === null && this.format === Phaser.Tilemap.TILED_JSON)
- {
- console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "' + key + '"');
- return null;
- }
- }
-
- if (this.tilesets[tileset])
- {
- this.tilesets[tileset].setImage(this.game.cache.getImage(key));
- return this.tilesets[tileset];
+ img = key.canvas;
}
else
{
- var newSet = new Phaser.Tileset(key, gid, tileWidth, tileHeight, tileMargin, tileSpacing, {});
+ if (!this.game.cache.checkImageKey(key))
+ {
+ console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "' + key + '"');
+ return null;
+ }
- newSet.setImage(this.game.cache.getImage(key));
+ img = this.game.cache.getImage(key);
+ }
+
+ var idx = this.getTilesetIndex(tileset);
+
+ if (idx === null && this.format === Phaser.Tilemap.TILED_JSON)
+ {
+ console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "' + key + '"');
+ return null;
+ }
+
+ if (this.tilesets[idx])
+ {
+ this.tilesets[idx].setImage(img);
+ return this.tilesets[idx];
+ }
+ else
+ {
+ var newSet = new Phaser.Tileset(tileset, gid, tileWidth, tileHeight, tileMargin, tileSpacing, {});
+
+ newSet.setImage(img);
this.tilesets.push(newSet);
@@ -68797,15 +70030,7 @@ Object.defineProperty(Phaser.Tilemap.prototype, "layer", {
* By default TilemapLayers have fixedToCamera set to `true`. Changing this will break Camera follow and scrolling behavior.
*
* @class Phaser.TilemapLayer
-* @extends PIXI.Sprite
-* @extends Phaser.Component.Core
-* @extends Phaser.Component.Bounds
-* @extends Phaser.Component.BringToTop
-* @extends Phaser.Component.Destroy
-* @extends Phaser.Component.FixedToCamera
-* @extends Phaser.Component.InputEnabled
-* @extends Phaser.Component.Reset
-* @extends Phaser.Component.Smoothed
+* @extends Phaser.Sprite
* @constructor
* @param {Phaser.Game} game - Game reference to the currently running game.
* @param {Phaser.Tilemap} tilemap - The tilemap to which this layer belongs.
@@ -68818,9 +70043,7 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
width |= 0;
height |= 0;
- PIXI.Sprite.call(this, PIXI.TextureCache['__default']);
-
- Phaser.Component.Core.init.call(this, game, 0, 0, null, null);
+ Phaser.Sprite.call(this, game, 0, 0);
/**
* The Tilemap to which this layer is bound.
@@ -68840,7 +70063,7 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
/**
* The layer object within the Tilemap that this layer represents.
- * @property {Phaser.TileLayer} layer
+ * @property {object} layer
* @protected
* @readonly
*/
@@ -68860,26 +70083,7 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
*/
this.context = this.canvas.getContext('2d');
- /**
- * Required Pixi var.
- * @property {PIXI.BaseTexture} baseTexture
- * @protected
- */
- this.baseTexture = new PIXI.BaseTexture(this.canvas);
-
- /**
- * Required Pixi var.
- * @property {PIXI.Texture} texture
- * @protected
- */
- this.texture = new PIXI.Texture(this.baseTexture);
-
- /**
- * Dimensions of the renderable area.
- * @property {Phaser.Frame} textureFrame
- * @protected
- */
- this.textureFrame = new Phaser.Frame(0, 0, 0, width, height, 'tilemapLayer', game.rnd.uuid());
+ this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas)));
/**
* The const type of this object.
@@ -68899,7 +70103,7 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
/**
* Settings that control standard (non-diagnostic) rendering.
*
- * @property {boolean} [enableScrollDelta=true] - Delta scroll rendering only draws tiles/edges as them come into view.
+ * @property {boolean} [enableScrollDelta=true] - Delta scroll rendering only draws tiles/edges as they come into view.
* This can greatly improve scrolling rendering performance, especially when there are many small tiles.
* It should only be disabled in rare cases.
*
@@ -68910,7 +70114,7 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
* @default
*/
this.renderSettings = {
- enableScrollDelta: true,
+ enableScrollDelta: false,
overdrawRatio: 0.20,
copyCanvas: null
};
@@ -69051,19 +70255,9 @@ Phaser.TilemapLayer = function (game, tilemap, index, width, height) {
};
-Phaser.TilemapLayer.prototype = Object.create(PIXI.Sprite.prototype);
+Phaser.TilemapLayer.prototype = Object.create(Phaser.Sprite.prototype);
Phaser.TilemapLayer.prototype.constructor = Phaser.TilemapLayer;
-Phaser.Component.Core.install.call(Phaser.TilemapLayer.prototype, [
- 'Bounds',
- 'BringToTop',
- 'Destroy',
- 'FixedToCamera',
- 'InputEnabled',
- 'Reset',
- 'Smoothed'
-]);
-
Phaser.TilemapLayer.prototype.preUpdateCore = Phaser.Component.Core.preUpdate;
/**
@@ -69115,8 +70309,6 @@ Phaser.TilemapLayer.prototype.postUpdate = function () {
Phaser.Component.FixedToCamera.postUpdate.call(this);
- // this.postUpdateCore();
-
// Stops you being able to auto-scroll the camera if it's not following a sprite
var camera = this.game.camera;
@@ -69127,6 +70319,44 @@ Phaser.TilemapLayer.prototype.postUpdate = function () {
};
+/**
+* Resizes the internal canvas and texture frame used by this TilemapLayer.
+*
+* This is an expensive call, so don't bind it to a window resize event! But instead call it at carefully
+* selected times.
+*
+* Be aware that no validation of the new sizes takes place and the current map scroll coordinates are not
+* modified either. You will have to handle both of these things from your game code if required.
+*
+* @method Phaser.TilemapLayer#resize
+* @param {number} width - The new width of the TilemapLayer
+* @param {number} height - The new height of the TilemapLayer
+*/
+Phaser.TilemapLayer.prototype.resize = function (width, height) {
+
+ this.canvas.width = width;
+ this.canvas.height = height;
+
+ this.texture.frame.resize(width, height);
+
+ this.texture.width = width;
+ this.texture.height = height;
+
+ this.texture.crop.width = width;
+ this.texture.crop.height = height;
+
+ this.texture.baseTexture.width = width;
+ this.texture.baseTexture.height = height;
+
+ this.texture.baseTexture.dirty();
+ this.texture.requiresUpdate = true;
+
+ this.texture._updateUvs();
+
+ this.dirty = true;
+
+};
+
/**
* Sets the world size to match the size of this layer.
*
@@ -69363,6 +70593,7 @@ Phaser.TilemapLayer.prototype.getTiles = function (x, y, width, height, collides
for (var wx = tx; wx < tx + tw; wx++)
{
var row = this.layer.data[wy];
+
if (row && row[wx])
{
if (fetchAll || row[wx].isInteresting(collides, interestingFace))
@@ -69377,49 +70608,6 @@ Phaser.TilemapLayer.prototype.getTiles = function (x, y, width, height, collides
};
-/**
-* If no valid tileset/image can be found for a tile, the tile is rendered as a rectangle using this as a fill value.
-*
-* Set to `null` to disable rendering anything for tiles without value tileset images.
-*
-* @property {?string} tileColor
-* @memberof Phaser.TilemapLayer
-* @default 'rgb(255, 255, 255)'
-* @deprecated Use `debugSettings.missingImageFill` instead.
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, 'tileColor', {
-
- get: function () {
- return this.debugSettings.missingImageFill;
- },
-
- set: function (value) {
- this.debugSettings.missingImageFill = value;
- }
-
-});
-
-/**
-* Flag controlling if the layer tiles wrap at the edges. Only works if the World size matches the Map size.
-*
-* @property {boolean} wrap
-* @memberof Phaser.TilemapLayer
-* @public
-* @default false
-*/
-Object.defineProperty(Phaser.TilemapLayer.prototype, "wrap", {
-
- get: function () {
- return this._wrap;
- },
-
- set: function (value) {
- this._wrap = value;
- this.dirty = true;
- }
-
-});
-
/**
* Returns the appropriate tileset for the index, updating the internal cache as required.
* This should only be called if `tilesets[index]` evaluates to undefined.
@@ -69429,8 +70617,8 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "wrap", {
* @param {integer} Tile index
* @return {Phaser.Tileset|null} Returns the associated tileset or null if there is no such mapping.
*/
-Phaser.TilemapLayer.prototype.resolveTileset = function (tileIndex)
-{
+Phaser.TilemapLayer.prototype.resolveTileset = function (tileIndex) {
+
var tilesets = this._mc.tilesets;
// Try for dense array if reasonable
@@ -69466,8 +70654,7 @@ Phaser.TilemapLayer.prototype.resolveTileset = function (tileIndex)
* @method Phaser.TilemapLayer#resetTilesetCache
* @public
*/
-Phaser.TilemapLayer.prototype.resetTilesetCache = function ()
-{
+Phaser.TilemapLayer.prototype.resetTilesetCache = function () {
var tilesets = this._mc.tilesets;
@@ -69485,7 +70672,7 @@ Phaser.TilemapLayer.prototype.resetTilesetCache = function ()
* @param {number} [xScale=1] - The scale factor along the X-plane
* @param {number} [yScale] - The scale factor along the Y-plane
*/
-Phaser.TilemapLayer.prototype.setScale = function(xScale, yScale) {
+Phaser.TilemapLayer.prototype.setScale = function (xScale, yScale) {
xScale = xScale || 1;
yScale = yScale || xScale;
@@ -69521,8 +70708,8 @@ Phaser.TilemapLayer.prototype.setScale = function(xScale, yScale) {
* @param {integer} x
* @param {integer} y
*/
-Phaser.TilemapLayer.prototype.shiftCanvas = function (context, x, y)
-{
+Phaser.TilemapLayer.prototype.shiftCanvas = function (context, x, y) {
+
var canvas = context.canvas;
var copyW = canvas.width - Math.abs(x);
var copyH = canvas.height - Math.abs(y);
@@ -69772,6 +70959,7 @@ Phaser.TilemapLayer.prototype.renderDeltaScroll = function (shiftX, shiftY) {
var trueBottom = Math.floor((renderH - 1 + scrollY) / th);
this.renderRegion(scrollX, scrollY, left, trueTop, right, trueBottom);
}
+
if (top <= bottom)
{
// Clear top or bottom edge
@@ -69790,8 +70978,7 @@ Phaser.TilemapLayer.prototype.renderDeltaScroll = function (shiftX, shiftY) {
* @method Phaser.TilemapLayer#renderFull
* @private
*/
-Phaser.TilemapLayer.prototype.renderFull = function ()
-{
+Phaser.TilemapLayer.prototype.renderFull = function () {
var scrollX = this._mc.scrollX;
var scrollY = this._mc.scrollY;
@@ -69893,7 +71080,7 @@ Phaser.TilemapLayer.prototype.render = function () {
this.renderDebug();
}
- this.baseTexture.dirty();
+ this.texture.baseTexture.dirty();
this.dirty = false;
@@ -70005,6 +71192,27 @@ Phaser.TilemapLayer.prototype.renderDebug = function () {
};
+/**
+* Flag controlling if the layer tiles wrap at the edges. Only works if the World size matches the Map size.
+*
+* @property {boolean} wrap
+* @memberof Phaser.TilemapLayer
+* @public
+* @default false
+*/
+Object.defineProperty(Phaser.TilemapLayer.prototype, "wrap", {
+
+ get: function () {
+ return this._wrap;
+ },
+
+ set: function (value) {
+ this._wrap = value;
+ this.dirty = true;
+ }
+
+});
+
/**
* Scrolls the map horizontally or returns the current x position.
*
@@ -70461,8 +71669,9 @@ Phaser.TilemapParser = {
map.images = images;
- // Tilesets
+ // Tilesets & Image Collections
var tilesets = [];
+ var imagecollections = [];
for (var i = 0; i < json.tilesets.length; i++)
{
@@ -70485,13 +71694,22 @@ Phaser.TilemapParser = {
}
else
{
- // TODO: Handle Tileset Image Collections (multiple images in a tileset, no slicing into each image)
- console.warn("Phaser.TilemapParser - Image Collection Tilesets are not support");
+ var newCollection = new Phaser.ImageCollection(set.name, set.firstgid, set.tilewidth, set.tileheight, set.margin, set.spacing, set.properties);
+
+ for (var i in set.tiles)
+ {
+ var image = set.tiles[i].image;
+ var gid = set.firstgid + parseInt(i, 10);
+ newCollection.addImage(gid, image);
+ }
+
+ imagecollections.push(newCollection);
}
}
map.tilesets = tilesets;
+ map.imagecollections = imagecollections;
// Objects & Collision Data (polylines, etc)
var objects = {};
@@ -70505,7 +71723,7 @@ Phaser.TilemapParser = {
{
var key = fields[k];
- if (obj[key])
+ if (typeof obj[key] !== 'undefined')
{
sliced[key] = obj[key];
}
@@ -70901,8 +72119,8 @@ Phaser.Tileset.prototype = {
*
* @method Phaser.Tileset#setSpacing
* @public
- * @param {integer} tileMargin - The margin around the tiles in the sheet (in pixels).
- * @param {integer} tileSpacing - The spacing between the tiles in the sheet (in pixels).
+ * @param {integer} [margin=0] - The margin around the tiles in the sheet (in pixels).
+ * @param {integer} [spacing=0] - The spacing between the tiles in the sheet (in pixels).
*/
setSpacing: function (margin, spacing) {
@@ -72004,9 +73222,9 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", {
* A Video object that takes a previously loaded Video from the Phaser Cache and handles playback of it.
*
* Alternatively it takes a getUserMedia feed from an active webcam and streams the contents of that to
-* the Video instead.
+* the Video instead (see `startMediaStream` method)
*
-* This can be applied to a Sprite as a texture. If multiple Sprites share the same Video texture and playback
+* The video can then be applied to a Sprite as a texture. If multiple Sprites share the same Video texture and playback
* changes (i.e. you pause the video, or seek to a new time) then this change will be seen across all Sprites simultaneously.
*
* Due to a bug in IE11 you cannot play a video texture to a Sprite in WebGL. For IE11 force Canvas mode.
@@ -72025,15 +73243,13 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", {
* @class Phaser.Video
* @constructor
* @param {Phaser.Game} game - A reference to the currently running game.
-* @param {string|null} key - The key of the video file in the Phaser.Cache that this Video object should use. If null a `getUserMedia` video stream will be established instead.
-* @param {boolean} [captureAudio=false] - If the key is null this controls if audio should be captured along with video in the video stream.
-* @param {integer} [width] - If the key is null this width is used to create the video stream. If not provided the video width will be set to the width of the webcam input source.
-* @param {integer} [height] - If the key is null this height is used to create the video stream. If not provided the video height will be set to the height of the webcam input source.
+* @param {string|null} [key=null] - The key of the video file in the Phaser.Cache that this Video object will play. Set to `null` or leave undefined if you wish to use a webcam as the source. See `startMediaStream` to start webcam capture.
+* @param {string|null} [url=null] - If the video hasn't been loaded then you can provide a full URL to the file here (make sure to set key to null)
*/
-Phaser.Video = function (game, key, captureAudio, width, height) {
+Phaser.Video = function (game, key, url) {
if (typeof key === 'undefined') { key = null; }
- if (typeof captureAudio === 'undefined') { captureAudio = false; }
+ if (typeof url === 'undefined') { url = null; }
/**
* @property {Phaser.Game} game - A reference to the currently running game.
@@ -72041,83 +73257,22 @@ Phaser.Video = function (game, key, captureAudio, width, height) {
this.game = game;
/**
- * @property {string} key - The key of the Video in the Cache, if stored there.
+ * @property {string} key - The key of the Video in the Cache, if stored there. Will be `null` if this Video is using the webcam instead.
+ * @default null
*/
this.key = key;
/**
* @property {number} width - The width of the video in pixels.
+ * @default
*/
- this.width = (width) ? width : 0;
+ this.width = 0;
/**
* @property {number} height - The height of the video in pixels.
- */
- this.height = (height) ? height : 0;
-
- /**
- * @property {HTMLVideoElement} video - The HTML Video Element that is added to the document.
- */
- this.video = null;
-
- /**
- * @property {MediaStream} videoStream - The Video Stream data. Only set if this Video is streaming from the webcam via `createVideoStream`.
- */
- this.videoStream = null;
-
- /**
- * @property {boolean} isStreaming - Is there a streaming video source? I.e. from a webcam.
- */
- this.isStreaming = false;
-
- if (key === null)
- {
- this.createVideoStream(captureAudio, width, height);
- }
- else
- {
- var _video = this.game.cache.getVideo(key);
-
- if (_video.isBlob)
- {
- this.createVideoFromBlob(_video.data);
- }
- else
- {
- this.video = _video.data;
- }
-
- this.width = this.video.videoWidth;
- this.height = this.video.videoHeight;
- }
-
- /**
- * @property {PIXI.BaseTexture} baseTexture - The PIXI.BaseTexture.
* @default
*/
- this.baseTexture = new PIXI.BaseTexture(this.video);
- this.baseTexture.forceLoaded(this.width, this.height);
-
- /**
- * @property {PIXI.Texture} texture - The PIXI.Texture.
- * @default
- */
- this.texture = new PIXI.Texture(this.baseTexture);
-
- /**
- * @property {Phaser.Frame} textureFrame - The Frame this video uses for rendering.
- * @default
- */
- this.textureFrame = new Phaser.Frame(0, 0, 0, this.width, this.height, 'video');
-
- this.texture.setFrame(this.textureFrame);
-
- this.texture.valid = false;
-
- if (key !== null && this.video)
- {
- this.texture.valid = this.video.canplay;
- }
+ this.height = 0;
/**
* @property {number} type - The const type of this object.
@@ -72130,6 +73285,12 @@ Phaser.Video = function (game, key, captureAudio, width, height) {
*/
this.disableTextureUpload = false;
+ /**
+ * @property {boolean} touchLocked - true if this video is currently locked awaiting a touch event. This happens on some mobile devices, such as iOS.
+ * @default
+ */
+ this.touchLocked = false;
+
/**
* @property {Phaser.Signal} onPlay - This signal is dispatched when the Video starts to play. It sends 3 parameters: a reference to the Video object, if the video is set to loop or not and the playback rate.
*/
@@ -72156,25 +73317,65 @@ Phaser.Video = function (game, key, captureAudio, width, height) {
this.onError = new Phaser.Signal();
/**
- * @property {boolean} touchLocked - true if this video is currently locked awaiting a touch event. This happens on some mobile devices, such as iOS.
- * @default
+ * This signal is dispatched if when asking for permission to use the webcam no response is given within a the Video.timeout limit.
+ * This may be because the user has picked `Not now` in the permissions window, or there is a delay in establishing the LocalMediaStream.
+ * @property {Phaser.Signal} onTimeout
*/
- this.touchLocked = false;
+ this.onTimeout = new Phaser.Signal();
/**
- * A snapshot grabbed from the video. This is initially black. Populate it by calling Video.grab().
- * When called the BitmapData is updated with a grab taken from the current video playing or active video stream.
- * If Phaser has been compiled without BitmapData support this property will always be `null`.
- *
- * @property {Phaser.BitmapData} snapshot
- * @readOnly
+ * @property {integer} timeout - The amount of ms allowed to elapsed before the Video.onTimeout signal is dispatched while waiting for webcam access.
+ * @default
*/
- this.snapshot = null;
+ this.timeout = 15000;
- if (Phaser.BitmapData)
- {
- this.snapshot = new Phaser.BitmapData(this.game, '', this.width, this.height);
- }
+ /**
+ * @property {integer} _timeOutID - setTimeout ID.
+ * @private
+ */
+ this._timeOutID = null;
+
+ /**
+ * @property {HTMLVideoElement} video - The HTML Video Element that is added to the document.
+ */
+ this.video = null;
+
+ /**
+ * @property {MediaStream} videoStream - The Video Stream data. Only set if this Video is streaming from the webcam via `startMediaStream`.
+ */
+ this.videoStream = null;
+
+ /**
+ * @property {boolean} isStreaming - Is there a streaming video source? I.e. from a webcam.
+ */
+ this.isStreaming = false;
+
+ /**
+ * When starting playback of a video Phaser will monitor its readyState using a setTimeout call.
+ * The setTimeout happens once every `Video.retryInterval` ms. It will carry on monitoring the video
+ * state in this manner until the `retryLimit` is reached and then abort.
+ * @property {integer} retryLimit
+ * @default
+ */
+ this.retryLimit = 20;
+
+ /**
+ * @property {integer} retry - The current retry attempt.
+ * @default
+ */
+ this.retry = 0;
+
+ /**
+ * @property {integer} retryInterval - The number of ms between each retry at monitoring the status of a downloading video.
+ * @default
+ */
+ this.retryInterval = 500;
+
+ /**
+ * @property {integer} _retryID - The callback ID of the retry setTimeout.
+ * @private
+ */
+ this._retryID = null;
/**
* @property {boolean} _codeMuted - Internal mute tracking var.
@@ -72218,6 +73419,78 @@ Phaser.Video = function (game, key, captureAudio, width, height) {
*/
this._autoplay = false;
+ if (key && this.game.cache.checkVideoKey(key))
+ {
+ var _video = this.game.cache.getVideo(key);
+
+ if (_video.isBlob)
+ {
+ this.createVideoFromBlob(_video.data);
+ }
+ else
+ {
+ this.video = _video.data;
+ }
+
+ this.width = this.video.videoWidth;
+ this.height = this.video.videoHeight;
+ }
+ else if (url)
+ {
+ this.createVideoFromURL(url, false);
+ }
+
+ /**
+ * @property {PIXI.BaseTexture} baseTexture - The PIXI.BaseTexture.
+ * @default
+ */
+ if (this.video && !url)
+ {
+ this.baseTexture = new PIXI.BaseTexture(this.video);
+ this.baseTexture.forceLoaded(this.width, this.height);
+ }
+ else
+ {
+ this.baseTexture = new PIXI.BaseTexture(PIXI.TextureCache['__default'].baseTexture.source);
+ this.baseTexture.forceLoaded(this.width, this.height);
+ }
+
+ /**
+ * @property {PIXI.Texture} texture - The PIXI.Texture.
+ * @default
+ */
+ this.texture = new PIXI.Texture(this.baseTexture);
+
+ /**
+ * @property {Phaser.Frame} textureFrame - The Frame this video uses for rendering.
+ * @default
+ */
+ this.textureFrame = new Phaser.Frame(0, 0, 0, this.width, this.height, 'video');
+
+ this.texture.setFrame(this.textureFrame);
+
+ this.texture.valid = false;
+
+ if (key !== null && this.video)
+ {
+ this.texture.valid = this.video.canplay;
+ }
+
+ /**
+ * A snapshot grabbed from the video. This is initially black. Populate it by calling Video.grab().
+ * When called the BitmapData is updated with a grab taken from the current video playing or active video stream.
+ * If Phaser has been compiled without BitmapData support this property will always be `null`.
+ *
+ * @property {Phaser.BitmapData} snapshot
+ * @readOnly
+ */
+ this.snapshot = null;
+
+ if (Phaser.BitmapData)
+ {
+ this.snapshot = new Phaser.BitmapData(this.game, '', this.width, this.height);
+ }
+
if (!this.game.device.cocoonJS && (this.game.device.iOS || this.game.device.android) || (window['PhaserGlobal'] && window['PhaserGlobal'].fakeiOSTouchLock))
{
this.setTouchLock();
@@ -72234,25 +73507,44 @@ Phaser.Video = function (game, key, captureAudio, width, height) {
Phaser.Video.prototype = {
+ connectToMediaStream: function (video, stream) {
+
+ if (video && stream)
+ {
+ this.video = video;
+ this.videoStream = stream;
+
+ this.isStreaming = true;
+ this.baseTexture.source = this.video;
+ this.updateTexture(null, this.video.videoWidth, this.video.videoHeight);
+
+ this.onAccess.dispatch(this);
+ }
+
+ return this;
+
+ },
+
/**
* Instead of playing a video file this method allows you to stream video data from an attached webcam.
*
* As soon as this method is called the user will be prompted by their browser to "Allow" access to the webcam.
* If they allow it the webcam feed is directed to this Video. Call `Video.play` to start the stream.
*
- * If they block the webcam the onError signal will be dispatched containing the NavigatorUserMediaError event.
+ * If they block the webcam the onError signal will be dispatched containing the NavigatorUserMediaError
+ * or MediaStreamError event.
*
* You can optionally set a width and height for the stream. If set the input will be cropped to these dimensions.
* If not given then as soon as the stream has enough data the video dimensions will be changed to match the webcam device.
* You can listen for this with the onChangeSource signal.
*
- * @method Phaser.Video#createVideoStream
+ * @method Phaser.Video#startMediaStream
* @param {boolean} [captureAudio=false] - Controls if audio should be captured along with video in the video stream.
* @param {integer} [width] - The width is used to create the video stream. If not provided the video width will be set to the width of the webcam input source.
* @param {integer} [height] - The height is used to create the video stream. If not provided the video height will be set to the height of the webcam input source.
- * @return {Phaser.Video} This Video object for method chaining.
+ * @return {Phaser.Video} This Video object for method chaining or false if the device doesn't support getUserMedia.
*/
- createVideoStream: function (captureAudio, width, height) {
+ startMediaStream: function (captureAudio, width, height) {
if (typeof captureAudio === 'undefined') { captureAudio = false; }
if (typeof width === 'undefined') { width = null; }
@@ -72260,11 +73552,18 @@ Phaser.Video.prototype = {
if (!this.game.device.getUserMedia)
{
+ this.onError.dispatch(this, 'No getUserMedia');
return false;
}
- this.video = document.createElement("video");
+ if (this.videoStream !== null)
+ {
+ this.videoStream.stop();
+ }
+ this.removeVideoElement();
+
+ this.video = document.createElement("video");
this.video.setAttribute('autoplay', 'autoplay');
if (width !== null)
@@ -72277,35 +73576,62 @@ Phaser.Video.prototype = {
this.video.height = height;
}
+ // Request access to the webcam
+
+ this._timeOutID = window.setTimeout(this.getUserMediaTimeout.bind(this), this.timeout);
+
+ try {
+ navigator.getUserMedia(
+ { "audio": captureAudio, "video": true },
+ this.getUserMediaSuccess.bind(this),
+ this.getUserMediaError.bind(this)
+ );
+ }
+ catch (error)
+ {
+ this.getUserMediaError(error);
+ }
+
+ return this;
+
+ },
+
+ getUserMediaTimeout: function () {
+
+ clearTimeout(this._timeOutID);
+
+ this.onTimeout.dispatch(this);
+
+ },
+
+ getUserMediaError: function (event) {
+
+ clearTimeout(this._timeOutID);
+
+ this.onError.dispatch(this, event);
+
+ },
+
+ getUserMediaSuccess: function (stream) {
+
+ clearTimeout(this._timeOutID);
+
+ // Attach the stream to the video
+ this.videoStream = stream;
+
+ // Set the source of the video element with the stream from the camera
+ if (this.video.mozSrcObject !== undefined)
+ {
+ this.video.mozSrcObject = stream;
+ }
+ else
+ {
+ this.video.src = (window.URL && window.URL.createObjectURL(stream)) || stream;
+ }
+
var self = this;
- navigator.getUserMedia({
- "audio": captureAudio,
- "video": true
- },
- function(stream) {
-
- self.videoStream = stream;
-
- // attach the stream to the video
-
- // Set the source of the video element with the stream from the camera
- if (self.video.mozSrcObject !== undefined)
- {
- self.video.mozSrcObject = stream;
- }
- else
- {
- self.video.src = (window.URL && window.URL.createObjectURL(stream)) || stream;
- }
-
- self.video.play();
- },
- function(err) {
- self.onError.dispatch(self, err);
- });
-
- this.video.addEventListener('loadeddata', function () {
+ this.video.onloadeddata = function () {
var retry = 10;
@@ -72317,13 +73643,17 @@ Phaser.Video.prototype = {
{
// Patch for Firefox bug where the height can't be read from the video
var width = self.video.videoWidth;
+ var height = self.video.videoHeight;
if (isNaN(self.video.videoHeight))
{
- var height = width / (4/3);
+ height = width / (4/3);
}
+ self.video.play();
+
self.isStreaming = true;
+ self.baseTexture.source = self.video;
self.updateTexture(null, width, height);
self.onAccess.dispatch(self);
}
@@ -72342,9 +73672,7 @@ Phaser.Video.prototype = {
checkStream();
- }, false);
-
- return this;
+ };
},
@@ -72371,6 +73699,40 @@ Phaser.Video.prototype = {
},
+ createVideoFromURL: function (url, autoplay) {
+
+ if (typeof autoplay === 'undefined') { autoplay = false; }
+
+ // Invalidate the texture while we wait for the new one to load (crashes IE11 otherwise)
+ if (this.texture)
+ {
+ this.texture.valid = false;
+ }
+
+ this.video = document.createElement("video");
+ this.video.controls = false;
+
+ if (autoplay)
+ {
+ this.video.setAttribute('autoplay', 'autoplay');
+ }
+
+ this.video.src = url;
+
+ this.video.canplay = true;
+
+ this.video.load();
+
+ this.retry = this.retryLimit;
+
+ this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval);
+
+ this.key = url;
+
+ return this;
+
+ },
+
/**
* Called automatically if the video source changes and updates the internal texture dimensions.
* Then dispatches the onChangeSource signal.
@@ -72390,11 +73752,18 @@ Phaser.Video.prototype = {
this.width = width;
this.height = height;
+ if (this.baseTexture.source !== this.video)
+ {
+ this.baseTexture.source = this.video;
+ }
+
this.baseTexture.forceLoaded(width, height);
this.texture.frame.resize(width, height);
+
this.texture.width = width;
this.texture.height = height;
+
this.texture.valid = true;
if (this.snapshot)
@@ -72404,8 +73773,6 @@ Phaser.Video.prototype = {
if (change && this.key !== null)
{
- this.video.removeEventListener('canplaythrough', this.updateTexture.bind(this));
-
this.onChangeSource.dispatch(this, width, height);
if (this._autoplay)
@@ -72479,7 +73846,15 @@ Phaser.Video.prototype = {
if (this.key !== null)
{
- this.video.addEventListener('playing', this.playHandler.bind(this), true);
+ if (this.video.readyState !== 4)
+ {
+ this.retry = this.retryLimit;
+ this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval);
+ }
+ else
+ {
+ this.video.addEventListener('playing', this.playHandler.bind(this), true);
+ }
}
this.video.play();
@@ -72501,8 +73876,6 @@ Phaser.Video.prototype = {
this.video.removeEventListener('playing', this.playHandler.bind(this));
- // this.video.canplay = true;
-
this.updateTexture();
},
@@ -72748,7 +74121,9 @@ Phaser.Video.prototype = {
this.video.pause();
- this.video.addEventListener('canplaythrough', this.updateTexture.bind(this), true);
+ this.retry = this.retryLimit;
+
+ this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval);
this.video.src = src;
@@ -72765,6 +74140,36 @@ Phaser.Video.prototype = {
},
+ /**
+ * Internal callback that monitors the download progress of a video after changing its source.
+ *
+ * @method Phaser.Video#checkVideoProgress
+ * @private
+ */
+ checkVideoProgress: function () {
+
+ // if (this.video.readyState === 2 || this.video.readyState === 4)
+ if (this.video.readyState === 4)
+ {
+ // We've got enough data to update the texture for playback
+ this.updateTexture();
+ }
+ else
+ {
+ this.retry--;
+
+ if (this.retry > 0)
+ {
+ this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval);
+ }
+ else
+ {
+ console.warn('Phaser.Video: Unable to start downloading video in time', this.isStreaming);
+ }
+ }
+
+ },
+
/**
* Sets the Input Manager touch callback to be Video.unlock.
* Required for mobile video unlocking. Mostly just used internally.
@@ -72844,7 +74249,37 @@ Phaser.Video.prototype = {
},
/**
- * Destroys the Video object. This calls Video.stop(), then sets the Video src to a blank string and nulls the reference.
+ * Removes the Video element from the DOM by calling parentNode.removeChild on itself.
+ * Also removes the autoplay and src attributes and nulls the reference.
+ *
+ * @method Phaser.Video#removeVideoElement
+ */
+ removeVideoElement: function () {
+
+ if (!this.video)
+ {
+ return;
+ }
+
+ if (this.video.parentNode)
+ {
+ this.video.parentNode.removeChild(this.video);
+ }
+
+ while (this.video.hasChildNodes())
+ {
+ this.video.removeChild(this.video.firstChild);
+ }
+
+ this.video.removeAttribute('autoplay');
+ this.video.removeAttribute('src');
+
+ this.video = null;
+
+ },
+
+ /**
+ * Destroys the Video object. This calls `Video.stop` and then `Video.removeVideoElement`.
* If any Sprites are using this Video as their texture it is up to you to manage those.
*
* @method Phaser.Video#destroy
@@ -72853,14 +74288,18 @@ Phaser.Video.prototype = {
this.stop();
- this.video.src = '';
- this.video = null;
+ this.removeVideoElement();
if (this.touchLocked)
{
this.game.input.touch.removeTouchLockCallback(this.unlock, this);
}
+ if (this._retryID)
+ {
+ window.clearTimeout(this._retryID);
+ }
+
}
};
@@ -73151,6 +74590,8 @@ if (PIXI.Graphics.POLY === undefined)
PIXI.TextureSilentFail = true;
+PIXI.BitmapText = { fonts: {} };
+
/**
* @author Richard Davey
* @copyright 2015 Photon Storm Ltd.
diff --git a/build/custom/phaser-arcade-physics.map b/build/custom/phaser-arcade-physics.map
index ca752f3c5..87dec5639 100644
--- a/build/custom/phaser-arcade-physics.map
+++ b/build/custom/phaser-arcade-physics.map
@@ -1 +1 @@
-{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Text","text","style","canvas","document","createElement","getContext","fromCanvas","setText","setStyle","dirty","updateText","toString","updateTexture","determineFontProperties","fontStyle","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","font","ceil","measureText","baseline","fillStyle","fillRect","textBaseline","fillText","getImageData","ascent","descent","fontSize","imagedata","data","pixels","line","idx","BitmapText","textWidth","textHeight","maxWidth","Phaser","_prevAnchor","_pool","align","split","fontName","parseInt","fonts","size","pos","prevCharCode","chars","maxLineWidth","lineWidths","lastSpace","charCode","charCodeAt","test","charAt","max","lineHeight","lastLineWidth","charData","kerning","xOffset","yOffset","xAdvance","lineAlignOffsets","alignOffset","lenChildren","lenChars","ax","ay","pop","equals","copyFrom","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","pngHead","pngEnd","magenta","Image","src","yellow","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","bx","by","earFound","_convex","vi","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","quadraticBezierCurve","vecPos","triangles","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","contextLostBound","handleContextLost","bind","contextRestoredBound","handleContextRestored","addEventListener","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","event","preventDefault","removeEventListener","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","stencilStack","reverse","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","tintWithPerPixel","rgbValues","pixelData","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","Polygon","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","angle","s","beginFill","endFill","drawRect","drawRoundedRect","RoundedRectangle","drawCircle","diameter","Circle","drawEllipse","Ellipse","drawPolygon","path","isArray","arguments","canvasBuffer","translate","updateCachedSpriteTexture","_prevTint","updateLocalBounds","containsPoint","point","tempPoint","contains","cachedSprite","destroyCachedSprite","flatten","GraphicsData","clone","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","tw","th","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","floor","Function","thisArg","bound","args","boundArgs","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","transposeArray","array","ArrayUtils","transposeMatrix","rotateArray","direction","rotateMatrix","shuffle","parseDimension","dimension","f","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","_diameter","_radius","circumference","setTo","copyTo","dest","distance","round","output","circumferencePoint","asDegrees","out","offsetPoint","top","bottom","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","newPos","rotate","tx1","append","d1","identity","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","requiredAngle","centroid","pointslength","parse","xProp","yProp","area","_points","toNumberArray","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","empty","inflatePoint","containsRaw","rw","rh","volume","sameDimensions","aabb","MIN_VALUE","Camera","screenView","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","Signal","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","dispatch","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","visibilityChange","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","events","onAddedToGroup$dispatch","addToHash","removeFromHash","addMultiple","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","removeBetween","destroyChildren","soft","World","_definedSize","setBounds","useBounds","horizontal","vertical","integerInRange","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","multiplier","layers","createCustomLayer","addToWorld","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","geom","uuid","grid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","maxIterations","onOrientationChange","enterLandscape","enterPortrait","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","enterFullScreen","leaveFullScreen","fullScreenFailed","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","fullscreen","cocoonJS","iPad","webApp","desktop","android","chrome","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","fullScreenScaleMode","getElementById","getParentBounds","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","checkResize","checkOrientation","setScreenSize","checkOrientationState","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","addToDOM","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","currentPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","processClickTrampolines","mouseDownCallback","mouseMoveCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","isDown","isUp","timeDown","timeUp","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","_touchedHandler","processInteractiveObjects","duration","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","justPressed","justReleased","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","onFloat","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","buttons","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axis","axisCode","buttonValue","repeats","Key","keycode","_enabled","altKey","ctrlKey","shiftKey","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","A","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","UNDERSCORE","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","INSERT","DELETE","HELP","NUM_LOCK","PLUS","MINUS","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","body","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","BitmapData","Video","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","onChangeSource","resizeFrame","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","damage","kill","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","getFrameData","loadFrameData","checkImageKey","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","group","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","characterWidth","characterHeight","charsPerRow","xSpacing","ySpacing","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","captureAudio","bitmapData","addBitmapData","Tween","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","verticies","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","ctx","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","draw","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","_text","_fontComponents","_lineSpacing","_charCount","setShadow","shadowStroke","shadowFill","strokeThickness","wordWrap","wordWrapWidth","fontToComponents","fontVariant","fontWeight","componentsToFont","outputText","runWordWrap","lines","fontProperties","lineSpacing","lineCap","lineJoin","linePositionX","linePositionY","updateLine","updateShadow","strokeText","letter","clearColors","addColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","exec","parseFloat","_font","_fontSize","_align","_tint","_tw","_th","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","frameData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","iOS","cordova","node","nodeWebkit","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","URL","webkitURL","mozURL","msURL","RegExp","$1","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","$3","process","require","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","truncate","shear","snapTo","gap","snapToFloor","snapToCeil","snapToInArray","arr","findClosest","roundTo","place","base","pow","floorTo","ceilTo","interpolateFloat","weight","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","normalizeLatitude","lat","normalizeLongitude","lng","numberArray","numberArrayStep","maxAdd","minSub","wrapValue","randomSign","isOdd","isEven","minProperty","maxProperty","radians","angleLimit","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","objects","removeRandom","removeRandomItem","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","shuffleArray","distancePow","distanceRounded","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","realInRange","between","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","url","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","fps","blob","reversed","asin","prevTime","elapsedMS","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","prefix","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","img","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_canvases","_images","_textures","_sounds","_videos","_json","_xml","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","_urlMap","_urlResolver","_urlTemp","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","addCanvas","addBinary","binaryData","addSpriteSheet","_resolveURL","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","xmlData","LoaderParser","bitmapFont","addPhysicsData","addText","addJSON","addXML","addImage","removeImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","addVideo","isBlob","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkVideoKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkURL","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","map","getFrameByIndex","getTextureFrame","getRenderTexture","getPixiTexture","getPixiBaseTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getVideo","getFrameCount","getText","getJSON","getXML","getBinary","getURL","getUrl","getKeys","removeCanvas","removeFromPixi","removeSound","removeVideo","removeText","removeJSON","removeXML","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","baseURL","containers","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","binary","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","xmlURL","parseXml","atlasJSONArray","atlasURL","atlas","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","playThroughEvent","canplay","loadedDataEvent","Audio","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","cacheKey","info","common","getAttribute","letters","textureRect","kernings","second","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","list","getByKey","ArrayList","randomIndex","sourceRowCount","sourceColCount","NaN","low","high","POSITIVE_INFINITY","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","sourceWidth","sourceHeight","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","tiles","collideIndexes","collision","images","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","gid","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","flippedVal","firstgid","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","imageWidth","imageHeight","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","videoStream","isStreaming","createVideoStream","_video","createVideoFromBlob","videoWidth","videoHeight","onAccess","onError","snapshot","_pending","_autoplay","setAttribute","self","stream","mozSrcObject","createObjectURL","checkStream","retry","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","u","v","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","offset","primitiveShader","updateGraphics","webGL","_webGL","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","quadraticBezierCurve","vecPos","triangles","fromX","fromY","cpX","cpY","toX","toY","getPt","n1","n2","perc","diff","xa","ya","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","contextLostBound","handleContextLost","bind","contextRestoredBound","handleContextRestored","addEventListener","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","event","preventDefault","removeEventListener","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","stencilStack","reverse","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","EQUAL","DECR","INCR","_currentGraphics","complexPrimitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","temp","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","Polygon","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","ceil","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","angle","s","beginFill","endFill","drawRect","drawRoundedRect","RoundedRectangle","drawCircle","diameter","Circle","drawEllipse","Ellipse","drawPolygon","path","Phaser","isArray","arguments","canvasBuffer","fromCanvas","translate","updateCachedSpriteTexture","_prevTint","updateLocalBounds","containsPoint","point","tempPoint","contains","cachedSprite","destroyCachedSprite","clone","flatten","GraphicsData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","tw","th","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","isTiling","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","floor","Function","thisArg","bound","args","boundArgs","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","append","d1","identity","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","area","_points","toNumberArray","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","volume","sameDimensions","aabb","MIN_VALUE","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","visibilityChange","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","setBounds","useBounds","horizontal","vertical","between","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","multiplier","layers","createCustomLayer","addToWorld","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","fullscreen","cocoonJS","iPad","webApp","desktop","android","chrome","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","fullScreenScaleMode","getElementById","getParentBounds","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","addToDOM","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","isDown","isUp","timeDown","timeUp","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","BACK_BUTTON","FORWARD_BUTTON","ERASER_BUTTON","resetButtons","updateButtons","buttons","ctrlKey","totalActivePointers","_touchedHandler","processInteractiveObjects","duration","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","justPressed","justReleased","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","onFloat","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","buttonCode","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","GamepadButton","disconnectingIndex","axis","axisCode","buttonValue","repeats","Key","keycode","_enabled","altKey","shiftKey","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","pendingDestroy","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","getFrameData","loadFrameData","checkImageKey","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","base","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","fonts","purgeGlyphs","kept","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","frameData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","fps","blob","reversed","asin","prevTime","elapsedMS","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","img","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_canvases","_images","_textures","_sounds","_videos","_json","_xml","_physics","_tilemaps","_binary","_bitmapDatas","_bitmapFont","_urlMap","_urlResolver","_urlTemp","addDefaultImage","addMissingImage","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","addCanvas","addBinary","binaryData","addSpriteSheet","_resolveURL","addTilemap","mapData","addTextureAtlas","atlasData","TEXTURE_ATLAS_XML_STARLING","addBitmapFont","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addPhysicsData","addText","addJSON","addXML","removeImage","addSound","audioTag","decoded","isDecoding","touchLocked","reloadSound","reloadSoundComplete","updateSound","decodedSound","addVideo","isBlob","checkKey","checkCanvasKey","checkTextureKey","checkSoundKey","checkVideoKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkURL","getBitmapData","getBitmapFont","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","map","getFrameByIndex","getTextureFrame","getRenderTexture","getPixiTexture","getPixiBaseTexture","getSound","getSoundData","isSoundDecoded","isSoundReady","getVideo","getFrameCount","getText","getJSON","getXML","getBinary","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeVideo","removeText","removeJSON","removeXML","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","baseURL","containers","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","binary","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","bitmapFont","textureURL","atlasURL","parseXml","atlasJSONArray","atlas","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","cacheKey","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","textureRect","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","tilewidth","tileheight","opacity","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"}
\ No newline at end of file
diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js
index ca85efbf9..2602dde18 100644
--- a/build/custom/phaser-arcade-physics.min.js
+++ b/build/custom/phaser-arcade-physics.min.js
@@ -1,21 +1,21 @@
/* Phaser v2.4.0 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */
-(function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.8",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.transformCallback=null,this.transformCallbackContext=null,this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gj;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;ei;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(c.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}c.descent=i-g,c.descent+=6,c.fontSize=c.ascent+c.descent,b.Text.fontPropertiesCache[a]=c}return c},b.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),b.Sprite.prototype.getBounds.call(this,a)},b.Text.fontPropertiesCache={},b.Text.fontPropertiesCanvas=document.createElement("canvas"),b.Text.fontPropertiesContext=b.Text.fontPropertiesCanvas.getContext("2d"),b.BitmapText=function(a,c){b.DisplayObjectContainer.call(this),this.textWidth=0,this.textHeight=0,this.maxWidth=0,this.anchor=new Phaser.Point(0,0),this._prevAnchor=new Phaser.Point(0,0),this._pool=[],this.setText(a),this.setStyle(c),this.updateText(),this.dirty=!1},b.BitmapText.prototype=Object.create(b.DisplayObjectContainer.prototype),b.BitmapText.prototype.constructor=b.BitmapText,b.BitmapText.prototype.setText=function(a){this.text=a||" ",this.dirty=!0},b.BitmapText.prototype.setStyle=function(a){a=a||{},a.align=a.align||"left",this.style=a;var c=a.font.split(" ");this.fontName=c[c.length-1],this.fontSize=c.length>=2?parseInt(c[c.length-2],10):b.BitmapText.fonts[this.fontName].size,this.dirty=!0,this.tint=a.tint},b.BitmapText.prototype.updateText=function(){for(var a=b.BitmapText.fonts[this.fontName],c=new b.Point,d=null,e=[],f=0,g=[],h=0,i=this.fontSize/a.size,j=0,k=0;k0&&c.x*i>this.maxWidth)e.splice(j,k-j),k=j,j=-1,g.push(lastLineWidth),f=Math.max(f,lastLineWidth),h++,c.x=0,c.y+=a.lineHeight,d=null;else{var m=a.chars[l];m&&(d&&m.kerning[d]&&(c.x+=m.kerning[d]),e.push({texture:m.texture,line:h,charCode:l,position:new b.Point(c.x+m.xOffset,c.y+m.yOffset)}),c.x+=m.xAdvance,d=l)}}g.push(c.x),f=Math.max(f,c.x);var n=[];for(k=0;h>=k;k++){var o=0;"right"===this.style.align?o=f-g[k]:"center"===this.style.align&&(o=(f-g[k])/2),n.push(o)}var p=this.children.length,q=e.length,r=this.tint||16777215;this.textWidth=f*i,this.textHeight=(c.y+a.lineHeight)*i;var s=this.textWidth*this.anchor.x,t=this.textHeight*this.anchor.y;for(k=0;q>k;k++){var u=p>k?this.children[k]:this._pool.pop();u?u.setTexture(e[k].texture):u=new b.Sprite(e[k].texture),u.position.x=(e[k].position.x+n[e[k].line])*i-s,u.position.y=e[k].position.y*i-t,u.scale.x=u.scale.y=i,u.tint=r,u.parent||this.addChild(u)}for(;this.children.length>q;){var v=this.getChildAt(this.children.length-1);this._pool.push(v),this.removeChild(v)}},b.BitmapText.prototype.updateTransform=function(){(this.dirty||!this.anchor.equals(this._prevAnchor))&&(this.updateText(),this.dirty=!1,this._prevAnchor.copyFrom(this.anchor)),b.DisplayObjectContainer.prototype.updateTransform.call(this)},b.BitmapText.fonts={},b.Stage=function(a){b.DisplayObjectContainer.call(this),this.worldTransform=new b.Matrix,this.stage=this,this.setBackgroundColor(a)},b.Stage.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Stage.prototype.constructor=b.Stage,b.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0;a>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if("undefined"==typeof document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()
-},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform float flipY;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.flipY=a.getUniformLocation(c,"flipY"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","uniform float flipY;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.flipY=a.getUniformLocation(c,"flipY"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(this.__stage=a),a.updateTransform();var b=this.gl;b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null,b.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniform1f(e.flipY,d.flipY),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform1f(e.flipY,d.flipY),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.alpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)
-},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Graphics=function(){b.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new b.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},b.Graphics.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Graphics.prototype.constructor=b.Graphics,b.Graphics.prototype.lineStyle=function(a,c,d){return this.lineWidth=a||0,this.lineColor=c||0,this.lineAlpha=void 0===d?1:d,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new b.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},b.Graphics.prototype.moveTo=function(a,c){return this.drawShape(new b.Polygon([a,c])),this},b.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},b.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},b.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},b.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},b.Graphics.prototype.arc=function(a,b,c,d,e,f){if(d===e)return this;"undefined"==typeof f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);k.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},b.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},b.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},b.Graphics.prototype.drawRect=function(a,c,d,e){return this.drawShape(new b.Rectangle(a,c,d,e)),this},b.Graphics.prototype.drawRoundedRect=function(a,c,d,e,f){return this.drawShape(new b.RoundedRectangle(a,c,d,e,f)),this},b.Graphics.prototype.drawCircle=function(a,c,d){return this.drawShape(new b.Circle(a,c,d)),this},b.Graphics.prototype.drawEllipse=function(a,c,d,e){return this.drawShape(new b.Ellipse(a,c,d,e)),this},b.Graphics.prototype.drawPolygon=function(a){(a instanceof Phaser.Polygon||a instanceof b.Polygon)&&(a=a.points);var c=a;if(!Array.isArray(c)){c=new Array(arguments.length);for(var d=0;dq?q:y,y=y>s?s:y,y=y>u?u:y,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x,this._bounds.x=y,this._bounds.width=w-y,this._bounds.y=z,this._bounds.height=x-z,this._currentBounds=this._bounds}return this._currentBounds},b.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,c=h+j>c?h+j:c,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===b.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,c=h+j>c?h+j:c,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===b.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,c=h+j>c?h+j:c,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,c=h+o>c?h+o:c,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,c=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=c-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof b.Polygon&&a.flatten();
-var c=new b.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(c),c.type===b.Graphics.POLY&&(c.shape.closed=this.filling,this.currentPath=c),this.dirty=!0,c},Object.defineProperty(b.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),b.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},b.GraphicsData.prototype.constructor=b.GraphicsData,b.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height&&(this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid){b.translate(0,2*this.projection.y),b.scale(1,-1),a.worldAlpha=1;for(var d=0;da;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.0-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},transposeArray:function(a){return c.ArrayUtils.transposeMatrix(a)},rotateArray:function(a,b){return c.ArrayUtils.rotateMatrix(a,b)},shuffle:function(a){return c.ArrayUtils.shuffle(a)},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){"undefined"==typeof c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return"undefined"==typeof c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b
-},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return"undefined"==typeof b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){f=f||!1,g=g||null,f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.setTo(b+g*Math.cos(h),d+g*Math.sin(h))},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){"undefined"==typeof a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.screenView=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e){var f,g=this._indexOfListener(a,d);if(-1!==g){if(f=this._bindings[g],f.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else f=new c.SignalBinding(this,a,b,d,e),this._addBinding(f);return this.memorize&&this._prevParams&&f.execute(this._prevParams),f},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;"undefined"==typeof b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){return this.validateListener(a,"add"),this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){return this.validateListener(a,"addOnce"),this._registerListener(a,!0,b,c)},remove:function(a,b){this.validateListener(a,"remove");var c=this._indexOfListener(a,b);return-1!==c&&(this._bindings[c]._destroy(),this._bindings.splice(c,1)),a},removeAll:function(a){if("undefined"==typeof a&&(a=null),this._bindings){for(var b=this._bindings.length;b--;)a?this._bindings[b].context===a&&(this._bindings[b]._destroy(),this._bindings.splice(b,1)):this._bindings[b]._destroy();a||(this._bindings.length=0)}},getNumListeners:function(){return this._bindings?this._bindings.length:0},halt:function(){this._shouldPropagate=!1},dispatch:function(){if(this.active&&this._bindings){var a,b=Array.prototype.slice.call(arguments),c=this._bindings.length;
-if(this.memorize&&(this._prevParams=b),c){a=this._bindings.slice(),this._shouldPropagate=!0;do c--;while(a[c]&&this._shouldPropagate&&a[c].execute(b)!==!1)}}},forget:function(){this._prevParams&&(this._prevParams=null)},dispose:function(){this.removeAll(),this._bindings=null,this._prevParams&&(this._prevParams=null)},toString:function(){return"[Phaser.Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}},Object.defineProperty(c.Signal.prototype,"boundDispatch",{get:function(){var a=this;return this._boundDispatch||(this._boundDispatch=function(){return a.dispatch.apply(a,arguments)})}}),c.Signal.prototype.constructor=c.Signal,c.SignalBinding=function(a,b,c,d,e){this._listener=b,c&&(this._isOnce=!0),null!=d&&(this.context=d),this._signal=a,e&&(this._priority=e)},c.SignalBinding.prototype={context:null,_isOnce:!1,_priority:0,callCount:0,active:!0,params:null,execute:function(a){var b,c;return this.active&&this._listener&&(c=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,c),this.callCount++,this._isOnce&&this.detach()),b},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return"[Phaser.SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}},c.SignalBinding.prototype.constructor=c.SignalBinding,c.Filter=function(a,b,d){this.game=a,this.type=c.WEBGL_FILTER,this.passes=[this],this.shaders=[],this.dirty=!0,this.padding=0,this.prevPoint=new c.Point;var e=new Date;if(this.uniforms={resolution:{type:"2f",value:{x:256,y:256}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:0,y:0}},date:{type:"4fv",value:[e.getFullYear(),e.getMonth(),e.getDate(),60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}},b)for(var f in b)this.uniforms[f]=b[f];this.fragmentSrc=d||[]},c.Filter.prototype={init:function(){},setResolution:function(a,b){this.uniforms.resolution.value.x=a,this.uniforms.resolution.value.y=b},update:function(a){if("undefined"!=typeof a){var b=a.x/this.game.width,c=1-a.y/this.game.height;(b!==this.prevPoint.x||c!==this.prevPoint.y)&&(this.uniforms.mouse.value.x=b.toFixed(2),this.uniforms.mouse.value.y=c.toFixed(2),this.prevPoint.set(b,c))}this.uniforms.time.value=this.game.time.totalElapsedSeconds()},destroy:function(){this.game=null}},c.Filter.prototype.constructor=c.Filter,Object.defineProperty(c.Filter.prototype,"width",{get:function(){return this.uniforms.resolution.value.x},set:function(a){this.uniforms.resolution.value.x=a}}),Object.defineProperty(c.Filter.prototype,"height",{get:function(){return this.uniforms.resolution.value.y},set:function(a){this.uniforms.resolution.value.y=a}}),c.Plugin=function(a,b){"undefined"==typeof b&&(b=null),this.game=a,this.parent=b,this.active=!1,this.visible=!1,this.hasPreUpdate=!1,this.hasUpdate=!1,this.hasPostUpdate=!1,this.hasRender=!1,this.hasPostRender=!1},c.Plugin.prototype={preUpdate:function(){},update:function(){},render:function(){},postRender:function(){},destroy:function(){this.game=null,this.parent=null,this.active=!1,this.visible=!1}},c.Plugin.prototype.constructor=c.Plugin,c.PluginManager=function(a){this.game=a,this.plugins=[],this._len=0,this._i=0},c.PluginManager.prototype={add:function(a){var b=Array.prototype.splice.call(arguments,1),c=!1;return"function"==typeof a?a=new a(this.game,this):(a.game=this.game,a.parent=this),"function"==typeof a.preUpdate&&(a.hasPreUpdate=!0,c=!0),"function"==typeof a.update&&(a.hasUpdate=!0,c=!0),"function"==typeof a.postUpdate&&(a.hasPostUpdate=!0,c=!0),"function"==typeof a.render&&(a.hasRender=!0,c=!0),"function"==typeof a.postRender&&(a.hasPostRender=!0,c=!0),c?((a.hasPreUpdate||a.hasUpdate||a.hasPostUpdate)&&(a.active=!0),(a.hasRender||a.hasPostRender)&&(a.visible=!0),this._len=this.plugins.push(a),"function"==typeof a.init&&a.init.apply(a,b),a):null},remove:function(a){for(this._i=this._len;this._i--;)if(this.plugins[this._i]===a)return a.destroy(),this.plugins.splice(this._i,1),void this._len--},removeAll:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].destroy();this.plugins.length=0,this._len=0},preUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPreUpdate&&this.plugins[this._i].preUpdate()},update:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasUpdate&&this.plugins[this._i].update()},postUpdate:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].active&&this.plugins[this._i].hasPostUpdate&&this.plugins[this._i].postUpdate()},render:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasRender&&this.plugins[this._i].render()},postRender:function(){for(this._i=this._len;this._i--;)this.plugins[this._i].visible&&this.plugins[this._i].hasPostRender&&this.plugins[this._i].postRender()},destroy:function(){this.removeAll(),this.game=null}},c.PluginManager.prototype.constructor=c.PluginManager,c.Stage=function(a){this.game=a,PIXI.Stage.call(this,0),this.name="_stage_root",this.disableVisibilityChange=!1,this.exists=!0,this.currentRenderOrderID=0,this._hiddenVar="hidden",this._onChange=null,this._backgroundColor=0,a.config&&this.parseConfig(a.config)},c.Stage.prototype=Object.create(PIXI.Stage.prototype),c.Stage.prototype.constructor=c.Stage,c.Stage.prototype.parseConfig=function(a){a.disableVisibilityChange&&(this.disableVisibilityChange=a.disableVisibilityChange),a.backgroundColor&&(this.backgroundColor=a.backgroundColor)},c.Stage.prototype.boot=function(){c.DOM.getOffset(this.game.canvas,this.offset),c.Canvas.setUserSelect(this.game.canvas,"none"),c.Canvas.setTouchAction(this.game.canvas,"none"),this.checkVisibility()},c.Stage.prototype.preUpdate=function(){this.currentRenderOrderID=0;for(var a=0;aa||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,c.ScaleManager.prototype.checkResize=c.ScaleManager.prototype.windowResize,c.ScaleManager.prototype.checkOrientation=c.ScaleManager.prototype.orientationChange,c.ScaleManager.prototype.setScreenSize=c.ScaleManager.prototype.updateLayout,c.ScaleManager.prototype.setSize=c.ScaleManager.prototype.reflowCanvas,c.ScaleManager.prototype.checkOrientationState=function(){var a=this.updateOrientationState();return a&&this.refresh(),a},Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"orientation",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)?0:90}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.resolution&&(this.resolution=a.resolution),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){},reset:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:this.resolution,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];
-d.active&&b--}return this.currentPointers=a-b,a-b},getPointer:function(a){"undefined"==typeof a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounter0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=this.game.input.holdRate&&((this.game.input.multiInputOverride==c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride==c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride==c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&this.game.input.onHold.dispatch(this),this._holdSent=!0),this.game.input.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+this.game.input.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>this.game.input.recordLimit&&this._history.shift()))},move:function(a,b){if(!this.game.input.pollLocked){if("undefined"==typeof b&&(b=!1),"undefined"!=typeof a.button&&(this.button=a.button),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&this.game.input.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*this.game.input.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*this.game.input.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(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),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var d=this.game.input.moveCallbacks.length;d--;)this.game.input.moveCallbacks[d].callback.call(this.game.input.moveCallbacks[d].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):this.game.input.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(this.game.input.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||this.game.input.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||this.game.input.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===this.game.input.currentPointers)&&(this.game.input.onUp.dispatch(this,a),this.duration>=0&&this.duration<=this.game.input.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=!1,this.isDown=!1,this.isUp=!0,this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&this.game.input.currentPointers--,this.game.input.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp===!0&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return"undefined"==typeof c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if("undefined"!=typeof a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0}return!1},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?("undefined"==typeof b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver===!1||a.dirty)&&(this._pointerData[a.id].isOver=!0,this._pointerData[a.id].isOut=!1,this._pointerData[a.id].timeOver=this.game.time.time,this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a))},_pointerOutHandler:function(a){null!==this.sprite&&(this._pointerData[a.id].isOver=!1,this._pointerData[a.id].isOut=!0,this._pointerData[a.id].timeOut=this.game.time.time,this.useHandCursor&&this._pointerData[a.id].isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a))},_touchedHandler:function(a){if(null!==this.sprite){if(this._pointerData[a.id].isDown===!1&&this._pointerData[a.id].isOver===!0){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;this._pointerData[a.id].isDown=!0,this._pointerData[a.id].isUp=!1,this._pointerData[a.id].timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}return this.consumePointerEvent}},_releasedHandler:function(a){null!==this.sprite&&this._pointerData[a.id].isDown&&a.isUp&&(this._pointerData[a.id].isDown=!1,this._pointerData[a.id].isUp=!0,this._pointerData[a.id].timeUp=this.game.time.time,this._pointerData[a.id].downDuration=this._pointerData[a.id].timeUp-this._pointerData[a.id].timeDown,this.checkPointerOver(a)?this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!0):(this.sprite&&this.sprite.events&&this.sprite.events.onInputUp$dispatch(this.sprite,a,!1),this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1)),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a))},updateDrag:function(a){if(a.isUp)return this.stopDrag(a),!1;var b=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,c=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=b),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)):(this.allowHorizontalDrag&&(this.sprite.x=b),this.allowVerticalDrag&&(this.sprite.y=c),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),!0
-},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp===!0&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.pad=null,this.game=null}},c.GamepadButton.prototype.constructor=c.GamepadButton,c.Key=function(a,b){this.game=a,this._enabled=!0,this.event=null,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.timeDown=0,this.duration=0,this.timeUp=-2500,this.repeats=0,this.keyCode=b,this.onDown=new c.Signal,this.onHoldCallback=null,this.onHoldContext=null,this.onUp=new c.Signal,this._justDown=!1,this._justUp=!1},c.Key.prototype={update:function(){this._enabled&&this.isDown&&(this.duration=this.game.time.time-this.timeDown,this.repeats++,this.onHoldCallback&&this.onHoldCallback.call(this.onHoldContext,this))},processKeyDown:function(a){this._enabled&&(this.event=a,this.isDown||(this.altKey=a.altKey,this.ctrlKey=a.ctrlKey,this.shiftKey=a.shiftKey,this.isDown=!0,this.isUp=!1,this.timeDown=this.game.time.time,this.duration=0,this.repeats=0,this._justDown=!0,this.onDown.dispatch(this)))},processKeyUp:function(a){this._enabled&&(this.event=a,this.isUp||(this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.time,this.duration=this.game.time.time-this.timeDown,this._justUp=!0,this.onUp.dispatch(this)))},reset:function(a){"undefined"==typeof a&&(a=!0),this.isDown=!1,this.isUp=!0,this.timeUp=this.game.time.time,this.duration=0,this._enabled=!0,this._justDown=!1,this._justUp=!1,a&&(this.onDown.removeAll(),this.onUp.removeAll(),this.onHoldCallback=null,this.onHoldContext=null)},downDuration:function(a){return"undefined"==typeof a&&(a=50),this.isDown&&this.duration0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return"undefined"==typeof a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={_frame:null,loadTexture:function(a,b,d){b=b||0,(d||"undefined"==typeof d)&&this.animations&&this.animations.stop(),this.key=a;var e=!0,f=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.setTexture(a.texture),this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA)&&(e=!this.animations.loadFrameData(this.game.cache.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){var g=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=g}else a instanceof PIXI.Texture?this.setTexture(a):null===a||"undefined"==typeof a?(this.key="__default",this.setTexture(PIXI.TextureCache[this.key])):"string"!=typeof a||this.game.cache.checkImageKey(a)?(this.setTexture(new PIXI.Texture(PIXI.BaseTextureCache[a])),e=!this.animations.loadFrameData(this.game.cache.getFrameData(a),b)):(console.warn("Texture with key '"+a+"' not found."),this.key="__missing",this.setTexture(PIXI.TextureCache[this.key]));e&&(this._frame=c.Rectangle.clone(this.texture.frame)),f||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return"undefined"==typeof c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){"undefined"==typeof b?b=d=e=a:"undefined"==typeof d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return"undefined"==typeof e&&(e=this.world),e.create(a,b,c,d)},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return"undefined"==typeof a&&(a=null),"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return"undefined"==typeof h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return"undefined"==typeof f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return"undefined"==typeof k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return"undefined"==typeof d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return"undefined"==typeof g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b,d,e){return new c.Video(this.game,a,b,d,e)},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,null,b,d,e,f)},spriteBatch:function(a,b,d){return"undefined"==typeof b&&(b="group"),"undefined"==typeof d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f){return new c.BitmapText(this.game,a,b,d,e,f)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid()),"undefined"==typeof e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){"undefined"==typeof e&&(e=!1),("undefined"==typeof d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.splice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point,PIXI.TilingSprite.call(this,PIXI.TextureCache.__default,e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite.prototype.autoScroll=function(a,b){this._scroll.set(a,b)},c.TileSprite.prototype.stopScroll=function(){this._scroll.set(0,0)},c.TileSprite.prototype.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 0!==this._scroll.x&&(this.tilePosition.x+=this._scroll.x*this.game.time.physicsElapsed),0!==this._scroll.y&&(this.tilePosition.y+=this._scroll.y*this.game.time.physicsElapsed),this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;km;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=this.width),"undefined"==typeof f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){if(("undefined"==typeof a||null===a)&&(a=!1),("undefined"==typeof b||null===b)&&(b=!1),("undefined"==typeof d||null===d)&&(d=!1),a||b||d){"undefined"==typeof e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var f=c.Color.createColor(),g=e.y;g=0&&a<=this.width&&b>=0&&b<=this.height&&(this.pixels[b*this.width+a]=c.Device.LITTLE_ENDIAN?g<<24|f<<16|e<<8|d:d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){"undefined"==typeof a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return"undefined"==typeof a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(("undefined"==typeof a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,("undefined"==typeof g||null===g)&&(g=a.x),("undefined"==typeof h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}return("undefined"==typeof b||null===b)&&(b=0),("undefined"==typeof d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),("undefined"==typeof g||null===g)&&(g=b),("undefined"==typeof h||null===h)&&(h=d),("undefined"==typeof i||null===i)&&(i=this._size.x),("undefined"==typeof j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),"undefined"==typeof q&&(q=null),"undefined"==typeof r&&(r=!1),this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y?void 0:(this._alpha.prev=this.context.globalAlpha,this.context.save(),this.context.globalAlpha=this._alpha.current,q&&(this.context.globalCompositeOperation=q),r&&(g|=0,h|=0),this.context.translate(g,h),this.context.scale(this._scale.x,this._scale.y),this.context.rotate(this._rotate),this.context.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),this.context.restore(),this.context.globalAlpha=this._alpha.prev,this.dirty=!0,this)
-},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){"undefined"==typeof a||null===a?this.context.shadowColor="rgba(0,0,0,0)":(this.context.shadowColor=a,this.context.shadowBlur=b||5,this.context.shadowOffsetX=c||10,this.context.shadowOffsetY=d||10)},alphaMask:function(a,b,c,d){return"undefined"==typeof d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),"undefined"==typeof c||null===c?this.draw(a).blendReset():this.draw(a,c.x,c.y,c.width,c.height).blendReset(),this},extract:function(a,b,c,d,e,f,g,h,i){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=b),"undefined"==typeof h&&(h=c),"undefined"==typeof i&&(i=d),f&&a.resize(this.width,this.height),this.processPixelRGB(function(f,j,k){return f.r===b&&f.g===c&&f.b===d&&a.setPixel32(j,k,g,h,i,e,!1),!1},this),a.context.putImageData(a.imageData,0,0),a.dirty=!0,a},rect:function(a,b,c,d,e){return"undefined"!=typeof e&&(this.context.fillStyle=e),this.context.fillRect(a,b,c,d),this},text:function(a,b,c,d,e,f){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=0),"undefined"==typeof d&&(d="14px Courier"),"undefined"==typeof e&&(e="rgb(255,255,255)"),"undefined"==typeof f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},circle:function(a,b,c,d){return"undefined"!=typeof d&&(this.context.fillStyle=d),this.context.beginPath(),this.context.arc(a,b,c,0,2*Math.PI,!1),this.context.closePath(),this.context.fill(),this},textureLine:function(a,b,d){if("undefined"==typeof d&&(d="repeat-x"),"string"!=typeof b||(b=this.game.cache.getImage(b))){var e=a.length;return"no-repeat"===d&&e>b.width&&(e=b.width),this.context.fillStyle=this.context.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),this.context.save(),this.context.translate(this._pos.x,this._pos.y),this.context.rotate(a.angle),this.context.fillRect(0,0,e,b.height),this.context.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},blendReset:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceOver:function(){return this.context.globalCompositeOperation="source-over",this},blendSourceIn:function(){return this.context.globalCompositeOperation="source-in",this},blendSourceOut:function(){return this.context.globalCompositeOperation="source-out",this},blendSourceAtop:function(){return this.context.globalCompositeOperation="source-atop",this},blendDestinationOver:function(){return this.context.globalCompositeOperation="destination-over",this},blendDestinationIn:function(){return this.context.globalCompositeOperation="destination-in",this},blendDestinationOut:function(){return this.context.globalCompositeOperation="destination-out",this},blendDestinationAtop:function(){return this.context.globalCompositeOperation="destination-atop",this},blendXor:function(){return this.context.globalCompositeOperation="xor",this},blendAdd:function(){return this.context.globalCompositeOperation="lighter",this},blendMultiply:function(){return this.context.globalCompositeOperation="multiply",this},blendScreen:function(){return this.context.globalCompositeOperation="screen",this},blendOverlay:function(){return this.context.globalCompositeOperation="overlay",this},blendDarken:function(){return this.context.globalCompositeOperation="darken",this},blendLighten:function(){return this.context.globalCompositeOperation="lighten",this},blendColorDodge:function(){return this.context.globalCompositeOperation="color-dodge",this},blendColorBurn:function(){return this.context.globalCompositeOperation="color-burn",this},blendHardLight:function(){return this.context.globalCompositeOperation="hard-light",this},blendSoftLight:function(){return this.context.globalCompositeOperation="soft-light",this},blendDifference:function(){return this.context.globalCompositeOperation="difference",this},blendExclusion:function(){return this.context.globalCompositeOperation="exclusion",this},blendHue:function(){return this.context.globalCompositeOperation="hue",this},blendSaturation:function(){return this.context.globalCompositeOperation="saturation",this},blendColor:function(){return this.context.globalCompositeOperation="color",this},blendLuminosity:function(){return this.context.globalCompositeOperation="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,c.Graphics=function(a,b,d){"undefined"==typeof b&&(b=0),"undefined"==typeof d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){"undefined"==typeof b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){"undefined"==typeof d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;ek&&Math.abs(k)>i&&(k=-i),0!==k){var l=k*(b.length-1);j+=l}this.canvas.height=j*this.resolution,this.context.scale(this.resolution,this.resolution),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var m,n;for(this._charCount=0,f=0;f0&&(n+=k*f),"right"===this.style.align?m+=d-c[f]:"center"===this.style.align&&(m+=(d-c[f])/2),this.colors.length>0?this.updateLine(b[f],m,n):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),this.context.strokeText(b[f],m,n)),this.style.fill&&(this.updateShadow(this.style.shadowFill),this.context.fillText(b[f],m,n)));this.updateTexture()},c.Text.prototype.updateShadow=function(a){a?(this.context.shadowOffsetX=this.style.shadowOffsetX,this.context.shadowOffsetY=this.style.shadowOffsetY,this.context.shadowColor=this.style.shadowColor,this.context.shadowBlur=this.style.shadowBlur):(this.context.shadowOffsetX=0,this.context.shadowOffsetY=0,this.context.shadowColor=0,this.context.shadowBlur=0)},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}d?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){"undefined"==typeof b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=f?!1:!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.canvasBitBltShift=null,this.webGL=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!0,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.epiphany=!1,this.firefox=!1,this.firefoxVersion=0,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.oggVideo=!1,this.h264Video=!1,this.mp4Video=!1,this.webmVideo=!1,this.vp9Video=!1,this.hlsVideo=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?l.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?l.kindle=!0:/Android/.test(a)?l.android=!0:/CrOS/.test(a)?l.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?l.iOS=!0:/Linux/.test(a)?l.linux=!0:/Mac OS/.test(a)?l.macOS=!0:/Windows/.test(a)&&(l.windows=!0,/Windows Phone/i.test(a)&&(l.windowsPhone=!0));var b=/Silk/.test(a);(l.windows||l.macOS||l.linux&&!b||l.chromeOS)&&(l.desktop=!0),(l.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(l.desktop=!1)}function b(){l.canvas=!!window.CanvasRenderingContext2D||l.cocoonJS;try{l.localStorage=!!localStorage.getItem}catch(a){l.localStorage=!1}l.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),l.fileSystem=!!window.requestFileSystem,l.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),l.webGL=!!l.webGL,l.worker=!!window.Worker,l.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,l.quirksMode="CSS1Compat"===document.compatMode?!1:!0,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,l.getUserMedia=l.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,navigator.userAgent.match(/Firefox\D+(\d+)/)&&parseInt(RegExp.$1,10)<21&&(l.getUserMedia=!1),!l.iOS&&(l.ie||l.firefox||l.chrome)&&(l.canvasBitBltShift=!0),(l.safari||l.mobileSafari)&&(l.canvasBitBltShift=!1)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return"undefined"==typeof b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.Canvas={create:function(a,b,c){a=a||256,b=b||256;var d=document.createElement("canvas");return"string"==typeof c&&""!==c&&(d.id=c),d.width=a,d.height=b,d.style.display="block",d},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return"undefined"==typeof c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){return a.imageSmoothingEnabled=b,a.mozImageSmoothingEnabled=b,a.oImageSmoothingEnabled=b,a.webkitImageSmoothingEnabled=b,a.msImageSmoothingEnabled=b,a},getSmoothingEnabled:function(a){return a.imageSmoothingEnabled||a.mozImageSmoothingEnabled||a.oImageSmoothingEnabled||a.webkitImageSmoothingEnabled||a.msImageSmoothingEnabled},setImageRenderingCrisp:function(a){return a.style["image-rendering"]="optimizeSpeed",a.style["image-rendering"]="crisp-edges",a.style["image-rendering"]="-moz-crisp-edges",a.style["image-rendering"]="-webkit-optimize-contrast",a.style["image-rendering"]="optimize-contrast",a.style["image-rendering"]="pixelated",a.style.msInterpolationMode="nearest-neighbor",a},setImageRenderingBicubic:function(a){return a.style["image-rendering"]="auto",a.style.msInterpolationMode="bicubic",a}},c.Canvas.getOffset=c.DOM.getOffset,c.Canvas.getAspectRatio=c.DOM.getAspectRatio,c.RequestAnimationFrame=function(a,b){"undefined"==typeof b&&(b=!1),this.game=a,this.isRunning=!1,this.forceSetTimeOut=b;for(var c=["ms","moz","webkit","o"],d=0;da},fuzzyGreaterThan:function(a,b,c){return"undefined"==typeof c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return"undefined"==typeof b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},normalizeLatitude:function(a){return c.Math.clamp(a,-90,90)},normalizeLongitude:function(a){return c.Math.wrap(a,-180,180)},chanceRoll:function(a){return c.Utils.chanceRoll(a)},numberArray:function(a,b){return c.ArrayUtils.numberArray(a,b)},numberArrayStep:function(a,b,d){return c.ArrayUtils.numberArrayStep(a,b,d)},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},limitValue:function(a,b,d){return c.Math.clamp(a,b,d)},randomSign:function(){return c.Utils.randomChoice(-1,1)},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},angleLimit:function(a,b,c){var d=a;return a>c?d=c:b>a&&(d=b),d},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},getRandom:function(a,b,d){return c.ArrayUtils.getRandomItem(a,b,d)},removeRandom:function(a,b,d){return c.ArrayUtils.removeRandomItem(a,b,d)},floor:function(a){return Math.trunc(a)},ceil:function(a){return c.Math.roundAwayFromZero(a)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){"undefined"==typeof b&&(b=1),"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},shift:function(a){var b=a.shift();return a.push(b),b},shuffleArray:function(a){return c.ArrayUtils.shuffle(a)},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distancePow:function(a,b,c,d,e){return"undefined"==typeof e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},distanceRounded:function(a,b,d,e){return Math.round(c.Math.distance(a,b,d,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return"undefined"==typeof c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){"undefined"==typeof a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1))]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){"undefined"==typeof c&&(c=!1),("undefined"==typeof d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){"undefined"==typeof a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return("undefined"==typeof b||0>=b)&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return"undefined"==typeof b&&(b=1e3),"undefined"==typeof d&&(d=c.Easing.Default),"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if("undefined"==typeof a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return"undefined"==typeof a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if("undefined"==typeof c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return"undefined"==typeof a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;"undefined"==typeof b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a])}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(){if(this.isRunning){if(this.game.time.time=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.physicsElapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var a in this.vEnd){var b=this.vStart[a],d=this.vEnd[a];this.parent.target[a]=Array.isArray(d)?this.interpolationFunction.call(this.interpolationContext,d,this.value):b+(d-b)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin(2*(a-b)*Math.PI/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*c*Math.pow(2,10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d):c*Math.pow(2,-10*(a-=1))*Math.sin(2*(a-b)*Math.PI/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*a*a*((b+1)*a-b):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){"undefined"==typeof a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.physicsElapsed=1/this.desiredFps,this.physicsElapsedMS=1e3*this.physicsElapsed,this.advancedTiming&&(this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(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.game.paused){this.events.update(this.time);for(var c=0,d=this._timers.length;d>c;)this._timers[c].update(this.time)?c++:(this._timers.splice(c,1),d--)}},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){"undefined"==typeof b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;this.nextTick=0>d?this._now:this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if("undefined"==typeof a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return"undefined"==typeof b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,"undefined"==typeof e&&(e=!1),"undefined"==typeof f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){"undefined"==typeof b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){"undefined"==typeof b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){"undefined"==typeof h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if("undefined"==typeof b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.updateCurrentFrame(!0)):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if("undefined"==typeof b&&(b=!1),!this._frameData)return!1;if(b)this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame);else{var c=this.currentFrame.index;this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&c!==this.currentFrame.index&&this._parent.setFrame(this.currentFrame)}return this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){"undefined"==typeof a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){"undefined"==typeof e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return"undefined"==typeof a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=[]),"undefined"==typeof a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){"undefined"==typeof b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if("undefined"==typeof e&&(e=!1),"undefined"==typeof b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if("undefined"==typeof c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if("undefined"==typeof b&&(b=null),"undefined"==typeof c&&(c=null),"undefined"==typeof d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){"undefined"==typeof b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.game.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.game.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.game.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.xmlURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.xmlURL,a),"text",this.xmlLoadComplete)):this.game.cache.addBitmapFont(a.key,a.url,a.data,a.xmlData,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.game.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.game.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.game.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.game.cache.addText(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.game.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.game.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.game.cache.addTilemap(a.key,a.url,c,a.format):"json"===a.type?this.game.cache.addJSON(a.key,a.url,c):this.game.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.game.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.game.cache.addBitmapFont(a.key,a.url,a.data,d,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.game.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.game.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d,e){var f={},g=b.getElementsByTagName("info")[0],h=b.getElementsByTagName("common")[0];f.font=g.getAttribute("face"),f.size=parseInt(g.getAttribute("size"),10),f.lineHeight=parseInt(h.getAttribute("lineHeight"),10)+e,f.chars={};for(var i=b.getElementsByTagName("char"),j=0;j=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if(("undefined"==typeof a||a===!1||null===a)&&(a=""),"undefined"==typeof e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,"undefined"==typeof c&&(c=this._volume),"undefined"==typeof d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(null===this._buffer&&(this._buffer=this.game.cache.getSoundData(this.key)),this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,"undefined"==typeof d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;"undefined"==typeof this._sound.start?this._sound.noteGrainOn(0,a,b):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if("undefined"==typeof this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){"undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if("undefined"==typeof a&&(a=1e3),"undefined"==typeof b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){"undefined"==typeof a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||null,a?(this._muted=!0,this.usingWebAudio?(this._muteVolume=this.gainNode.gain.value,this.gainNode.gain.value=0):this.usingAudioTag&&this._sound&&(this._muteVolume=this._sound.volume,this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this)}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){this.usingWebAudio?(this._volume=a,this.gainNode.gain.value=a):this.usingAudioTag&&this._sound&&a>=0&&1>=a&&(this._volume=a,this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain="undefined"==typeof this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),"undefined"==typeof this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.splice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){"undefined"==typeof a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return("undefined"==typeof b||null===b)&&(b=c.Color.createColor()),("undefined"==typeof d||null===d)&&(d=!1),("undefined"==typeof e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){"undefined"==typeof e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return"undefined"==typeof e&&(e=255),"undefined"==typeof f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);
-return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){"undefined"==typeof a&&(a=.5),"undefined"==typeof b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){"undefined"==typeof f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=255),"undefined"==typeof d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){"undefined"==typeof b&&(b=c.Physics.ARCADE),"undefined"==typeof d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},enable:function(a,b){"undefined"==typeof b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:"undefined"==typeof b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return"undefined"==typeof b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){"undefined"==typeof b&&(b=60),c=c||this.game.input.activePointer,"undefined"==typeof d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return"undefined"==typeof b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){"undefined"==typeof c&&(c=60),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){"undefined"==typeof c&&(c=60),"undefined"==typeof b&&(b=this.game.input.activePointer),"undefined"==typeof d&&(d=1e3),"undefined"==typeof e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){"undefined"==typeof d&&(d=60),"undefined"==typeof e&&(e=1e3),"undefined"==typeof f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){this.position.xthis.game.physics.arcade.bounds.right&&this.game.physics.arcade.checkCollision.right&&(this.position.x=this.game.physics.arcade.bounds.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),this.position.ythis.game.physics.arcade.bounds.bottom&&this.game.physics.arcade.checkCollision.down&&(this.position.y=this.game.physics.arcade.bounds.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){"undefined"==typeof c&&(c=this.offset.x),"undefined"==typeof d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){"undefined"==typeof d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e){if(a.body){var f=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==f.length)for(var g=0;gb.deltaAbsY()?f=-1:b.deltaAbsX()f){if((c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c),0!==d&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(e=this.tileCheckY(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(d=this.tileCheckX(b,c))}return 0!==d||0!==e},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x
-},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),c.Tile=function(a,b,c,d,e,f){this.layer=a,this.index=b,this.x=c,this.y=d,this.rotation=0,this.flipped=!1,this.worldX=c*e,this.worldY=d*f,this.width=e,this.height=f,this.centerX=Math.abs(e/2),this.centerY=Math.abs(f/2),this.alpha=1,this.properties={},this.scanned=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.collisionCallback=null,this.collisionCallbackContext=this},c.Tile.prototype={containsPoint:function(a,b){return!(athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if("undefined"==typeof d&&(d=this.tileWidth),"undefined"==typeof e&&(e=this.tileHeight),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=0),"undefined"==typeof h&&(h=0),0===d&&(d=32),0===e&&(e=32),"undefined"==typeof b){if("string"!=typeof a)return null;if(b=a,!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null}if("string"==typeof a&&(a=this.getTilesetIndex(a),null===a&&this.format===c.Tilemap.TILED_JSON))return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[a])return this.tilesets[a].setImage(this.game.cache.getImage(b)),this.tilesets[a];var i=new c.Tileset(b,h,d,e,f,g,{});i.setImage(this.game.cache.getImage(b)),this.tilesets.push(i);for(var j=this.tilesets.length-1,k=f,l=f,m=0,n=0,o=0,p=h;pm;m++)if("undefined"!=typeof this.objects[a][m].gid&&"number"==typeof b&&this.objects[a][m].gid===b&&(l=!0),"undefined"!=typeof this.objects[a][m].id&&"number"==typeof b&&this.objects[a][m].id===b&&(l=!0),"undefined"!=typeof this.objects[a][m].name&&"string"==typeof b&&this.objects[a][m].name===b&&(l=!0),l){k=new i(this.game,this.objects[a][m].x,this.objects[a][m].y,d,e),k.name=this.objects[a][m].name,k.visible=this.objects[a][m].visible,k.autoCull=g,k.exists=f,k.width=this.objects[a][m].width,k.height=this.objects[a][m].height,this.objects[a][m].rotation&&(k.angle=this.objects[a][m].rotation),j&&(k.y-=k.height),h.add(k);for(var o in this.objects[a][m].properties)h.set(k,o,this.objects[a][m].properties[o],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),"undefined"==typeof b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),"undefined"==typeof f&&(f=this.game.world),"undefined"==typeof g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if("undefined"==typeof g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){"undefined"==typeof b&&(b=!0),"undefined"==typeof d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if("undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=this.currentLayer),"undefined"==typeof d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if("undefined"==typeof a&&(a=0),"undefined"==typeof b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,0,0,null,null),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f),this.context=this.canvas.getContext("2d"),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,e,f,"tilemapLayer",a.rnd.uuid()),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!0,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(PIXI.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.Component.Core.install.call(c.TilemapLayer.prototype,["Bounds","BringToTop","Destroy","FixedToCamera","InputEnabled","Reset","Smoothed"]),c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},Object.defineProperty(c.TilemapLayer.prototype,"tileColor",{get:function(){return this.debugSettings.missingImageFill},set:function(a){this.debugSettings.missingImageFill=a}}),Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){this.context.save(),(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if("undefined"==typeof d&&(d=32),"undefined"==typeof e&&(e=32),"undefined"==typeof f&&(f=10),"undefined"==typeof g&&(g=10),"undefined"==typeof b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fx;x++)if(a.layers[f].objects[x].gid){var y={gid:a.layers[f].objects[x].gid,name:a.layers[f].objects[x].name,type:a.layers[f].objects[x].hasOwnProperty("type")?a.layers[f].objects[x].type:"",x:a.layers[f].objects[x].x,y:a.layers[f].objects[x].y,visible:a.layers[f].objects[x].visible,properties:a.layers[f].objects[x].properties};a.layers[f].objects[x].rotation&&(y.rotation=a.layers[f].objects[x].rotation),v[a.layers[f].name].push(y)}else if(a.layers[f].objects[x].polyline){var y={name:a.layers[f].objects[x].name,type:a.layers[f].objects[x].type,x:a.layers[f].objects[x].x,y:a.layers[f].objects[x].y,width:a.layers[f].objects[x].width,height:a.layers[f].objects[x].height,visible:a.layers[f].objects[x].visible,properties:a.layers[f].objects[x].properties};a.layers[f].objects[x].rotation&&(y.rotation=a.layers[f].objects[x].rotation),y.polyline=[];for(var z=0;z=c)&&(c=32),("undefined"==typeof d||0>=d)&&(d=32),"undefined"==typeof e&&(e=0),"undefined"==typeof f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){"undefined"==typeof b&&(b=0),"undefined"==typeof c&&(c=this.maxParticles),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){("undefined"==typeof c||0===c)&&(c=1),"undefined"==typeof d&&(d=-1),"undefined"==typeof e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=0),("undefined"==typeof c||null===c)&&(c=250),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=0),"undefined"==typeof e&&(e=c.Easing.Linear.None),"undefined"==typeof f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if("undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=1),"undefined"==typeof d&&(d=1),"undefined"==typeof e&&(e=1),"undefined"==typeof f&&(f=0),"undefined"==typeof g&&(g=c.Easing.Linear.None),"undefined"==typeof h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d,e,f){if("undefined"==typeof b&&(b=null),"undefined"==typeof d&&(d=!1),this.game=a,this.key=b,this.width=e?e:0,this.height=f?f:0,this.video=null,this.videoStream=null,this.isStreaming=!1,null===b)this.createVideoStream(d,e,f);else{var g=this.game.cache.getVideo(b);g.isBlob?this.createVideoFromBlob(g.data):this.video=g.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.type=c.VIDEO,this.disableTextureUpload=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.touchLocked=!1,this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():g&&(g.locked=!1)},c.Video.prototype={createVideoStream:function(a,b,c){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=null),"undefined"==typeof c&&(c=null),!this.game.device.getUserMedia)return!1;this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c);var d=this;return navigator.getUserMedia({audio:a,video:!0},function(a){d.videoStream=a,void 0!==d.video.mozSrcObject?d.video.mozSrcObject=a:d.video.src=window.URL&&window.URL.createObjectURL(a)||a,d.video.play()},function(a){d.onError.dispatch(d,a)}),this.video.addEventListener("loadeddata",function(){function a(){if(b>0)if(d.video.videoWidth>0){var c=d.video.videoWidth;if(isNaN(d.video.videoHeight))var e=c/(4/3);d.isStreaming=!0,d.updateTexture(null,c,e),d.onAccess.dispatch(d)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");b--}var b=10;a()},!1),this},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},updateTexture:function(a,b,c){var d=!1;("undefined"==typeof b||null===b)&&(b=this.video.videoWidth,d=!0),("undefined"==typeof c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.video.removeEventListener("canplaythrough",this.updateTexture.bind(this)),this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return"undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&this.video.addEventListener("playing",this.playHandler.bind(this),!0),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;ba?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this);
+(function(){var a=this,b=b||{};b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.8",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.transformCallback=null,this.transformCallbackContext=null,this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.transformCallback=null,this.transformCallbackContext=null,this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var b=[],c=0;c=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gj;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if("undefined"==typeof document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.PolyK={},b.PolyK.Triangulate=function(a){var c=!0,d=a.length>>1;if(3>d)return[];for(var e=[],f=[],g=0;d>g;g++)f.push(g);g=0;for(var h=d;h>3;){var i=f[(g+0)%h],j=f[(g+1)%h],k=f[(g+2)%h],l=a[2*i],m=a[2*i+1],n=a[2*j],o=a[2*j+1],p=a[2*k],q=a[2*k+1],r=!1;if(b.PolyK._convex(l,m,n,o,p,q,c)){r=!0;for(var s=0;h>s;s++){var t=f[s];if(t!==i&&t!==j&&t!==k&&b.PolyK._PointInTriangle(a[2*t],a[2*t+1],l,m,n,o,p,q)){r=!1;break}}}if(r)e.push(i,j,k),f.splice((g+1)%h,1),h--,g=0;else if(g++>3*h){if(!c)return null;for(e=[],f=[],g=0;d>g;g++)f.push(g);g=0,h=d,c=!1}}return e.push(f[0],f[1],f[2]),e},b.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},b.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},b.initDefaultShaders=function(){},b.CompileVertexShader=function(a,c){return b._CompileShader(a,c,a.VERTEX_SHADER)},b.CompileFragmentShader=function(a,c){return b._CompileShader(a,c,a.FRAGMENT_SHADER)},b._CompileShader=function(a,b,c){var d=b.join("\n"),e=a.createShader(c);return a.shaderSource(e,d),a.compileShader(e),a.getShaderParameter(e,a.COMPILE_STATUS)?e:(window.console.log(a.getShaderInfoLog(e)),null)},b.compileProgram=function(a,c,d){var e=b.CompileFragmentShader(a,d),f=b.CompileVertexShader(a,c),g=a.createProgram();return a.attachShader(g,f),a.attachShader(g,e),a.linkProgram(g),a.getProgramParameter(g,a.LINK_STATUS)||window.console.log("Could not initialise shaders"),g},b.PixiShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.textureCount=0,this.firstRun=!0,this.dirty=!0,this.attributes=[],this.init()},b.PixiShader.prototype.constructor=b.PixiShader,b.PixiShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc||b.PixiShader.defaultVertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aTextureCoord,this.colorAttribute];for(var d in this.uniforms)this.uniforms[d].uniformLocation=a.getUniformLocation(c,d);this.initUniforms(),this.program=c},b.PixiShader.prototype.initUniforms=function(){this.textureCount=1;var a,b=this.gl;for(var c in this.uniforms){a=this.uniforms[c];var d=a.type;"sampler2D"===d?(a._init=!1,null!==a.value&&this.initSampler2D(a)):"mat2"===d||"mat3"===d||"mat4"===d?(a.glMatrix=!0,a.glValueLength=1,"mat2"===d?a.glFunc=b.uniformMatrix2fv:"mat3"===d?a.glFunc=b.uniformMatrix3fv:"mat4"===d&&(a.glFunc=b.uniformMatrix4fv)):(a.glFunc=b["uniform"+d],a.glValueLength="2f"===d||"2i"===d?2:"3f"===d||"3i"===d?3:"4f"===d||"4i"===d?4:1)}},b.PixiShader.prototype.initSampler2D=function(a){if(a.value&&a.value.baseTexture&&a.value.baseTexture.hasLoaded){var b=this.gl;if(b.activeTexture(b["TEXTURE"+this.textureCount]),b.bindTexture(b.TEXTURE_2D,a.value.baseTexture._glTextures[b.id]),a.textureData){var c=a.textureData,d=c.magFilter?c.magFilter:b.LINEAR,e=c.minFilter?c.minFilter:b.LINEAR,f=c.wrapS?c.wrapS:b.CLAMP_TO_EDGE,g=c.wrapT?c.wrapT:b.CLAMP_TO_EDGE,h=c.luminance?b.LUMINANCE:b.RGBA;if(c.repeat&&(f=b.REPEAT,g=b.REPEAT),b.pixelStorei(b.UNPACK_FLIP_Y_WEBGL,!!c.flipY),c.width){var i=c.width?c.width:512,j=c.height?c.height:2,k=c.border?c.border:0;b.texImage2D(b.TEXTURE_2D,0,h,i,j,k,h,b.UNSIGNED_BYTE,null)}else b.texImage2D(b.TEXTURE_2D,0,h,b.RGBA,b.UNSIGNED_BYTE,a.value.baseTexture.source);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,d),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,e),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,f),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,g)}b.uniform1i(a.uniformLocation,this.textureCount),a._init=!0,this.textureCount++}},b.PixiShader.prototype.syncUniforms=function(){this.textureCount=1;var a,c=this.gl;for(var d in this.uniforms)a=this.uniforms[d],1===a.glValueLength?a.glMatrix===!0?a.glFunc.call(c,a.uniformLocation,a.transpose,a.value):a.glFunc.call(c,a.uniformLocation,a.value):2===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y):3===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z):4===a.glValueLength?a.glFunc.call(c,a.uniformLocation,a.value.x,a.value.y,a.value.z,a.value.w):"sampler2D"===a.type&&(a._init?(c.activeTexture(c["TEXTURE"+this.textureCount]),a.value.baseTexture._dirty[c.id]?b.instances[c.id].updateTexture(a.value.baseTexture):c.bindTexture(c.TEXTURE_2D,a.value.baseTexture._glTextures[c.id]),c.uniform1i(a.uniformLocation,this.textureCount),this.textureCount++):this.initSampler2D(a))},b.PixiShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.PixiShader.defaultVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute vec4 aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","varying vec4 vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],b.PixiFastShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision lowp float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aPositionCoord;","attribute vec2 aScale;","attribute float aRotation;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform mat3 uMatrix;","varying vec2 vTextureCoord;","varying float vColor;","const vec2 center = vec2(-1.0, 1.0);","void main(void) {"," vec2 v;"," vec2 sv = aVertexPosition * aScale;"," v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);"," v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);"," v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;"," gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);"," vTextureCoord = aTextureCoord;"," vColor = aColor;","}"],this.textureCount=0,this.init()},b.PixiFastShader.prototype.constructor=b.PixiFastShader,b.PixiFastShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.dimensions=a.getUniformLocation(c,"dimensions"),this.uMatrix=a.getUniformLocation(c,"uMatrix"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aPositionCoord=a.getAttribLocation(c,"aPositionCoord"),this.aScale=a.getAttribLocation(c,"aScale"),this.aRotation=a.getAttribLocation(c,"aRotation"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.colorAttribute=a.getAttribLocation(c,"aColor"),-1===this.colorAttribute&&(this.colorAttribute=2),this.attributes=[this.aVertexPosition,this.aPositionCoord,this.aScale,this.aRotation,this.aTextureCoord,this.colorAttribute],this.program=c},b.PixiFastShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.StripShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","uniform float alpha;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","varying vec2 vTextureCoord;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);"," vTextureCoord = aTextureCoord;","}"],this.init()},b.StripShader.prototype.constructor=b.StripShader,b.StripShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.uSampler=a.getUniformLocation(c,"uSampler"),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.aTextureCoord=a.getAttribLocation(c,"aTextureCoord"),this.attributes=[this.aVertexPosition,this.aTextureCoord],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.StripShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.PrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","attribute vec4 aColor;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform float alpha;","uniform float flipY;","uniform vec3 tint;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);"," vColor = aColor * vec4(tint * alpha, alpha);","}"],this.init()},b.PrimitiveShader.prototype.constructor=b.PrimitiveShader,b.PrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.flipY=a.getUniformLocation(c,"flipY"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.colorAttribute=a.getAttribLocation(c,"aColor"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.PrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attributes=null},b.ComplexPrimitiveShader=function(a){this._UID=b._UID++,this.gl=a,this.program=null,this.fragmentSrc=["precision mediump float;","varying vec4 vColor;","void main(void) {"," gl_FragColor = vColor;","}"],this.vertexSrc=["attribute vec2 aVertexPosition;","uniform mat3 translationMatrix;","uniform vec2 projectionVector;","uniform vec2 offsetVector;","uniform vec3 tint;","uniform float alpha;","uniform vec3 color;","uniform float flipY;","varying vec4 vColor;","void main(void) {"," vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);"," v -= offsetVector.xyx;"," gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);"," vColor = vec4(color * alpha * tint, alpha);","}"],this.init()},b.ComplexPrimitiveShader.prototype.constructor=b.ComplexPrimitiveShader,b.ComplexPrimitiveShader.prototype.init=function(){var a=this.gl,c=b.compileProgram(a,this.vertexSrc,this.fragmentSrc);a.useProgram(c),this.projectionVector=a.getUniformLocation(c,"projectionVector"),this.offsetVector=a.getUniformLocation(c,"offsetVector"),this.tintColor=a.getUniformLocation(c,"tint"),this.color=a.getUniformLocation(c,"color"),this.flipY=a.getUniformLocation(c,"flipY"),this.aVertexPosition=a.getAttribLocation(c,"aVertexPosition"),this.attributes=[this.aVertexPosition,this.colorAttribute],this.translationMatrix=a.getUniformLocation(c,"translationMatrix"),this.alpha=a.getUniformLocation(c,"alpha"),this.program=c},b.ComplexPrimitiveShader.prototype.destroy=function(){this.gl.deleteProgram(this.program),this.uniforms=null,this.gl=null,this.attribute=null},b.WebGLGraphics=function(){},b.WebGLGraphics.renderGraphics=function(a,c){var d,e=c.gl,f=c.projection,g=c.offset,h=c.shaderManager.primitiveShader;a.dirty&&b.WebGLGraphics.updateGraphics(a,e);for(var i=a._webGL[e.id],j=0;j=6)if(h.points.length<12){g=b.WebGLGraphics.switchMode(d,0);var i=b.WebGLGraphics.buildPoly(h,g);i||(g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g))}else g=b.WebGLGraphics.switchMode(d,1),b.WebGLGraphics.buildComplexPoly(h,g);h.lineWidth>0&&(g=b.WebGLGraphics.switchMode(d,0),b.WebGLGraphics.buildLine(h,g))}else g=b.WebGLGraphics.switchMode(d,0),h.type===b.Graphics.RECT?b.WebGLGraphics.buildRectangle(h,g):h.type===b.Graphics.CIRC||h.type===b.Graphics.ELIP?b.WebGLGraphics.buildCircle(h,g):h.type===b.Graphics.RREC&&b.WebGLGraphics.buildRoundedRectangle(h,g);d.lastIndex++}for(e=0;e=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},b.WebGLGraphics.buildCircle=function(a,c){var d,e,f=a.shape,g=f.x,h=f.y;a.type===b.Graphics.CIRC?(d=f.radius,e=f.radius):(d=f.width,e=f.height);var i=40,j=2*Math.PI/i,k=0;if(a.fill){var l=b.hex2rgb(a.fillColor),m=a.fillAlpha,n=l[0]*m,o=l[1]*m,p=l[2]*m,q=c.points,r=c.indices,s=q.length/6;for(r.push(s),k=0;i+1>k;k++)q.push(g,h,n,o,p,m),q.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e,n,o,p,m),r.push(s++,s++);r.push(s-1)}if(a.lineWidth){var t=a.points;for(a.points=[],k=0;i+1>k;k++)a.points.push(g+Math.sin(j*k)*d,h+Math.cos(j*k)*e);b.WebGLGraphics.buildLine(a,c),a.points=t}},b.WebGLGraphics.buildLine=function(a,c){var d=0,e=a.points;if(0!==e.length){if(a.lineWidth%2)for(d=0;dd;d++)l=e[2*(d-1)],m=e[2*(d-1)+1],n=e[2*d],o=e[2*d+1],p=e[2*(d+1)],q=e[2*(d+1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,t=-(o-q),u=n-p,F=Math.sqrt(t*t+u*u),t/=F,u/=F,t*=L,u*=L,x=-s+m-(-s+o),y=-r+n-(-r+l),z=(-r+l)*(-s+o)-(-r+n)*(-s+m),A=-u+q-(-u+o),B=-t+n-(-t+p),C=(-t+p)*(-u+o)-(-t+n)*(-u+q),D=x*B-A*y,Math.abs(D)<.1?(D+=10.1,G.push(n-r,o-s,O,P,Q,N),G.push(n+r,o+s,O,P,Q,N)):(j=(y*C-B*z)/D,k=(A*z-x*C)/D,E=(j-n)*(j-n)+(k-o)+(k-o),E>19600?(v=r-t,w=s-u,F=Math.sqrt(v*v+w*w),v/=F,w/=F,v*=L,w*=L,G.push(n-v,o-w),G.push(O,P,Q,N),G.push(n+v,o+w),G.push(O,P,Q,N),G.push(n-v,o-w),G.push(O,P,Q,N),J++):(G.push(j,k),G.push(O,P,Q,N),G.push(n-(j-n),o-(k-o)),G.push(O,P,Q,N)));for(l=e[2*(I-2)],m=e[2*(I-2)+1],n=e[2*(I-1)],o=e[2*(I-1)+1],r=-(m-o),s=l-n,F=Math.sqrt(r*r+s*s),r/=F,s/=F,r*=L,s*=L,G.push(n-r,o-s),G.push(O,P,Q,N),G.push(n+r,o+s),G.push(O,P,Q,N),H.push(K),d=0;J>d;d++)H.push(K++);H.push(K-1)}},b.WebGLGraphics.buildComplexPoly=function(a,c){var d=a.points.slice();if(!(d.length<6)){var e=c.indices;c.points=d,c.alpha=a.fillAlpha,c.color=b.hex2rgb(a.fillColor);for(var f,g,h=1/0,i=-1/0,j=1/0,k=-1/0,l=0;lf?f:h,i=f>i?f:i,j=j>g?g:j,k=g>k?g:k;d.push(h,j,i,j,i,k,h,k);var m=d.length/2;for(l=0;m>l;l++)e.push(l)}},b.WebGLGraphics.buildPoly=function(a,c){var d=a.points;if(!(d.length<6)){var e=c.points,f=c.indices,g=d.length/2,h=b.hex2rgb(a.fillColor),i=a.fillAlpha,j=h[0]*i,k=h[1]*i,l=h[2]*i,m=b.PolyK.Triangulate(d);if(!m)return!1;var n=e.length/6,o=0;for(o=0;oo;o++)e.push(d[2*o],d[2*o+1],j,k,l,i);return!0}},b.WebGLGraphics.graphicsDataPool=[],b.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},b.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},b.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new b.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new b.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},b.glContexts=[],b.instances=[],b.WebGLRenderer=function(a,c,d){if(d)for(var e in b.defaultRenderOptions)"undefined"==typeof d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(b.defaultRenderer=this),this.type=b.WEBGL_RENDERER,this.resolution=d.resolution,this.transparent=d.transparent,this.autoResize=d.autoResize||!1,this.preserveDrawingBuffer=d.preserveDrawingBuffer,this.clearBeforeRender=d.clearBeforeRender,this.width=a||800,this.height=c||600,this.view=d.view||document.createElement("canvas"),this.contextLostBound=this.handleContextLost.bind(this),this.contextRestoredBound=this.handleContextRestored.bind(this),this.view.addEventListener("webglcontextlost",this.contextLostBound,!1),this.view.addEventListener("webglcontextrestored",this.contextRestoredBound,!1),this._contextOptions={alpha:this.transparent,antialias:d.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:d.preserveDrawingBuffer},this.projection=new b.Point,this.offset=new b.Point(0,0),this.shaderManager=new b.WebGLShaderManager,this.spriteBatch=new b.WebGLSpriteBatch,this.maskManager=new b.WebGLMaskManager,this.filterManager=new b.WebGLFilterManager,this.stencilManager=new b.WebGLStencilManager,this.blendModeManager=new b.WebGLBlendModeManager,this.renderSession={},this.renderSession.gl=this.gl,this.renderSession.drawCount=0,this.renderSession.shaderManager=this.shaderManager,this.renderSession.maskManager=this.maskManager,this.renderSession.filterManager=this.filterManager,this.renderSession.blendModeManager=this.blendModeManager,this.renderSession.spriteBatch=this.spriteBatch,this.renderSession.stencilManager=this.stencilManager,this.renderSession.renderer=this,this.renderSession.resolution=this.resolution,this.initContext(),this.mapBlendModes()},b.WebGLRenderer.prototype.constructor=b.WebGLRenderer,b.WebGLRenderer.prototype.initContext=function(){var a=this.view.getContext("webgl",this._contextOptions)||this.view.getContext("experimental-webgl",this._contextOptions);if(this.gl=a,!a)throw new Error("This browser does not support webGL. Try using the canvas renderer");this.glContextId=a.id=b.WebGLRenderer.glContextId++,b.glContexts[this.glContextId]=a,b.instances[this.glContextId]=this,a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),this.shaderManager.setContext(a),this.spriteBatch.setContext(a),this.maskManager.setContext(a),this.filterManager.setContext(a),this.blendModeManager.setContext(a),this.stencilManager.setContext(a),this.renderSession.gl=this.gl,this.resize(this.width,this.height)},b.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){this.__stage!==a&&(this.__stage=a),a.updateTransform();var b=this.gl;b.viewport(0,0,this.width,this.height),b.bindFramebuffer(b.FRAMEBUFFER,null),this.clearBeforeRender&&(this.transparent?b.clearColor(0,0,0,0):b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1),b.clear(b.COLOR_BUFFER_BIT)),this.renderDisplayObject(a,this.projection)}},b.WebGLRenderer.prototype.renderDisplayObject=function(a,c,d,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),this.spriteBatch.end()},b.WebGLRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.gl.viewport(0,0,this.width,this.height),this.projection.x=this.width/2/this.resolution,this.projection.y=-this.height/2/this.resolution},b.WebGLRenderer.prototype.updateTexture=function(a){if(a.hasLoaded){var c=this.gl;return a._glTextures[c.id]||(a._glTextures[c.id]=c.createTexture()),c.bindTexture(c.TEXTURE_2D,a._glTextures[c.id]),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultipliedAlpha),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR:c.NEAREST),a._powerOf2?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.REPEAT),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.REPEAT)):(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE)),a._dirty[c.id]=!1,a._glTextures[c.id]}},b.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault(),this.contextLost=!0},b.WebGLRenderer.prototype.handleContextRestored=function(){this.initContext();for(var a in b.TextureCache){var c=b.TextureCache[a].baseTexture;c._glTextures=[]}this.contextLost=!1},b.WebGLRenderer.prototype.destroy=function(){this.view.removeEventListener("webglcontextlost",this.contextLostBound),this.view.removeEventListener("webglcontextrestored",this.contextRestoredBound),b.glContexts[this.glContextId]=null,this.projection=null,this.offset=null,this.shaderManager.destroy(),this.spriteBatch.destroy(),this.maskManager.destroy(),this.filterManager.destroy(),this.shaderManager=null,this.spriteBatch=null,this.maskManager=null,this.filterManager=null,this.gl=null,this.renderSession=null,b.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},b.WebGLRenderer.prototype.mapBlendModes=function(){var a=this.gl;b.blendModesWebGL||(b.blendModesWebGL=[],b.blendModesWebGL[b.blendModes.NORMAL]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.ADD]=[a.SRC_ALPHA,a.DST_ALPHA],b.blendModesWebGL[b.blendModes.MULTIPLY]=[a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SCREEN]=[a.SRC_ALPHA,a.ONE],b.blendModesWebGL[b.blendModes.OVERLAY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DARKEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LIGHTEN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_DODGE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR_BURN]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HARD_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SOFT_LIGHT]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.DIFFERENCE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.EXCLUSION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.HUE]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.SATURATION]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.COLOR]=[a.ONE,a.ONE_MINUS_SRC_ALPHA],b.blendModesWebGL[b.blendModes.LUMINOSITY]=[a.ONE,a.ONE_MINUS_SRC_ALPHA])},b.WebGLRenderer.glContextId=0,b.WebGLBlendModeManager=function(){this.currentBlendMode=99999},b.WebGLBlendModeManager.prototype.constructor=b.WebGLBlendModeManager,b.WebGLBlendModeManager.prototype.setContext=function(a){this.gl=a},b.WebGLBlendModeManager.prototype.setBlendMode=function(a){if(this.currentBlendMode===a)return!1;this.currentBlendMode=a;var c=b.blendModesWebGL[this.currentBlendMode];return this.gl.blendFunc(c[0],c[1]),!0},b.WebGLBlendModeManager.prototype.destroy=function(){this.gl=null},b.WebGLMaskManager=function(){},b.WebGLMaskManager.prototype.constructor=b.WebGLMaskManager,b.WebGLMaskManager.prototype.setContext=function(a){this.gl=a},b.WebGLMaskManager.prototype.pushMask=function(a,c){var d=c.gl;a.dirty&&b.WebGLGraphics.updateGraphics(a,d),a._webGL[d.id].data.length&&c.stencilManager.pushStencil(a,a._webGL[d.id].data[0],c)},b.WebGLMaskManager.prototype.popMask=function(a,b){var c=this.gl;b.stencilManager.popStencil(a,a._webGL[c.id].data[0],b)},b.WebGLMaskManager.prototype.destroy=function(){this.gl=null},b.WebGLStencilManager=function(){this.stencilStack=[],this.reverse=!0,this.count=0},b.WebGLStencilManager.prototype.setContext=function(a){this.gl=a},b.WebGLStencilManager.prototype.pushStencil=function(a,b,c){var d=this.gl;this.bindGraphics(a,b,c),0===this.stencilStack.length&&(d.enable(d.STENCIL_TEST),d.clear(d.STENCIL_BUFFER_BIT),this.reverse=!0,this.count=0),this.stencilStack.push(b);var e=this.count;d.colorMask(!1,!1,!1,!1),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),1===b.mode?(d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),this.reverse?d.stencilFunc(d.EQUAL,255-(e+1),255):d.stencilFunc(d.EQUAL,e+1,255),this.reverse=!this.reverse):(this.reverse?(d.stencilFunc(d.EQUAL,e,255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,255-e,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e+1,255):d.stencilFunc(d.EQUAL,255-(e+1),255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP),this.count++},b.WebGLStencilManager.prototype.bindGraphics=function(a,c,d){this._currentGraphics=a;var e,f=this.gl,g=d.projection,h=d.offset;1===c.mode?(e=d.shaderManager.complexPrimitiveShader,d.shaderManager.setShader(e),f.uniform1f(e.flipY,d.flipY),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform3fv(e.color,c.color),f.uniform1f(e.alpha,a.worldAlpha*c.alpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,8,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer)):(e=d.shaderManager.primitiveShader,d.shaderManager.setShader(e),f.uniformMatrix3fv(e.translationMatrix,!1,a.worldTransform.toArray(!0)),f.uniform1f(e.flipY,d.flipY),f.uniform2f(e.projectionVector,g.x,-g.y),f.uniform2f(e.offsetVector,-h.x,-h.y),f.uniform3fv(e.tintColor,b.hex2rgb(a.tint)),f.uniform1f(e.alpha,a.worldAlpha),f.bindBuffer(f.ARRAY_BUFFER,c.buffer),f.vertexAttribPointer(e.aVertexPosition,2,f.FLOAT,!1,24,0),f.vertexAttribPointer(e.colorAttribute,4,f.FLOAT,!1,24,8),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,c.indexBuffer))},b.WebGLStencilManager.prototype.popStencil=function(a,b,c){var d=this.gl;if(this.stencilStack.pop(),this.count--,0===this.stencilStack.length)d.disable(d.STENCIL_TEST);else{var e=this.count;this.bindGraphics(a,b,c),d.colorMask(!1,!1,!1,!1),1===b.mode?(this.reverse=!this.reverse,this.reverse?(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)):(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)),d.drawElements(d.TRIANGLE_FAN,4,d.UNSIGNED_SHORT,2*(b.indices.length-4)),d.stencilFunc(d.ALWAYS,0,255),d.stencilOp(d.KEEP,d.KEEP,d.INVERT),d.drawElements(d.TRIANGLE_FAN,b.indices.length-4,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)):(this.reverse?(d.stencilFunc(d.EQUAL,e+1,255),d.stencilOp(d.KEEP,d.KEEP,d.DECR)):(d.stencilFunc(d.EQUAL,255-(e+1),255),d.stencilOp(d.KEEP,d.KEEP,d.INCR)),d.drawElements(d.TRIANGLE_STRIP,b.indices.length,d.UNSIGNED_SHORT,0),this.reverse?d.stencilFunc(d.EQUAL,e,255):d.stencilFunc(d.EQUAL,255-e,255)),d.colorMask(!0,!0,!0,!0),d.stencilOp(d.KEEP,d.KEEP,d.KEEP)}},b.WebGLStencilManager.prototype.destroy=function(){this.stencilStack=null,this.gl=null},b.WebGLShaderManager=function(){this.maxAttibs=10,this.attribState=[],this.tempAttribState=[];for(var a=0;ad;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){if(i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h,(l!==f||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var s=this.renderSession.projection;c.uniform2f(a.projectionVector,s.x,s.y);var t=this.renderSession.offset;c.uniform2f(a.offsetVector,t.x,t.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;a._dirty[d.id]?this.renderSession.renderer.updateTexture(a):d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]),d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width,this.height):g=new b.FilterTexture(this.gl,this.width,this.height),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width,h.height),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width,d.height),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);
+var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width,this.height)),i.resize(this.width,this.height),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.Graphics=function(){b.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=b.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new b.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},b.Graphics.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Graphics.prototype.constructor=b.Graphics,b.Graphics.prototype.lineStyle=function(a,c,d){return this.lineWidth=a||0,this.lineColor=c||0,this.lineAlpha=void 0===d?1:d,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new b.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},b.Graphics.prototype.moveTo=function(a,c){return this.drawShape(new b.Polygon([a,c])),this},b.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},b.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},b.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},b.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},b.Graphics.prototype.arc=function(a,b,c,d,e,f){if(d===e)return this;"undefined"==typeof f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-1,q=p%1/p,r=0;p>=r;r++){var s=r+q*r,t=l+d+m*s,u=Math.cos(t),v=-Math.sin(t);k.push((n*u+o*v)*c+a,(n*-v+o*u)*c+b)}return this.dirty=!0,this},b.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},b.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},b.Graphics.prototype.drawRect=function(a,c,d,e){return this.drawShape(new b.Rectangle(a,c,d,e)),this},b.Graphics.prototype.drawRoundedRect=function(a,c,d,e,f){return this.drawShape(new b.RoundedRectangle(a,c,d,e,f)),this},b.Graphics.prototype.drawCircle=function(a,c,d){return this.drawShape(new b.Circle(a,c,d)),this},b.Graphics.prototype.drawEllipse=function(a,c,d,e){return this.drawShape(new b.Ellipse(a,c,d,e)),this},b.Graphics.prototype.drawPolygon=function(a){(a instanceof Phaser.Polygon||a instanceof b.Polygon)&&(a=a.points);var c=a;if(!Array.isArray(c)){c=new Array(arguments.length);for(var d=0;dq?q:y,y=y>s?s:y,y=y>u?u:y,z=z>r?r:z,z=z>t?t:z,z=z>v?v:z,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,x=r>x?r:x,x=t>x?t:x,x=v>x?v:x,this._bounds.x=y,this._bounds.width=w-y,this._bounds.y=z,this._bounds.height=x-z,this._currentBounds=this._bounds}return this._currentBounds},b.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,c=h+j>c?h+j:c,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===b.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,c=h+j>c?h+j:c,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===b.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,c=h+j>c?h+j:c,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,c=h+o>c?h+o:c,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,c=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=c-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},b.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var c=new b.CanvasBuffer(a.width,a.height),d=b.Texture.fromCanvas(c.canvas);this._cachedSprite=new b.Sprite(d),this._cachedSprite.buffer=c,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,b.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},b.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},b.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},b.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof Phaser.Polygon&&(a=a.clone(),a.flatten());var c=new b.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(c),c.type===b.Graphics.POLY&&(c.shape.closed=this.filling,this.currentPath=c),this.dirty=!0,c},Object.defineProperty(b.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():(this.destroyCachedSprite(),this.dirty=!0)}}),b.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},b.GraphicsData.prototype.constructor=b.GraphicsData,b.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;
+a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){this.resolution=1,this.width=100,this.height=100,this.scaleMode=c||b.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this._UID=b._UID++,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height&&(this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},b.BaseTexture.prototype.destroy=function(){this.imageUrl?(delete b.BaseTextureCache[this.imageUrl],delete b.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src="")):this.source&&this.source._pixiId&&delete b.BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},b.BaseTexture.prototype.updateSourceImage=function(a){this.hasLoaded=!1,this.source.src=null,this.source.src=a},b.BaseTexture.prototype.dirty=function(){for(var a=0;a=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){b.translate(0,2*this.projection.y),b.scale(1,-1);for(var d=0;da;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.0-dev",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return"undefined"==typeof a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if("undefined"==typeof b)var b=0;if("undefined"==typeof c)var c=" ";if("undefined"==typeof d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){"undefined"==typeof c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){"undefined"==typeof a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){"undefined"==typeof a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return"undefined"==typeof c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){"undefined"==typeof a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){"undefined"==typeof a&&(a=1),"undefined"==typeof b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!0),"undefined"==typeof g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return"undefined"==typeof b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)
+},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return"undefined"==typeof a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return"undefined"==typeof b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return"undefined"==typeof d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return"undefined"==typeof e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){"undefined"==typeof d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return"undefined"==typeof b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){"undefined"==typeof b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){"undefined"==typeof f&&(f=!1),"undefined"==typeof g&&(g=null),f&&(e=c.Math.degToRad(e)),null===g&&(g=Math.sqrt((b-a.x)*(b-a.x)+(d-a.y)*(d-a.y)));var h=e+Math.atan2(a.y-d,a.x-b);return a.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if("undefined"==typeof b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){"undefined"==typeof a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return"undefined"==typeof b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return"undefined"==typeof a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){this.height=a<=this.y?0:a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){this.width=a>=this.right?0:this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){this.width=a<=this.x?0:a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return"undefined"==typeof b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return"undefined"==typeof b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return"undefined"==typeof f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){"undefined"==typeof b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.setTo(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x),this.view.right>=this.bounds.right&&(this.atLimit.x=!0,this.view.x=this.bounds.right-this.width),this.view.y<=this.bounds.top&&(this.atLimit.y=!0,this.view.y=this.bounds.top),this.view.bottom>=this.bounds.bottom&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){"undefined"==typeof c&&(c=8),"undefined"==typeof d&&(d=c),"undefined"==typeof e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){"undefined"==typeof d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){"undefined"==typeof b&&(b=!0),"undefined"==typeof c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){"undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.splice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache===!0&&this.game.cache.destroy()))},checkState:function(a){if(this.states[a]){var b=!1;return(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)&&(b=!0),b===!1?(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):!0}return console.warn("Phaser.StateManager - No state found with the key: "+a),!1},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;"undefined"==typeof b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){"undefined"==typeof e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){"undefined"==typeof d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return"undefined"==typeof a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if("undefined"==typeof e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return"undefined"==typeof e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return"undefined"==typeof g&&(g=!1),b=b.split("."),"undefined"==typeof d&&(d=!1),"undefined"==typeof e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),"undefined"==typeof f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if("undefined"==typeof b&&(b=!1),"undefined"==typeof c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if("undefined"==typeof b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if("undefined"==typeof a&&(a=!1),"undefined"==typeof b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if("undefined"==typeof b&&(b=this.children.length-1),"undefined"==typeof c&&(c=!1),"undefined"==typeof d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||("undefined"==typeof a&&(a=!0),"undefined"==typeof b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,this._width=800,this._height=600,this.transparent=!1,this.antialias=!0,this.preserveDrawingBuffer=!1,this.renderer=null,this.renderType=c.AUTO,this.state=null,this.isBooted=!1,this.isRunning=!1,this.raf=null,this.add=null,this.make=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.net=null,this.scale=null,this.sound=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.physics=null,this.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,this.stepping=!1,this.pendingStep=!1,this.stepCount=0,this.onPause=null,this.onResume=null,this.onBlur=null,this.onFocus=null,this._paused=!1,this._codePaused=!1,this.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!0,this.fpsProblemNotifier=new c.Signal,this.forceSingleUpdate=!1,this._nextFpsNotification=0,1===arguments.length&&"object"==typeof arguments[0]?this.parseConfig(arguments[0]):(this.config={enableDebug:!0},"undefined"!=typeof a&&(this._width=a),"undefined"!=typeof b&&(this._height=b),"undefined"!=typeof d&&(this.renderType=d),"undefined"!=typeof e&&(this.parent=e),"undefined"!=typeof g&&(this.transparent=g),"undefined"!=typeof h&&(this.antialias=h),this.rnd=new c.RandomDataGenerator([(Date.now()*Math.random()).toString()]),this.state=new c.StateManager(this,f)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,"undefined"==typeof a.enableDebug&&(this.config.enableDebug=!0),a.width&&(this._width=a.width),a.height&&(this._height=a.height),a.renderer&&(this.renderType=a.renderer),a.parent&&(this.parent=a.parent),a.transparent&&(this.transparent=a.transparent),a.antialias&&(this.antialias=a.antialias),a.resolution&&(this.resolution=a.resolution),a.preserveDrawingBuffer&&(this.preserveDrawingBuffer=a.preserveDrawingBuffer),a.physicsConfig&&(this.physicsConfig=a.physicsConfig);var b=[(Date.now()*Math.random()).toString()];a.seed&&(b=a.seed),this.rnd=new c.RandomDataGenerator(b);var d=null;a.state&&(d=a.state),this.state=new c.StateManager(this,d)},boot:function(){this.isBooted||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),this.world=new c.World(this),this.add=new c.GameObjectFactory(this),this.make=new c.GameObjectCreator(this),this.cache=new c.Cache(this),this.load=new c.Loader(this),this.time=new c.Time(this),this.tweens=new c.TweenManager(this),this.input=new c.Input(this),this.sound=new c.SoundManager(this),this.physics=new c.Physics(this,this.physicsConfig),this.particles=new c.Particles(this),this.create=new c.Create(this),this.plugins=new c.PluginManager(this),this.net=new c.Net(this),this.time.boot(),this.stage.boot(),this.world.boot(),this.scale.boot(),this.input.boot(),this.sound.boot(),this.state.boot(),this.config.enableDebug?(this.debug=new c.Utils.Debug(this),this.debug.boot()):this.debug={preUpdate:function(){},update:function(){},reset:function(){}},this.showDebugHeader(),this.isRunning=!0,this.raf=this.config&&this.config.forceSetTimeOut?new c.RequestAnimationFrame(this,this.config.forceSetTimeOut):new c.RequestAnimationFrame(this,!1),this._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){var a=c.VERSION,b="Canvas",d="HTML Audio",e=1;if(this.renderType===c.WEBGL?(b="WebGL",e++):this.renderType==c.HEADLESS&&(b="Headless"),this.device.webAudio&&(d="WebAudio",e++),this.device.chrome){for(var f=["%c %c %c Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" %c %c %c http://phaser.io %c♥%c♥%c♥","background: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","background: #ffffff"],g=0;3>g;g++)f.push(e>g?"color: #ff2424; background: #fff":"color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.canvas=this.config.canvasID?c.Canvas.create(this.width,this.height,this.config.canvasID):c.Canvas.create(this.width,this.height),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&this.device.webGL===!1){if(!this.device.canvas)throw new Error("Phaser.Game - cannot create Canvas or WebGL context, aborting.");this.renderType===c.AUTO&&(this.renderType=c.CANVAS),this.renderer=new PIXI.CanvasRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:this.resolution,clearBeforeRender:!0}),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this.width,this.height,{view:this.canvas,transparent:this.transparent,resolution:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null;this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b