2014-05-29 16:37:28 +00:00
/* Phaser v2.0.6 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-02-28 09:30:53 +00:00
2014-04-29 14:39:53 +00:00
( function ( ) { var a = this , b = b || { } ; b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v1.5.2" , b . 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 } , b . scaleModes = { DEFAULT : 0 , LINEAR : 0 , NEAREST : 1 } , b . INTERACTION _FREQUENCY = 30 , b . AUTO _PREVENT _DEFAULT = ! 0 , b . RAD _TO _DEG = 180 / Math . PI , b . DEG _TO _RAD = Math . PI / 180 , b . Point = function ( a , b ) { this . x = a || 0 , this . y = b || 0 } , b . Point . prototype . clone = function ( ) { return new b . Point ( this . x , this . y ) } , b . Point . prototype . constructor = b . Point , b . Point . prototype . set = function ( a , b ) { this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) } , b . Rectangle = function ( a , b , c , d ) { this . x = a || 0 , this . y = b || 0 , this . width = c || 0 , this . height = d || 0 } , b . Rectangle . prototype . clone = function ( ) { return new b . Rectangle ( this . x , this . y , this . width , this . height ) } , b . Rectangle . prototype . contains = function ( a , b ) { if ( this . width <= 0 || this . height <= 0 ) return ! 1 ; var c = this . x ; if ( a >= c && a <= c + this . width ) { var d = this . y ; if ( b >= d && b <= d + this . height ) return ! 0 } return ! 1 } , b . Rectangle . prototype . constructor = b . Rectangle , b . EmptyRectangle = new b . Rectangle ( 0 , 0 , 0 , 0 ) , b . Polygon = function ( a ) { if ( a instanceof Array || ( a = Array . prototype . slice . call ( arguments ) ) , "number" == typeof a [ 0 ] ) { for ( var c = [ ] , d = 0 , e = a . length ; e > d ; d += 2 ) c . push ( new b . Point ( a [ d ] , a [ d + 1 ] ) ) ; a = c } this . points = a } , b . Polygon . prototype . clone = function ( ) { for ( var a = [ ] , c = 0 ; c < this . points . length ; c ++ ) a . push ( this . points [ c ] . clone ( ) ) ; return new b . Polygon ( a ) } , b . Polygon . prototype . contains = function ( a , b ) { for ( var c = ! 1 , d = 0 , e = this . points . length - 1 ; d < this . points . length ; e = d ++ ) { var f = this . points [ d ] . x , g = this . points [ d ] . y , h = this . points [ e ] . x , i = this . points [ e ] . y , j = g > b != i > b && ( h - f ) * ( b - g ) / ( i - g ) + f > a ; j && ( c = ! c ) } return c } , b . Polygon . prototype . constructor = b . Polygon , b . Circle = function ( a , b , c ) { this . x = a || 0 , this . y = b || 0 , this . radius = c || 0 } , b . Circle . prototype . clone = function ( ) { return new b . Circle ( this . x , this . y , this . radius ) } , b . Circle . prototype . contains = function ( a , b ) { if ( this . radius <= 0 ) return ! 1 ; var c = this . x - a , d = this . y - b , e = this . radius * this . radius ; return c *= c , d *= d , e >= c + d } , b . Circle . prototype . constructor = b . Circle , b . Ellipse = function ( a , b , c , d ) { this . x = a || 0 , this . y = b || 0 , this . width = c || 0 , this . height = d || 0 } , b . Ellipse . prototype . clone = function ( ) { return new b . Ellipse ( this . x , this . y , this . width , this . height ) } , b . Ellipse . prototype . contains = function ( a , b ) { if ( this . width <= 0 || this . height <= 0 ) return ! 1 ; var c = ( a - this . x ) / this . width , d = ( b - this . y ) / this . height ; return c *= c , d *= d , 1 >= c + d } , b . Ellipse . prototype . getBounds = function ( ) { return new b . Rectangle ( this . x , this . y , this . width , this . height ) } , b . Ellipse . prototype . constructor = b . Ellipse , b . determineMatrixArrayType = function ( ) { return "undefined" != typeof Float32Array ? Float32Array : Array } , b . Matrix2 = b . determineMatrixArrayType ( ) , b . Matrix = function ( ) { this . a = 1 , this . b = 0 , this . c = 0 , this . d = 1 , this . tx = 0 , this . ty = 0 } , b . Matrix . prototype . fromArray = function ( a ) { this . a = a [ 0 ] , this . b = a [ 1 ] , this . c = a [ 3 ] , this . d = a [ 4 ] , this . tx = a [ 2 ] , this . ty = a [ 5 ] } , b . Matrix . prototype . toArray = function ( a ) { this . array || ( this . array = new Float32Array ( 9 ) ) ; var b = this . array ; return a ? ( this . array [ 0 ] = this . a , this . array [ 1 ] = this . c , this . array [ 2 ] = 0 , this . array [ 3 ] = this . b , this . array [ 4 ] = this . d , this . array [ 5 ] = 0 , this . array [ 6 ] = this . tx , this . array [ 7 ] = this . ty , this . array [ 8 ] = 1 ) : ( this . array [ 0 ] = this . a , this . array [ 1 ] = this . b , this . array [ 2 ] = this . tx , this . array [ 3 ] = this . c , this . array [ 4 ] = this . d , this . array [ 5 ] = this . ty , this . array [ 6 ] = 0 , this . array [ 7 ] = 0 , this . array [ 8 ] = 1 ) , b } , b . identityMatrix = new b . Matrix , b . DisplayObject = function ( ) { this . position = new b . Point , this . scale = new b . Point ( 1 , 1 ) , this . pivot = new b . Point ( 0 , 0 ) , this . rotation = 0 , this . alpha = 1 , this . visible = ! 0 , this . hitArea = null , this . buttonMode = ! 1 , this . renderable = ! 1 , this . parent = null , this . stage = null , this . worldAlpha = 1 , this . _interactive = ! 1 , this . defaultCursor = "pointer" , this . worldTransform = new b . Matrix , this . color = [ ] , this . dynamic = ! 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 . setInteractive = function ( a ) { this . interactive = a } , Object . defineProp
} , 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 vec2 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;" , " vec3 color = mod(vec3(aColor.y/65536.0, aColor.y/256.0, aColor.y), 256.0) / 256.0;" , " vColor = vec4(color * aColor.x, aColor.x);" , "}" ] , b . PixiFastShader = function ( a ) { 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 . 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 ( ) { this . program = null , this . fragmentSrc = [ "precision mediump float;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "uniform float alpha;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));" , " gl_FragColor = gl_FragColor * alpha;" , "}" ] , this . vertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aTextureCoord;" , "attribute float aColor;" , "uniform mat3 translationMatrix;" , "uniform vec2 projectionVector;" , "varying vec2 vTextureCoord;" , "uniform vec2 offsetVector;" , "varying float 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 + 1.0 , 0.0, 1.0);" , " vTextureCoord = aTextureCoord;" , " vColor = aColor;" , "}" ] } , b . StripShader . prototype . init = function ( ) { var a = b . 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 , " a
2014-05-20 09:02:23 +00:00
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 ; j < c . filterPasses . length - 1 ; j ++ ) { var k = c . filterPasses [ j ] ; a . bindFramebuffer ( a . FRAMEBUFFER , i . frameBuffer ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , h . texture ) , this . applyFilterPass ( k , d , d . width , d . height ) ; var l = h ; h = i , i = l } a . enable ( a . BLEND ) , e = h , this . texturePool . push ( i ) } var m = c . filterPasses [ c . filterPasses . length - 1 ] ; this . offsetX -= d . x , this . offsetY -= d . y ; var n = this . width , o = this . height , p = 0 , q = 0 , r = this . buffer ; if ( 0 === this . filterStack . length ) a . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) ; else { var s = this . filterStack [ this . filterStack . length - 1 ] ; d = s . _filterArea , n = d . width , o = d . height , p = d . x , q = d . y , r = s . _glFilterTexture . frameBuffer } f . x = n / 2 , f . y = - o / 2 , g . x = p , g . y = q , d = c . _filterArea ; var t = d . x - p , u = d . y - q ; a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , this . vertexArray [ 0 ] = t , this . vertexArray [ 1 ] = u + d . height , this . vertexArray [ 2 ] = t + d . width , this . vertexArray [ 3 ] = u + d . height , this . vertexArray [ 4 ] = t , this . vertexArray [ 5 ] = u , this . vertexArray [ 6 ] = t + d . width , this . vertexArray [ 7 ] = u , 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 ) , a . viewport ( 0 , 0 , n , o ) , a . bindFramebuffer ( a . FRAMEBUFFER , r ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , e . texture ) , this . applyFilterPass ( m , d , n , o ) , a . useProgram ( this . defaultShader . program ) , a . uniform2f ( this . defaultShader . projectionVector , n / 2 , - o / 2 ) , a . uniform2f ( this . defaultShader . offsetVector , - p , - q ) , this . texturePool . push ( e ) , c . _glFilterTexture = null } , b . WebGLFilterManager . prototype . applyFilterPass = function ( a , c , d , e ) { var f = this . gl , g = a . shaders [ f . id ] ; g || ( g = new b . PixiShader ( f ) , g . fragmentSrc = a . fragmentSrc , g . uniforms = a . uniforms , g . init ( ) , a . shaders [ f . id ] = g ) , f . useProgram ( g . program ) , f . uniform2f ( g . projectionVector , d / 2 , - e / 2 ) , f . uniform2f ( g . offsetVector , 0 , 0 ) , a . uniforms . dimensions && ( a . uniforms . dimensions . value [ 0 ] = this . width , a . uniforms . dimensions . value [ 1 ] = this . height , a . uniforms . dimensions . value [ 2 ] = this . vertexArray [ 0 ] , a . uniforms . dimensions . value [ 3 ] = this . vertexArray [ 5 ] ) , g . syncUniforms ( ) , f . bindBuffer ( f . ARRAY _BUFFER , this . vertexBuffer ) , f . vertexAttribPointer ( g . aVertexPosition , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . uvBuffer ) , f . vertexAttribPointer ( g . aTextureCoord , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . colorBuffer ) , f . vertexAttribPointer ( g . colorAttribute , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , f . drawElements ( f . TRIANGLES , 6 , f . UNSIGNED _SHORT , 0 ) , this . renderSession . drawCount ++ } , b . WebGLFilterManager . prototype . initShaderBuffers = function ( ) { var a = this . gl ; this . vertexBuffer = a . createBuffer ( ) , this . uvBuffer = a . createBuffer ( ) , this . colorBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , this . vertexArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertexArray , a . STATIC _DRAW ) , this . uvArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . uvBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . uvArray , a . STATIC _DRAW ) , this . colorArray = new Float32Array ( [ 1 , 16777215 , 1 , 16777215 , 1 , 16777215 , 1 , 16777215 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . colorBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . colorArray , a . STATIC _DRAW ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , new Uint16Array ( [ 0 , 1 , 2 , 1 , 3 , 2 ] ) , a . STATIC _DRAW ) } , b . WebGLFilterManager . prototype . destroy = function ( ) { var a = this . gl ; this . filterStack = null , this . offsetX = 0 , this . offsetY = 0 ; for ( var b = 0 ; b < this . texturePool . length ; b ++ ) this . texturePool . destroy ( ) ; this . texturePool = null , a . deleteBuffer ( this . vertexBuffer ) , a . deleteBuffer ( this . uvBuffer ) , a . deleteBuffer ( this . colorBuffer ) , a . deleteBuffer ( this . indexBuffer ) } , b . FilterTexture = function ( a , c , d , e ) { this . gl = a , this . frameBuffer = a . createFramebuffer ( ) , this . texture = a . createTexture ( ) , e = e || b . scaleModes . DEFAULT , a . bindTexture ( a . TEX
2014-05-29 16:37:28 +00:00
} , b . RenderTexture . prototype . renderWebGL = function ( a , c , d ) { var e = this . renderer . gl ; e . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) , e . viewport ( 0 , 0 , this . width , this . height ) , e . bindFramebuffer ( e . FRAMEBUFFER , this . textureBuffer . frameBuffer ) , d && this . textureBuffer . clear ( ) ; var f = a . children , g = a . worldTransform ; a . worldTransform = b . RenderTexture . tempMatrix , a . worldTransform . d = - 1 , a . worldTransform . ty = - 2 * this . projection . y , c && ( a . worldTransform . tx = c . x , a . worldTransform . ty -= c . y ) ; for ( var h = 0 , i = f . length ; i > h ; h ++ ) f [ h ] . updateTransform ( ) ; b . WebGLRenderer . updateTextures ( ) , this . renderer . renderDisplayObject ( a , this . projection , this . textureBuffer . frameBuffer ) , a . worldTransform = g } , b . RenderTexture . prototype . renderCanvas = function ( a , c , d ) { var e = a . children , f = a . worldTransform ; a . worldTransform = b . RenderTexture . tempMatrix , c && ( a . worldTransform . tx = c . x , a . worldTransform . ty = c . y ) ; for ( var g = 0 , h = e . length ; h > g ; g ++ ) e [ g ] . updateTransform ( ) ; d && this . textureBuffer . clear ( ) ; var i = this . textureBuffer . context ; this . renderer . renderDisplayObject ( a , i ) , i . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , a . worldTransform = f } , b . RenderTexture . tempMatrix = new b . Matrix , "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 ( ) { var a = this , b = b || { VERSION : "2.0.6" , 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 , 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 ( PIXI . InteractionManager = PIXI . InteractionManager || function ( ) { } , b . Utils = { transposeArray : function ( a ) { for ( var b = new Array ( a [ 0 ] . length ) , c = 0 ; c < a [ 0 ] . length ; c ++ ) { b [ c ] = new Array ( a . length - 1 ) ; for ( var d = a . length - 1 ; d > - 1 ; d -- ) b [ c ] [ d ] = a [ d ] [ c ] } return b } , rotateArray : function ( a , c ) { if ( "string" != typeof c && ( c = ( c % 360 + 360 ) % 360 ) , 90 === c || - 270 === c || "rotateLeft" === c ) a = b . Utils . transposeArray ( a ) , a = a . reverse ( ) ; else if ( - 90 === c || 270 === c || "rotateRight" === c ) a = a . reverse ( ) , a = b . Utils . transposeArray ( a ) ; else if ( 180 === Math . abs ( c ) || "rotate180" === c ) { for ( var d = 0 ; d < a . length ; d ++ ) a [ d ] . reverse ( ) ; a = a . reverse ( ) } return 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 } , shuffle : function ( a ) { for ( var b = a . length - 1 ; b > 0 ; b -- ) { var c = Math . floor ( Math . random ( ) * ( b + 1 ) ) , d = a [ b ] ; a [ b ] = a [ c ] , a [ c ] = d } return a } , 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 , c , 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 ( c in a ) d = h [ c ] , e = a [ c ] , h !== e && ( k && e && ( b . Utils . isPlainObject ( e ) || ( f = Array . isArray ( e ) ) ) ? ( f ? ( f = ! 1 , g = d && Array . isArray ( d ) ? d : [ ] ) : g = d && b . Utils . isPlainObject ( d ) ? d : { } , h [ c ] = b . Utils . extend ( k , g , e ) ) : void 0 !== e && ( h [ c ] = e ) ) ; return h } } , "function" != typeof 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 )
} , 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 ( ) { this . onPreRenderCallback && this . onPreRenderCallback . call ( this . callbackContext , this . game ) } , render : function ( ) { this . _created && this . onRenderCallback ? ( this . game . renderType === b . CANVAS && ( this . game . context . save ( ) , this . game . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) ) , this . onRenderCallback . call ( this . callbackContext , this . game ) , this . game . renderType === b . CANVAS && this . game . context . restore ( ) ) : this . onLoadRenderCallback && this . onLoadRenderCallback . call ( this . callbackContext , this . game ) } , destroy : function ( ) { 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 } } , b . StateManager . prototype . constructor = b . StateManager , b . LinkedList = function ( ) { this . next = null , this . prev = null , this . first = null , this . last = null , this . total = 0 } , b . 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 ) } } } , b . LinkedList . prototype . constructor = b . LinkedList , b . ArrayList = function ( ) { this . total = 0 , this . position = 0 , this . list = [ ] } , b . ArrayList . prototype = { add : function ( a ) { return this . exists ( a ) || ( this . list . push ( a ) , this . total ++ ) , a } , getIndex : function ( a ) { return this . list . indexOf ( a ) } , exists : function ( a ) { return this . list . indexOf ( a ) > - 1 } , reset : function ( ) { this . list . length = 0 , this . total = 0 } , remove : function ( a ) { var b = this . list . indexOf ( a ) ; return b > - 1 ? ( this . list . splice ( b , 1 ) , this . total -- , a ) : void 0 } , 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 ) } } , Object . defineProperty ( b . ArrayList . prototype , "first" , { get : function ( ) { return this . position = 0 , this . total > 0 ? this . list [ 0 ] : null } } ) , Object . defineProperty ( b . ArrayList . prototype , "next" , { get : function ( ) { return this . position < this . total ? ( this . position ++ , this . list [ this . position ] ) : null } } ) , b . ArrayList . prototype . constructor = b . ArrayList , b . Signal = function ( ) { this . _bindings = [ ] , this . _prevParams = null ; var a = this ; this . dispatch = function ( ) { b . Signal . prototype . dispatch . apply ( a , arguments ) } } , b . Signal . prototype = { memorize : ! 1 , _shouldPropagate : ! 0 , active : ! 0 , validateListener : function ( a , b ) { if ( "function" != typeof a ) throw new Error ( "listener is a required param of {fn}() and should be a Function." . replace ( "{fn}" , b ) ) } , _registerListener : function ( a , c , d , e ) { var f , g = this . _indexOfListener ( a , d ) ; if ( - 1 !== g ) { if ( f = this . _bindings
} , checkOrientationState : function ( ) { this . incorrectOrientation ? ( this . forceLandscape && window . innerWidth > window . innerHeight || this . forcePortrait && window . innerHeight > window . innerWidth ) && ( this . incorrectOrientation = ! 1 , this . leaveIncorrectOrientation . dispatch ( ) , this . orientationSprite && ( this . orientationSprite . visible = ! 1 , this . game . world . visible = ! 0 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) ) : ( this . forceLandscape && window . innerWidth < window . innerHeight || this . forcePortrait && window . innerHeight < window . innerWidth ) && ( this . incorrectOrientation = ! 0 , this . enterIncorrectOrientation . dispatch ( ) , this . orientationSprite && this . orientationSprite . visible === ! 1 && ( this . orientationSprite . visible = ! 0 , this . game . world . visible = ! 1 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) ) } , checkOrientation : function ( a ) { this . event = a , this . orientation = window . orientation , this . isLandscape ? this . enterLandscape . dispatch ( this . orientation , ! 0 , ! 1 ) : this . enterPortrait . dispatch ( this . orientation , ! 1 , ! 0 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) } , checkResize : function ( a ) { this . event = a , this . orientation = window . outerWidth > window . outerHeight ? 90 : 0 , this . isLandscape ? this . enterLandscape . dispatch ( this . orientation , ! 0 , ! 1 ) : this . enterPortrait . dispatch ( this . orientation , ! 1 , ! 0 ) , this . scaleMode !== b . ScaleManager . NO _SCALE && this . refresh ( ) , this . checkOrientationState ( ) } , refresh : function ( ) { if ( this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( this . game . device . android && ! this . game . device . chrome ? window . scrollTo ( 0 , 1 ) : window . scrollTo ( 0 , 0 ) ) , null === this . _check && this . maxIterations > 0 ) { this . _iterations = this . maxIterations ; var a = this ; this . _check = window . setInterval ( function ( ) { return a . setScreenSize ( ) } , 10 ) , this . setScreenSize ( ) } } , setScreenSize : function ( a ) { "undefined" == typeof a && ( a = ! 1 ) , this . game . device . iPad || this . game . device . webApp || this . game . device . desktop || ( this . game . device . android && ! this . game . device . chrome ? window . scrollTo ( 0 , 1 ) : window . scrollTo ( 0 , 0 ) ) , this . _iterations -- , ( a || window . innerHeight > this . _startHeight || this . _iterations < 0 ) && ( document . documentElement . style . minHeight = window . innerHeight + "px" , this . incorrectOrientation ? this . setMaximum ( ) : this . isFullScreen ? this . fullScreenScaleMode === b . ScaleManager . EXACT _FIT ? this . setExactFit ( ) : this . fullScreenScaleMode === b . ScaleManager . SHOW _ALL && this . setShowAll ( ) : this . scaleMode === b . ScaleManager . EXACT _FIT ? this . setExactFit ( ) : this . scaleMode === b . ScaleManager . SHOW _ALL && this . setShowAll ( ) , this . setSize ( ) , clearInterval ( this . _check ) , this . _check = null ) } , setSize : function ( ) { this . incorrectOrientation || ( this . maxWidth && this . width > this . maxWidth && ( this . width = this . maxWidth ) , this . maxHeight && this . height > this . maxHeight && ( this . height = this . maxHeight ) , this . minWidth && this . width < this . minWidth && ( this . width = this . minWidth ) , this . minHeight && this . height < this . minHeight && ( this . height = this . minHeight ) ) , this . game . canvas . style . width = this . width + "px" , this . game . canvas . style . height = this . height + "px" , this . game . input . scale . setTo ( this . game . width / this . width , this . game . height / this . height ) , this . pageAlignHorizontally && ( this . width < window . innerWidth && ! this . incorrectOrientation ? ( this . margin . x = Math . round ( ( window . innerWidth - this . width ) / 2 ) , this . game . canvas . style . marginLeft = this . margin . x + "px" ) : ( this . margin . x = 0 , this . game . canvas . style . marginLeft = "0px" ) ) , this . pageAlignVertically && ( this . height < window . innerHeight && ! this . incorrectOrientation ? ( this . margin . y = Math . round ( ( window . innerHeight - this . height ) / 2 ) , this . game . canvas . style . marginTop = this . margin . y + "px" ) : ( this . margin . y = 0 , this . game . canvas . style . marginTop = "0px" ) ) , b . Canvas . getOffset ( this . game . canvas , this . game . stage . offset ) , this . bounds . setTo ( this . game . stage . offset . x , this . game . stage . offset . y , this . width , this . height ) , this . aspectRatio = this . width / this . height , this . scaleFactor . x = this . game . width / this . width , this . scaleFactor . y = this . game . height / this . height , this . scaleFactorInversed . x = this . width / this . game . width , this . scaleFactorInversed . y = this . height / this . game . height , this . hasResized . dispatch ( this . width , this . height ) , this . checkOrientationState ( ) } , setMaximum : function ( ) { this . width = window . innerWidth , this . height = window . innerHeight } , setShowAll : function ( ) { var a = Math . min ( window . i
} } , onPointerDown : function ( a ) { this . game . input . disabled || this . disabled || ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . startPointer ( a ) ) } , onPointerMove : function ( a ) { this . game . input . disabled || this . disabled || ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . updatePointer ( a ) ) } , onPointerUp : function ( a ) { this . game . input . disabled || this . disabled || ( a . preventDefault ( ) , a . identifier = a . pointerId , this . game . input . stopPointer ( a ) ) } , stop : function ( ) { this . game . canvas . removeEventListener ( "MSPointerDown" , this . _onMSPointerDown ) , this . game . canvas . removeEventListener ( "MSPointerMove" , this . _onMSPointerMove ) , this . game . canvas . removeEventListener ( "MSPointerUp" , this . _onMSPointerUp ) , this . game . canvas . removeEventListener ( "pointerDown" , this . _onMSPointerDown ) , this . game . canvas . removeEventListener ( "pointerMove" , this . _onMSPointerMove ) , this . game . canvas . removeEventListener ( "pointerUp" , this . _onMSPointerUp ) } } , b . MSPointer . prototype . constructor = b . MSPointer , b . Pointer = function ( a , c ) { this . game = a , this . id = c , this . type = b . POINTER , this . exists = ! 0 , this . identifier = 0 , this . pointerId = null , this . target = null , this . button = null , this . _holdSent = ! 1 , this . _history = [ ] , this . _nextDrop = 0 , this . _stateReset = ! 1 , this . withinGame = ! 1 , this . clientX = - 1 , this . clientY = - 1 , this . pageX = - 1 , this . pageY = - 1 , this . screenX = - 1 , this . screenY = - 1 , this . rawMovementX = 0 , this . rawMovementY = 0 , this . movementX = 0 , this . movementY = 0 , this . x = - 1 , this . y = - 1 , this . isMouse = ! 1 , this . isDown = ! 1 , this . isUp = ! 0 , this . timeDown = 0 , this . timeUp = 0 , this . previousTapTime = 0 , this . totalTouches = 0 , this . msSinceLastClick = Number . MAX _VALUE , this . targetObject = null , this . active = ! 1 , this . position = new b . Point , this . positionDown = new b . Point , this . positionUp = new b . Point , this . circle = new b . Circle ( 0 , 0 , 44 ) , 0 === c && ( this . isMouse = ! 0 ) } , b . Pointer . prototype = { start : function ( a ) { return a . pointerId && ( this . pointerId = a . pointerId ) , this . identifier = a . identifier , this . target = a . target , "undefined" != typeof a . button && ( this . button = a . button ) , this . _history = [ ] , this . active = ! 0 , this . withinGame = ! 0 , this . isDown = ! 0 , this . isUp = ! 1 , this . msSinceLastClick = this . game . time . now - this . timeDown , this . timeDown = this . game . time . now , this . _holdSent = ! 1 , this . move ( a , ! 0 ) , this . positionDown . setTo ( this . x , this . y ) , ( this . game . input . multiInputOverride === b . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride === b . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride === b . Input . TOUCH _OVERRIDES _MOUSE && 0 === this . game . input . currentPointers ) && ( this . game . input . x = this . x , this . game . input . y = this . y , this . game . input . position . setTo ( this . x , this . y ) , this . game . input . onDown . dispatch ( this , a ) , this . game . input . resetSpeed ( this . x , this . y ) ) , this . _stateReset = ! 1 , this . totalTouches ++ , this . isMouse || this . game . input . currentPointers ++ , null !== this . targetObject && this . targetObject . _touchedHandler ( this ) , this } , update : function ( ) { this . active && ( this . _holdSent === ! 1 && this . duration >= this . game . input . holdRate && ( ( this . game . input . multiInputOverride == b . Input . MOUSE _OVERRIDES _TOUCH || this . game . input . multiInputOverride == b . Input . MOUSE _TOUCH _COMBINE || this . game . input . multiInputOverride == b . 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 . now >= this . _nextDrop && ( this . _nextDrop = this . game . time . now + 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 , c ) { if ( ! this . game . input . pollLocked ) { if ( "undefined" == typeof c && ( c = ! 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 && ! c && ( 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 . stage . offset . x ) * this . game . input . scale . x , this . y = ( this . pageY - this . game . stage . offset . y ) * this . game . input . scale . y , this . position . setTo ( this . x , this . y ) , this . circle . x = this
} , overDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isOver ? this . game . time . now - this . _pointerData [ a ] . timeOver : - 1 } , downDuration : function ( a ) { return a = a || 0 , this . _pointerData [ a ] . isDown ? this . game . time . now - this . _pointerData [ a ] . timeDown : - 1 } , enableDrag : function ( a , c , d , e , f , g ) { "undefined" == typeof a && ( a = ! 1 ) , "undefined" == typeof c && ( c = ! 1 ) , "undefined" == typeof d && ( d = ! 1 ) , "undefined" == typeof e && ( e = 255 ) , "undefined" == typeof f && ( f = null ) , "undefined" == typeof g && ( g = null ) , this . _dragPoint = new b . Point , this . draggable = ! 0 , this . bringToTop = c , this . dragOffset = new b . Point , this . dragFromCenter = a , this . pixelPerfect = d , this . pixelPerfectAlpha = e , f && ( this . boundsRect = f ) , g && ( this . boundsSprite = g ) } , disableDrag : function ( ) { if ( this . _pointerData ) for ( var a = 0 ; 10 > a ; a ++ ) this . _pointerData [ a ] . isDragged = ! 1 ; this . draggable = ! 1 , this . isDragged = ! 1 , this . _draggedPointerID = - 1 } , startDrag : function ( a ) { 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 b = this . sprite . getBounds ( ) ; this . sprite . x = a . x + ( this . sprite . x - b . centerX ) , this . sprite . y = a . y + ( this . sprite . y - b . centerY ) , this . _dragPoint . setTo ( this . sprite . x - a . x , this . sprite . y - a . y ) } else this . _dragPoint . setTo ( this . sprite . x - a . x , this . sprite . y - a . y ) ; this . updateDrag ( a ) , this . bringToTop && ( this . _dragPhase = ! 0 , this . sprite . bringToTop ( ) ) , this . sprite . events . onDragStart . dispatch ( this . sprite , 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 . x < this . boundsRect . left ? this . sprite . cameraOffset . x = this . boundsRect . cameraOffset . x : this . sprite . cameraOffset . x + this . sprite . width > this . boundsRect . right && ( this . sprite . cameraOffset . x = this . boundsRect . right - this . sprite . width ) , this . sprite . cameraOffset . y < this . boundsRect . top ? this . sprite . cameraOffset . y = this . boundsRect . top : this . sprite . cameraOffset . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . cameraOffset . y = this . boundsRect . bottom - this . sprite . height ) ) : ( this . sprite . x < this . boundsRect . left ? this . sprite . x = this . boundsRect . x : this . sprite . x + this . sprite . width > this . boundsRect . right && ( this . sprite . x = this . boundsRect . right - this . sprite . width ) , this . sprite . y < this . boundsRect . top ? this . sprite . y = this . boundsRect . top : this . sprite . y + this . sprite . height > this . boundsRect . bottom && ( this . sprite . y = this . boundsRect . bottom - this . sprite . height ) ) } , checkBoundsSprite : function ( ) { this . sprite . fixedToCamera && this . boundsSprite . fixedToCamera ? ( this . sprite . cameraOffset . x < this . boundsSprite . camerOffset . x ? this . sprite . cameraOffset . x = this . boundsSprite . camerOffset . x : this . sprite . cameraOffset . x + this . sprite . width > this . boundsSprite . camerOffset . x + this . boundsSprite . width && ( this . sprite . camer
} , set : function ( a ) { a ? ( this . _cache [ 7 ] = 1 , this . cameraOffset . set ( this . x , this . y ) ) : this . _cache [ 7 ] = 0 } } ) , Object . defineProperty ( b . Image . 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 ) } } ) , Object . defineProperty ( b . Image . prototype , "destroyPhase" , { get : function ( ) { return ! ! this . _cache [ 8 ] } } ) , b . TileSprite = function ( a , c , d , e , f , g , h ) { c = c || 0 , d = d || 0 , e = e || 256 , f = f || 256 , g = g || null , h = h || null , this . game = a , this . name = "" , this . type = b . TILESPRITE , this . z = 0 , this . events = new b . Events ( this ) , this . animations = new b . AnimationManager ( this ) , this . key = g , this . _frame = 0 , this . _frameName = "" , this . _scroll = new b . Point , PIXI . TilingSprite . call ( this , PIXI . TextureCache . _ _default , e , f ) , this . loadTexture ( g , h ) , this . position . set ( c , d ) , this . input = null , this . world = new b . Point ( c , d ) , this . autoCull = ! 1 , this . checkWorldBounds = ! 1 , this . cameraOffset = new b . Point , this . body = null , this . _cache = [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 ] } , b . TileSprite . prototype = Object . create ( PIXI . TilingSprite . prototype ) , b . TileSprite . prototype . constructor = b . TileSprite , b . TileSprite . prototype . preUpdate = function ( ) { if ( 1 === this . _cache [ 4 ] && this . exists ) return 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 . _cache [ 0 ] = this . world . x , this . _cache [ 1 ] = this . world . y , this . _cache [ 2 ] = this . rotation , this . body && this . body . enable && this . body . preUpdate ( ) , this . _cache [ 4 ] = 0 , ! 1 ; if ( this . _cache [ 0 ] = this . world . x , this . _cache [ 1 ] = this . world . y , this . _cache [ 2 ] = this . rotation , ! this . exists || ! this . parent . exists ) return this . _cache [ 3 ] = - 1 , ! 1 ; ( this . autoCull || this . checkWorldBounds ) && this . _bounds . copyFrom ( this . getBounds ( ) ) , this . autoCull && ( this . renderable = this . game . world . camera . screenView . intersects ( this . _bounds ) ) , this . checkWorldBounds && ( 1 === this . _cache [ 5 ] && this . game . world . bounds . intersects ( this . _bounds ) ? ( this . _cache [ 5 ] = 0 , this . events . onEnterBounds . dispatch ( this ) ) : 0 !== this . _cache [ 5 ] || this . game . world . bounds . intersects ( this . _bounds ) || ( this . _cache [ 5 ] = 1 , this . events . onOutOfBounds . dispatch ( this ) ) ) , this . world . setTo ( this . game . camera . x + this . worldTransform . tx , this . game . camera . y + this . worldTransform . ty ) , this . visible && ( this . _cache [ 3 ] = this . game . stage . currentRenderOrderID ++ ) , this . animations . update ( ) , 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 . body && this . body . enable && this . body . preUpdate ( ) ; for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . preUpdate ( ) ; return ! 0 } , b . TileSprite . prototype . update = function ( ) { } , b . TileSprite . prototype . postUpdate = function ( ) { this . exists && this . body && this . body . enable && this . body . postUpdate ( ) , 1 === this . _cache [ 7 ] && ( this . position . x = this . game . camera . view . x + this . cameraOffset . x , this . position . y = this . game . camera . view . y + this . cameraOffset . y ) ; for ( var a = 0 , b = this . children . length ; b > a ; a ++ ) this . children [ a ] . postUpdate ( ) } , b . TileSprite . prototype . autoScroll = function ( a , b ) { this . _scroll . set ( a , b ) } , b . TileSprite . prototype . stopScroll = function ( ) { this . _scroll . set ( 0 , 0 ) } , b . TileSprite . prototype . loadTexture = function ( a , c ) { return c = c || 0 , a instanceof b . RenderTexture ? ( this . key = a . key , void this . setTexture ( a ) ) : a instanceof b . BitmapData ? ( this . key = a , void this . setTexture ( a . texture ) ) : a instanceof PIXI . Texture ? ( this . key = a , void this . setTexture ( a ) ) : null === a || "undefined" == typeof a ? ( this . key = "__default" , void this . setTexture ( PIXI . TextureCache [ this . key ] ) ) : "string" != typeof a || this . game . cache . checkImageKey ( a ) ? this . game . cache . isSpriteSheet ( a ) ? ( this . key = a , this . animations . loadFrameData ( this . game . cache . getFrameData ( a ) ) , "string" == typeof c ? this . frameName = c : this . frame = c , void 0 ) : ( this . key = a , void this . setTexture ( PIXI . TextureCache [ a ] ) ) : ( this . key = "__missing" , void this . setTexture ( PIXI . TextureCache [ this . key ] ) ) } , b . TileSprite . prototype . destroy = function ( a ) { if ( null !== this . game && ! this . destroyPhase ) { "undefined" == typeof a && ( a = ! 0 ) , this . _cache [ 8 ] = 1 , this . filters && ( this . filters = null ) , this . parent && ( this . parent instanceof b . Group ? this . parent . remove ( this ) : this . pa
} , set : function ( a ) { this . stamp . smoothed = a , this . buildRetroFontText ( ) } } ) , b . Particle = function ( a , c , d , e , f ) { b . Sprite . call ( this , a , c , d , e , f ) , this . autoScale = ! 1 , this . scaleData = null , this . _s = 0 , this . autoAlpha = ! 1 , this . alphaData = null , this . _a = 0 } , b . Particle . prototype = Object . create ( b . Sprite . prototype ) , b . Particle . prototype . constructor = b . Particle , b . Particle . prototype . update = function ( ) { this . autoScale && ( this . _s -- , this . _s ? this . scale . set ( this . scaleData [ this . _s ] . x , this . scaleData [ this . _s ] . y ) : this . autoScale = ! 1 ) , this . autoAlpha && ( this . _a -- , this . _a ? this . alpha = this . alphaData [ this . _a ] . v : this . autoAlpha = ! 1 ) } , b . Particle . prototype . onEmit = function ( ) { } , b . Particle . prototype . setAlphaData = function ( a ) { this . alphaData = a , this . _a = a . length - 1 , this . alpha = this . alphaData [ this . _a ] . v , this . autoAlpha = ! 0 } , b . Particle . prototype . setScaleData = function ( a ) { this . scaleData = a , this . _s = a . length - 1 , this . scale . set ( this . scaleData [ this . _s ] . x , this . scaleData [ this . _s ] . y ) , this . autoScale = ! 0 } , b . Particle . prototype . reset = function ( a , b , c ) { return "undefined" == typeof c && ( c = 1 ) , this . world . setTo ( a , b ) , this . position . x = a , this . position . y = b , this . alive = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this . _outOfBoundsFired = ! 1 , this . health = c , this . body && this . body . reset ( a , b , ! 1 , ! 1 ) , this . _cache [ 4 ] = 1 , this . alpha = 1 , this . scale . set ( 1 ) , this . autoScale = ! 1 , this . autoAlpha = ! 1 , this } , b . Canvas = { create : function ( a , b , c , d ) { if ( "undefined" == typeof d && ( d = ! 1 ) , a = a || 256 , b = b || 256 , d ) var e = document . createElement ( "canvas" ) ; else var e = document . createElement ( navigator . isCocoonJS ? "screencanvas" : "canvas" ) ; return "string" == typeof c && "" !== c && ( e . id = c ) , e . width = a , e . height = b , e . style . display = "block" , e } , getOffset : function ( a , c ) { c = c || new b . Point ; var d = a . getBoundingClientRect ( ) , e = a . clientTop || document . body . clientTop || 0 , f = a . clientLeft || document . body . clientLeft || 0 , g = 0 , h = 0 ; return "CSS1Compat" === document . compatMode ? ( g = window . pageYOffset || document . documentElement . scrollTop || a . scrollTop || 0 , h = window . pageXOffset || document . documentElement . scrollLeft || a . scrollLeft || 0 ) : ( g = window . pageYOffset || document . body . scrollTop || a . scrollTop || 0 , h = window . pageXOffset || document . body . scrollLeft || a . scrollLeft || 0 ) , c . x = d . left + h - f , c . y = d . top + g - e , c } , getAspectRatio : function ( a ) { return a . width / a . height } , 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 } , 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 } , 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 . msInterpolationMode = "nearest-neighbor" , a } , setImageRenderingBicubic : function ( a ) { return a . style [ "image-rendering" ] = "auto" , a . style . msInterpolationMode = "bicubic" , a } } , b . Device = function ( a ) { this . game = a , this . desktop = ! 1 , this . iOS = ! 1 , this . cocoonJS = ! 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 . file = ! 1 , this . fileSystem = ! 1 , this . localStorage = ! 1 , this . webGL = ! 1 , this . worker = ! 1 , this . touch = ! 1 , this . mspointer = ! 1 , this . css3D = ! 1 , this . pointerLock = ! 1 , this . typedArray = ! 1 , this . vibration = ! 1 , this . getUserMedia = ! 1 , this . quirksMode = ! 1 , this . arora = ! 1 , this . chrome =
} , b . Time . prototype = { boot : function ( ) { this . _started = Date . now ( ) , this . events . start ( ) } , create : function ( a ) { "undefined" == typeof a && ( a = ! 0 ) ; var c = new b . Timer ( this . game , a ) ; return this . _timers . push ( c ) , c } , removeAll : function ( ) { for ( var a = 0 ; a < this . _timers . length ; a ++ ) this . _timers [ a ] . destroy ( ) ; this . _timers = [ ] , this . events . removeAll ( ) } , update : function ( a ) { if ( this . now = a , this . timeToCall = this . game . math . max ( 0 , 16 - ( a - this . lastTime ) ) , this . elapsed = this . now - this . time , this . elapsed > this . timeCap && ( this . elapsed = 1 / 60 ) , this . physicsElapsed = this . elapsed / 1e3 || 1 / 60 , this . deltaCap > 0 && this . physicsElapsed > this . deltaCap && ( this . physicsElapsed = this . deltaCap ) , this . advancedTiming && ( this . msMin = this . game . math . min ( this . msMin , this . elapsed ) , this . msMax = this . game . 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 = this . game . math . min ( this . fpsMin , this . fps ) , this . fpsMax = this . game . math . max ( this . fpsMax , this . fps ) , this . _timeLastSecond = this . now , this . frames = 0 ) ) , this . time = this . now , this . lastTime = a + this . timeToCall , ! this . game . paused ) for ( this . events . update ( this . now ) , this . _i = 0 , this . _len = this . _timers . length ; this . _i < this . _len ; ) this . _timers [ this . _i ] . update ( this . now ) ? this . _i ++ : ( this . _timers . splice ( this . _i , 1 ) , this . _len -- ) } , gamePaused : function ( ) { this . _pauseStarted = this . now , this . events . pause ( ) ; for ( var a = this . _timers . length ; a -- ; ) this . _timers [ a ] . _pause ( ) } , gameResumed : function ( ) { this . time = this . now = 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 . now - this . _started ) } , elapsedSince : function ( a ) { return this . now - a } , elapsedSecondsSince : function ( a ) { return . 001 * ( this . now - a ) } , reset : function ( ) { this . _started = this . now , this . removeAll ( ) } } , b . Time . prototype . constructor = b . Time , b . Timer = function ( a , c ) { "undefined" == typeof c && ( c = ! 0 ) , this . game = a , this . running = ! 1 , this . autoDestroy = c , this . expired = ! 1 , this . elapsed = 0 , this . events = [ ] , this . onComplete = new b . 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 } , b . Timer . MINUTE = 6e4 , b . Timer . SECOND = 1e3 , b . Timer . HALF = 500 , b . Timer . QUARTER = 250 , b . Timer . prototype = { create : function ( a , c , d , e , f , g ) { var h = a ; h += 0 === this . _now ? this . game . time . now : this . _now ; var i = new b . TimerEvent ( this , a , h , d , c , 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 . now + ( a || 0 ) , this . running = ! 0 ; for ( var b = 0 ; b < this . events . length ; b ++ ) this . events [ b ] . tick = this . events [ b ] . delay + this . _started } } , stop : function ( a ) { this . running = ! 1 , "undefined" == typeof a && ( a = ! 0 ) , a && ( this . events . length = 0 ) } , remove : function ( a ) { for ( var b = 0 ; b < this . events . length ; b ++ ) if ( this . events [ b ] === a ) return this . events [ b ] . pendingDelete = ! 0 , ! 0 ; return ! 1 } , order : function ( ) { this . events . length > 0 && ( this . events . sort ( this . sortHandler ) , this . nextTick = this . events [ 0 ] . tick ) } , sortHandler : function ( a , b ) { return a . tick < b . tick ? - 1 : a . tick > b . 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 . _len && this . running && this . _now >= this . events [ this . _i ] . tick ; ) 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 .
} , checkKeyExists : function ( a , b ) { if ( this . _fileList . length > 0 ) for ( var c = 0 ; c < this . _fileList . length ; c ++ ) if ( this . _fileList [ c ] . type === a && this . _fileList [ c ] . key === b ) return ! 0 ; return ! 1 } , getAssetIndex : function ( a , b ) { if ( this . _fileList . length > 0 ) for ( var c = 0 ; c < this . _fileList . length ; c ++ ) if ( this . _fileList [ c ] . type === a && this . _fileList [ c ] . key === b ) return c ; return - 1 } , getAsset : function ( a , b ) { if ( this . _fileList . length > 0 ) for ( var c = 0 ; c < this . _fileList . length ; c ++ ) if ( this . _fileList [ c ] . type === a && this . _fileList [ c ] . key === b ) return { index : c , file : this . _fileList [ c ] } ; return ! 1 } , reset : function ( ) { this . preloadSprite = null , this . isLoading = ! 1 , this . _packList . length = 0 , this . _packIndex = 0 , this . _fileList . length = 0 , this . _fileIndex = 0 } , addToFileList : function ( a , b , c , d ) { var e = { type : a , key : b , url : c , data : null , error : ! 1 , loaded : ! 1 } ; if ( "undefined" != typeof d ) for ( var f in d ) e [ f ] = d [ f ] ; this . checkKeyExists ( a , b ) === ! 1 && this . _fileList . push ( e ) } , replaceInFileList : function ( a , b , c , d ) { var e = { type : a , key : b , url : c , data : null , error : ! 1 , loaded : ! 1 } ; if ( "undefined" != typeof d ) for ( var f in d ) e [ f ] = d [ f ] ; var g = this . getAssetIndex ( a , b ) ; - 1 === g ? this . _fileList . push ( e ) : this . _fileList [ g ] = e } , pack : function ( a , b , c , d ) { return "undefined" == typeof b && ( b = null ) , "undefined" == typeof c && ( c = null ) , "undefined" == typeof d && ( d = this ) , null === b && null === c ? ( console . warn ( "Phaser.Loader.pack - Both url and data are null. One must be set." ) , this ) : ( c && "string" == typeof c && ( c = JSON . parse ( c ) ) , this . _packList . push ( { key : a , url : b , data : c , loaded : ! 1 , error : ! 1 , callbackContext : d } ) , this ) } , image : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , c ? this . replaceInFileList ( "image" , a , b ) : this . addToFileList ( "image" , a , b ) , this } , text : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , c ? this . replaceInFileList ( "text" , a , b ) : this . addToFileList ( "text" , a , b ) , this } , json : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , c ? this . replaceInFileList ( "json" , a , b ) : this . addToFileList ( "json" , a , b ) , this } , script : function ( a , b , c , d ) { return "undefined" == typeof c && ( c = ! 1 ) , c !== ! 1 && "undefined" == typeof d && ( d = c ) , this . addToFileList ( "script" , a , b , { callback : c , callbackContext : d } ) , this } , binary : function ( a , b , c , d ) { return "undefined" == typeof c && ( c = ! 1 ) , c !== ! 1 && "undefined" == typeof d && ( d = c ) , this . addToFileList ( "binary" , a , b , { callback : c , callbackContext : d } ) , this } , spritesheet : function ( a , b , c , d , e , f , g ) { return "undefined" == typeof e && ( e = - 1 ) , "undefined" == typeof f && ( f = 0 ) , "undefined" == typeof g && ( g = 0 ) , this . addToFileList ( "spritesheet" , a , b , { frameWidth : c , frameHeight : d , frameMax : e , margin : f , spacing : g } ) , this } , audio : function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 0 ) , this . addToFileList ( "audio" , a , b , { buffer : null , autoDecode : c } ) , this } , tilemap : function ( a , c , d , e ) { if ( "undefined" == typeof c && ( c = null ) , "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = b . Tilemap . CSV ) , null == c && null == d ) return console . warn ( "Phaser.Loader.tilemap - Both url and data are null. One must be set." ) , this ; if ( d ) { switch ( e ) { case b . Tilemap . CSV : break ; case b . Tilemap . TILED _JSON : "string" == typeof d && ( d = JSON . parse ( d ) ) } this . game . cache . addTilemap ( a , null , d , e ) } else this . addToFileList ( "tilemap" , a , c , { format : e } ) ; return this } , physics : function ( a , c , d , e ) { return "undefined" == typeof c && ( c = null ) , "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = b . Physics . LIME _CORONA _JSON ) , null == c && null == d ? ( console . warn ( "Phaser.Loader.physics - Both url and data are null. One must be set." ) , this ) : ( d ? ( "string" == typeof d && ( d = JSON . parse ( d ) ) , this . game . cache . addPhysicsData ( a , null , d , e ) ) : this . addToFileList ( "physics" , a , c , { format : e } ) , this ) } , bitmapFont : function ( a , b , c , d , e , f ) { if ( "undefined" == typeof c && ( c = null ) , "undefined" == typeof d && ( d = null ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , c ) this . addToFileList ( "bitmapfont" , a , b , { xmlURL : c , xSpacing : e , ySpacing : f } ) ; else if ( "string" == typeof d ) { var g ; try { if ( window . DOMParser ) { var h = new DOMParser ; g = h . parseFromString ( d , "text/xml" ) } else g = new ActiveXObject ( "Microsoft.XMLDOM" ) , g . async = "false" , g . loadXML ( d ) } catch ( i ) { g = void 0 } if ( ! g || ! g . documentElement || g . getElementsByTagName ( "parsererror" ) . length ) throw new Error ( "Phaser.Loader. Invalid Bitmap Font XML given" ) ; this . addToFileList ( "bitmapfont" , a , b , { xmlURL : null , xmlData : g , xSpacing : e , ySpacing : f } ) } return this } , atlasJSONArray : function ( a ,
} , cameraInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Camera (" + a . width + " x " + a . height + ")" ) , this . line ( "X: " + a . x + " Y: " + a . y ) , this . line ( "Bounds x: " + a . bounds . x + " Y: " + a . bounds . y + " w: " + a . bounds . width + " h: " + a . bounds . height ) , this . line ( "View x: " + a . view . x + " Y: " + a . view . y + " w: " + a . view . width + " h: " + a . view . height ) , this . stop ( ) } , timer : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Timer (running: " + a . running + " expired: " + a . expired + ")" ) , this . line ( "Next Tick: " + a . next + " Duration: " + a . duration ) , this . line ( "Paused: " + a . paused + " Length: " + a . length ) , this . stop ( ) } , pointer : function ( a , b , c , d , e ) { null != a && ( "undefined" == typeof b && ( b = ! 1 ) , c = c || "rgba(0,255,0,0.5)" , d = d || "rgba(255,0,0,0.5)" , ( b !== ! 0 || a . isUp !== ! 0 ) && ( this . start ( a . x , a . y - 100 , e ) , this . context . beginPath ( ) , this . context . arc ( a . x , a . y , a . circle . radius , 0 , 2 * Math . PI ) , this . context . fillStyle = a . active ? c : d , this . context . fill ( ) , this . context . closePath ( ) , this . context . beginPath ( ) , this . context . moveTo ( a . positionDown . x , a . positionDown . y ) , this . context . lineTo ( a . position . x , a . position . y ) , this . context . lineWidth = 2 , this . context . stroke ( ) , this . context . closePath ( ) , this . line ( "ID: " + a . id + " Active: " + a . active ) , this . line ( "World X: " + a . worldX + " World Y: " + a . worldY ) , this . line ( "Screen X: " + a . x + " Screen Y: " + a . y ) , this . line ( "Duration: " + a . duration + " ms" ) , this . line ( "is Down: " + a . isDown + " is Up: " + a . isUp ) , this . stop ( ) ) ) } , spriteInputInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sprite Input: (" + a . width + " x " + a . height + ")" ) , this . line ( "x: " + a . input . pointerX ( ) . toFixed ( 1 ) + " y: " + a . input . pointerY ( ) . toFixed ( 1 ) ) , this . line ( "over: " + a . input . pointerOver ( ) + " duration: " + a . input . overDuration ( ) . toFixed ( 0 ) ) , this . line ( "down: " + a . input . pointerDown ( ) + " duration: " + a . input . downDuration ( ) . toFixed ( 0 ) ) , this . line ( "just over: " + a . input . justOver ( ) + " just out: " + a . input . justOut ( ) ) , this . stop ( ) } , key : function ( a , b , c , d ) { this . start ( b , c , d , 150 ) , this . line ( "Key:" , a . keyCode , "isDown:" , a . isDown ) , this . line ( "justPressed:" , a . justPressed ( ) , "justReleased:" , a . justReleased ( ) ) , this . line ( "Time Down:" , a . timeDown . toFixed ( 0 ) , "duration:" , a . duration . toFixed ( 0 ) ) , this . stop ( ) } , inputInfo : function ( a , b , c ) { this . start ( a , b , c ) , this . line ( "Input" ) , this . line ( "X: " + this . game . input . x + " Y: " + this . game . input . y ) , this . line ( "World X: " + this . game . input . worldX + " World Y: " + this . game . input . worldY ) , this . line ( "Scale X: " + this . game . input . scale . x . toFixed ( 1 ) + " Scale Y: " + this . game . input . scale . x . toFixed ( 1 ) ) , this . line ( "Screen X: " + this . game . input . activePointer . screenX + " Screen Y: " + this . game . input . activePointer . screenY ) , this . stop ( ) } , spriteBounds : function ( a , b , c ) { var d = a . getBounds ( ) ; d . x += this . game . camera . x , d . y += this . game . camera . y , this . rectangle ( d , b , c ) } , spriteInfo : function ( a , b , c , d ) { this . start ( b , c , d ) , this . line ( "Sprite: (" + a . width + " x " + a . height + ") anchor: " + a . anchor . x + " x " + a . anchor . y ) , this . line ( "x: " + a . x . toFixed ( 1 ) + " y: " + a . y . toFixed ( 1 ) ) , this . line ( "angle: " + a . angle . toFixed ( 1 ) + " rotation: " + a . rotation . toFixed ( 1 ) ) , this . line ( "visible: " + a . visible + " in camera: " + a . inCamera ) , this . stop ( ) } , spriteCoords : function ( a , b , c , d ) { this . start ( b , c , d , 100 ) , a . name && this . line ( a . name ) , this . line ( "x:" , a . x . toFixed ( 2 ) , "y:" , a . y . toFixed ( 2 ) ) , this . line ( "pos x:" , a . position . x . toFixed ( 2 ) , "pos y:" , a . position . y . toFixed ( 2 ) ) , this . line ( "world x:" , a . world . x . toFixed ( 2 ) , "world y:" , a . world . y . toFixed ( 2 ) ) , this . stop ( ) } , lineInfo : function ( a , b , c , d ) { this . start ( b , c , d , 80 ) , this . line ( "start.x:" , a . start . x . toFixed ( 2 ) , "start.y:" , a . start . y . toFixed ( 2 ) ) , this . line ( "end.x:" , a . end . x . toFixed ( 2 ) , "end.y:" , a . end . y . toFixed ( 2 ) ) , this . line ( "length:" , a . length . toFixed ( 2 ) , "angle:" , a . angle ) , this . stop ( ) } , pixel : function ( a , b , c , d ) { d = d || 2 , this . start ( ) , this . context . fillStyle = c , this . context . fillRect ( a , b , d , d ) , this . stop ( ) } , geom : function ( a , c , d , e ) { "undefined" == typeof d && ( d = ! 0 ) , "undefined" == typeof e && ( e = 0 ) , c = c || "rgba(0,255,0,0.4)" , this . start ( ) , this . context . fillStyle = c , this . context . strokeStyle = c , a instanceof b . Rectangle || 1 === e ? d ? this . context . fillRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : this . context . strokeRect ( a . x - this . game . camera . x , a . y - this . game . camera . y , a . width , a . height ) : a instanceof b . Circle || 2 === e ? ( this . context . beginPath ( ) , this . context . arc ( a . x - this . game . camera . x
} , destroy : function ( ) { this . sprite = null } , checkWorldBounds : function ( ) { this . position . x < this . game . physics . arcade . bounds . x && this . game . physics . arcade . checkCollision . left ? ( this . position . x = this . game . physics . arcade . bounds . x , this . velocity . x *= - this . bounce . x , this . blocked . left = ! 0 ) : this . right > this . 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 . y < this . game . physics . arcade . bounds . y && this . game . physics . arcade . checkCollision . up ? ( this . position . y = this . game . physics . arcade . bounds . y , this . velocity . y *= - this . bounce . y , this . blocked . up = ! 0 ) : this . bottom > this . 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 ) { c = c || this . offset . x , 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 . 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 , c ) { return b . Rectangle . contains ( this , a , c ) } , 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 ( b . Physics . Arcade . Body . prototype , "bottom" , { get : function ( ) { return this . position . y + this . height } } ) , Object . defineProperty ( b . Physics . Arcade . Body . prototype , "right" , { get : function ( ) { return this . position . x + this . width } } ) , Object . defineProperty ( b . Physics . Arcade . Body . prototype , "x" , { get : function ( ) { return this . position . x } , set : function ( a ) { this . position . x = a } } ) , Object . defineProperty ( b . Physics . Arcade . Body . prototype , "y" , { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a } } ) , b . Physics . Arcade . Body . render = function ( a , b , c , d ) { "undefined" == typeof c && ( c = ! 0 ) , d = d || "rgba(0,255,0,0.4)" , c ? ( a . fillStyle = d , a . fillRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) ) : ( a . strokeStyle = d , a . strokeRect ( b . position . x - b . game . camera . x , b . position . y - b . game . camera . y , b . width , b . height ) ) } , b . 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 ) } , b . Physics . Arcade . Body . prototype . constructor = b . Physics . Arcade . Body , b . Particles = function ( a ) { this . game = a , this . emitters = { } , this . ID = 0 } , b . Particles . prototype = { add : function ( a ) { return this . emitters [ a . name ] = a , a } , remove : function ( a ) { delete this . emitters [ a . name ] } , update
e && ( e . faceTop || e . faceBottom || e . faceLeft || e . faceRight ) && ( this . _mc . tx = Math . floor ( this . _mc . tx ) , this . debugFill && this . context . fillRect ( this . _mc . tx , this . _mc . ty , this . _mc . cw , this . _mc . ch ) , this . context . beginPath ( ) , e . faceTop && ( this . context . moveTo ( this . _mc . tx , this . _mc . ty ) , this . context . lineTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty ) ) , e . faceBottom && ( this . context . moveTo ( this . _mc . tx , this . _mc . ty + this . _mc . ch ) , this . context . lineTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty + this . _mc . ch ) ) , e . faceLeft && ( this . context . moveTo ( this . _mc . tx , this . _mc . ty ) , this . context . lineTo ( this . _mc . tx , this . _mc . ty + this . _mc . ch ) ) , e . faceRight && ( this . context . moveTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty ) , this . context . lineTo ( this . _mc . tx + this . _mc . cw , this . _mc . ty + this . _mc . ch ) ) , this . context . stroke ( ) ) , this . _mc . tx += this . map . tileWidth } this . _mc . tx = this . _mc . dx , this . _mc . ty += this . map . tileHeight } } , Object . defineProperty ( b . TilemapLayer . prototype , "scrollX" , { get : function ( ) { return this . _mc . x } , set : function ( a ) { a !== this . _mc . x && a >= 0 && this . layer . widthInPixels > this . width && ( this . _mc . x = a , this . _mc . x > this . layer . widthInPixels - this . width && ( this . _mc . x = this . layer . widthInPixels - this . width ) , this . _mc . startX = this . game . math . floor ( this . _mc . x / this . map . tileWidth ) , this . _mc . startX < 0 && ( this . _mc . startX = 0 ) , this . _mc . startX + this . _mc . maxX > this . layer . width && ( this . _mc . startX = this . layer . width - this . _mc . maxX ) , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . TilemapLayer . prototype , "scrollY" , { get : function ( ) { return this . _mc . y } , set : function ( a ) { a !== this . _mc . y && a >= 0 && this . layer . heightInPixels > this . height && ( this . _mc . y = a , this . _mc . y > this . layer . heightInPixels - this . height && ( this . _mc . y = this . layer . heightInPixels - this . height ) , this . _mc . startY = this . game . math . floor ( this . _mc . y / this . map . tileHeight ) , this . _mc . startY < 0 && ( this . _mc . startY = 0 ) , this . _mc . startY + this . _mc . maxY > this . layer . height && ( this . _mc . startY = this . layer . height - this . _mc . maxY ) , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . TilemapLayer . prototype , "collisionWidth" , { get : function ( ) { return this . _mc . cw } , set : function ( a ) { this . _mc . cw = a , this . dirty = ! 0 } } ) , Object . defineProperty ( b . TilemapLayer . prototype , "collisionHeight" , { get : function ( ) { return this . _mc . ch } , set : function ( a ) { this . _mc . ch = a , this . dirty = ! 0 } } ) , b . TilemapParser = { parse : function ( a , c , 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 c ) return this . getEmptyData ( ) ; if ( null === c ) return this . getEmptyData ( d , e , f , g ) ; var h = a . cache . getTilemapData ( c ) ; if ( h ) { if ( h . format === b . Tilemap . CSV ) return this . parseCSV ( c , h . data , d , e ) ; if ( ! h . format || h . format === b . Tilemap . TILED _JSON ) return this . parseTiledJSON ( h . data ) } else console . warn ( "Phaser.TilemapParser.parse - No map data found for key " + c ) } , parseCSV : function ( a , c , d , e ) { var f = this . getEmptyData ( ) ; c = c . trim ( ) ; for ( var g = [ ] , h = c . split ( "\n" ) , i = h . length , j = 0 , k = 0 ; k < h . length ; k ++ ) { g [ k ] = [ ] ; for ( var l = h [ k ] . split ( "," ) , m = 0 ; m < l . length ; m ++ ) g [ k ] [ m ] = new b . Tile ( f . layers [ 0 ] , parseInt ( l [ m ] , 10 ) , m , k , d , e ) ; 0 === j && ( j = l . length ) } return f . format = b . Tilemap . CSV , f . name = a , f . width = j , f . height = i , f . tileWidth = d , f . tileHeight = e , f . widthInPixels = j * d , f . heightInPixels = i * e , f . layers [ 0 ] . width = j , f . layers [ 0 ] . height = i , f . layers [ 0 ] . widthInPixels = f . widthInPixels , f . layers [ 0 ] . heightInPixels = f . heightInPixels , f . layers [ 0 ] . data = g , f } , getEmptyData : function ( a , b , c , d ) { var e = { } ; e . width = 0 , e . height = 0 , e . tileWidth = 0 , e . tileHeight = 0 , "undefined" != typeof a && null !== a && ( e . tileWidth = a ) , "undefined" != typeof b && null !== b && ( e . tileHeight = b ) , "undefined" != typeof c && null !== c && ( e . width = c ) , "undefined" != typeof d && null !== d && ( e . height = d ) , e . orientation = "orthogonal" , e . version = "1" , e . properties = { } , e . widthInPixels = 0 , e . heightInPixels = 0 ; var f = [ ] , g = { name : "layer" , x : 0 , y : 0 , width : 0 , height : 0 , widthInPixels : 0 , heightInPixels : 0 , alpha : 1 , visible : ! 0 , properties : { } , indexes : [ ] , callbacks : [ ] , data : [ ] } ; return f . push ( g ) , e . layers = f , e . images = [ ] , e . objects = { } , e . collision = { } , e . tilesets = [ ] , e . tiles = [ ] , e } , parseTiledJSON : function ( a ) { function c ( a , b ) { var c = { } ; for ( var d in b ) { var e = b [ d ] ; c [ e ] = a [ e ] } return c } if ( "orthogonal" !== a . orientation ) return console . warn ( "TilemapParser.parseTiledJSON: Only orthogonal map types are supported in this version of Phaser" ) , null ; var d = { } ; d . width = a . widt
} else { if ( this . id != Phaser . Physics . Ninja . Tile . SLOPE _22DEGppB ) return ! 1 ; this . signx = 1 , this . signy = 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 1 * this . signx / a , this . sy = 2 * this . signy / a } else if ( this . id < Phaser . Physics . Ninja . Tile . TYPE _67DEGb ) if ( this . type = Phaser . Physics . Ninja . Tile . TYPE _67DEGs , this . id == Phaser . Physics . Ninja . Tile . SLOPE _67DEGpnS ) { this . signx = 1 , this . signy = - 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else if ( this . id == Phaser . Physics . Ninja . Tile . SLOPE _67DEGnnS ) { this . signx = - 1 , this . signy = - 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else if ( this . id == Phaser . Physics . Ninja . Tile . SLOPE _67DEGnpS ) { this . signx = - 1 , this . signy = 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else { if ( this . id != Phaser . Physics . Ninja . Tile . SLOPE _67DEGppS ) return ! 1 ; this . signx = 1 , this . signy = 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else if ( this . id < Phaser . Physics . Ninja . Tile . TYPE _HALF ) if ( this . type = Phaser . Physics . Ninja . Tile . TYPE _67DEGb , this . id == Phaser . Physics . Ninja . Tile . SLOPE _67DEGpnB ) { this . signx = 1 , this . signy = - 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else if ( this . id == Phaser . Physics . Ninja . Tile . SLOPE _67DEGnnB ) { this . signx = - 1 , this . signy = - 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else if ( this . id == Phaser . Physics . Ninja . Tile . SLOPE _67DEGnpB ) { this . signx = - 1 , this . signy = 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else { if ( this . id != Phaser . Physics . Ninja . Tile . SLOPE _67DEGppB ) return ! 1 ; this . signx = 1 , this . signy = 1 ; var a = Math . sqrt ( 5 ) ; this . sx = 2 * this . signx / a , this . sy = 1 * this . signy / a } else if ( this . type = Phaser . Physics . Ninja . Tile . TYPE _HALF , this . id == Phaser . Physics . Ninja . Tile . HALFd ) this . signx = 0 , this . signy = - 1 , this . sx = this . signx , this . sy = this . signy ; else if ( this . id == Phaser . Physics . Ninja . Tile . HALFu ) this . signx = 0 , this . signy = 1 , this . sx = this . signx , this . sy = this . signy ; else if ( this . id == Phaser . Physics . Ninja . Tile . HALFl ) this . signx = 1 , this . signy = 0 , this . sx = this . signx , this . sy = this . signy ; else { if ( this . id != Phaser . Physics . Ninja . Tile . HALFr ) return ! 1 ; this . signx = - 1 , this . signy = 0 , this . sx = this . signx , this . sy = this . signy } } } , Object . defineProperty ( Phaser . Physics . Ninja . Tile . prototype , "x" , { get : function ( ) { return this . pos . x - this . xw } , set : function ( a ) { this . pos . x = a } } ) , Object . defineProperty ( Phaser . Physics . Ninja . Tile . prototype , "y" , { get : function ( ) { return this . pos . y - this . yw } , set : function ( a ) { this . pos . y = a } } ) , Object . defineProperty ( Phaser . Physics . Ninja . Tile . prototype , "bottom" , { get : function ( ) { return this . pos . y + this . yw } } ) , Object . defineProperty ( Phaser . Physics . Ninja . Tile . prototype , "right" , { get : function ( ) { return this . pos . x + this . xw } } ) , Phaser . Physics . Ninja . Tile . EMPTY = 0 , Phaser . Physics . Ninja . Tile . FULL = 1 , Phaser . Physics . Ninja . Tile . SLOPE _45DEGpn = 2 , Phaser . Physics . Ninja . Tile . SLOPE _45DEGnn = 3 , Phaser . Physics . Ninja . Tile . SLOPE _45DEGnp = 4 , Phaser . Physics . Ninja . Tile . SLOPE _45DEGpp = 5 , Phaser . Physics . Ninja . Tile . CONCAVEpn = 6 , Phaser . Physics . Ninja . Tile . CONCAVEnn = 7 , Phaser . Physics . Ninja . Tile . CONCAVEnp = 8 , Phaser . Physics . Ninja . Tile . CONCAVEpp = 9 , Phaser . Physics . Ninja . Tile . CONVEXpn = 10 , Phaser . Physics . Ninja . Tile . CONVEXnn = 11 , Phaser . Physics . Ninja . Tile . CONVEXnp = 12 , Phaser . Physics . Ninja . Tile . CONVEXpp = 13 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGpnS = 14 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGnnS = 15 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGnpS = 16 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGppS = 17 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGpnB = 18 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGnnB = 19 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGnpB = 20 , Phaser . Physics . Ninja . Tile . SLOPE _22DEGppB = 21 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGpnS = 22 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGnnS = 23 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGnpS = 24 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGppS = 25 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGpnB = 26 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGnnB = 27 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGnpB = 28 , Phaser . Physics . Ninja . Tile . SLOPE _67DEGppB = 29 , Phaser . Physics . Ninja . Tile . HALFd = 30 , Phaser . Physics . Ninja . Tile . HALFr = 31 , Phaser . Physics . Ninja . Tile . HALFu = 32 , Phaser . Physics . Ninja . Tile . HALFl = 33 , Phaser . Physics . Ninja . Tile . TYPE _EMPTY = 0 , Phaser . Physics . Ninja . Tile . TYPE _FULL = 1 , Phaser . Physics . Ninja . Tile . TYPE _45DEG = 2 , Phaser . Physi
} } , { } ] , 6 : [ function ( a , b ) { b . exports = { Polygon : a ( "./Polygon" ) , Point : a ( "./Point" ) } } , { "./Point" : 3 , "./Polygon" : 4 } ] , 7 : [ function ( a , b ) { b . exports = { name : "p2" , version : "0.5.0" , description : "A JavaScript 2D physics engine." , author : "Stefan Hedman <schteppe@gmail.com> (http://steffe.se)" , keywords : [ "p2.js" , "p2" , "physics" , "engine" , "2d" ] , main : "./src/p2.js" , engines : { node : "*" } , repository : { type : "git" , url : "https://github.com/schteppe/p2.js.git" } , bugs : { url : "https://github.com/schteppe/p2.js/issues" } , licenses : [ { type : "MIT" } ] , devDependencies : { grunt : "~0.4.0" , "grunt-contrib-jshint" : "~0.9.2" , "grunt-contrib-nodeunit" : "~0.1.2" , "grunt-contrib-uglify" : "~0.4.0" , "grunt-contrib-watch" : "~0.5.0" , "grunt-browserify" : "~2.0.1" , "z-schema" : "~2.4.6" } , dependencies : { "poly-decomp" : "0.1.0" , "gl-matrix" : "2.1.0" } } } , { } ] , 8 : [ function ( a , b ) { function c ( a ) { this . lowerBound = d . create ( ) , a && a . lowerBound && d . copy ( this . lowerBound , a . lowerBound ) , this . upperBound = d . create ( ) , a && a . upperBound && d . copy ( this . upperBound , a . upperBound ) } { var d = a ( "../math/vec2" ) ; a ( "../utils/Utils" ) } b . exports = c ; var e = d . create ( ) ; c . prototype . setFromPoints = function ( a , b , c ) { var f = this . lowerBound , g = this . upperBound ; d . set ( f , Number . MAX _VALUE , Number . MAX _VALUE ) , d . set ( g , - Number . MAX _VALUE , - Number . MAX _VALUE ) ; for ( var h = 0 ; h < a . length ; h ++ ) { var i = a [ h ] ; "number" == typeof c && ( d . rotate ( e , i , c ) , i = e ) ; for ( var j = 0 ; 2 > j ; j ++ ) i [ j ] > g [ j ] && ( g [ j ] = i [ j ] ) , i [ j ] < f [ j ] && ( f [ j ] = i [ j ] ) } b && ( d . add ( this . lowerBound , this . lowerBound , b ) , d . add ( this . upperBound , this . upperBound , b ) ) } , c . prototype . copy = function ( a ) { d . copy ( this . lowerBound , a . lowerBound ) , d . copy ( this . upperBound , a . upperBound ) } , c . prototype . extend = function ( a ) { for ( var b = 0 ; 2 > b ; b ++ ) a . lowerBound [ b ] < this . lowerBound [ b ] && ( this . lowerBound [ b ] = a . lowerBound [ b ] ) , a . upperBound [ b ] > this . upperBound [ b ] && ( this . upperBound [ b ] = a . upperBound [ b ] ) } , c . prototype . overlaps = function ( a ) { var b = this . lowerBound , c = this . upperBound , d = a . lowerBound , e = a . upperBound ; return ( d [ 0 ] <= c [ 0 ] && c [ 0 ] <= e [ 0 ] || b [ 0 ] <= e [ 0 ] && e [ 0 ] <= c [ 0 ] ) && ( d [ 1 ] <= c [ 1 ] && c [ 1 ] <= e [ 1 ] || b [ 1 ] <= e [ 1 ] && e [ 1 ] <= c [ 1 ] ) } } , { "../math/vec2" : 30 , "../utils/Utils" : 47 } ] , 9 : [ function ( a , b ) { function c ( a ) { this . type = a , this . result = [ ] , this . world = null , this . boundingVolumeType = c . AABB } var d = a ( "../math/vec2" ) , e = a ( "../objects/Body" ) ; b . exports = c , c . AABB = 1 , c . BOUNDING _CIRCLE = 2 , c . prototype . setWorld = function ( a ) { this . world = a } , c . prototype . getCollisionPairs = function ( ) { throw new Error ( "getCollisionPairs must be implemented in a subclass!" ) } ; var f = d . create ( ) ; c . boundingRadiusCheck = function ( a , b ) { d . sub ( f , a . position , b . position ) ; var c = d . squaredLength ( f ) , e = a . boundingRadius + b . boundingRadius ; return e * e >= c } , c . aabbCheck = function ( a , b ) { return a . aabbNeedsUpdate && a . updateAABB ( ) , b . aabbNeedsUpdate && b . updateAABB ( ) , a . aabb . overlaps ( b . aabb ) } , c . prototype . boundingVolumeCheck = function ( a , b ) { var d ; switch ( this . boundingVolumeType ) { case c . BOUNDING _CIRCLE : d = c . boundingRadiusCheck ( a , b ) ; break ; case c . AABB : d = c . aabbCheck ( a , b ) ; break ; default : throw new Error ( "Bounding volume type not recognized: " + this . boundingVolumeType ) } return d } , c . canCollide = function ( a , b ) { return a . motionState === e . STATIC && b . motionState === e . STATIC ? ! 1 : a . motionState === e . KINEMATIC && b . motionState === e . STATIC || a . motionState === e . STATIC && b . motionState === e . KINEMATIC ? ! 1 : a . motionState === e . KINEMATIC && b . motionState === e . KINEMATIC ? ! 1 : a . sleepState === e . SLEEPING && b . sleepState === e . SLEEPING ? ! 1 : a . sleepState === e . SLEEPING && b . motionState === e . STATIC || b . sleepState === e . SLEEPING && a . motionState === e . STATIC ? ! 1 : ! 0 } , c . NAIVE = 1 , c . SAP = 2 } , { "../math/vec2" : 30 , "../objects/Body" : 31 } ] , 10 : [ function ( a , b ) { function c ( a ) { d . apply ( this ) , a = e . defaults ( a , { xmin : - 100 , xmax : 100 , ymin : - 100 , ymax : 100 , nx : 10 , ny : 10 } ) , this . xmin = a . xmin , this . ymin = a . ymin , this . xmax = a . xmax , this . ymax = a . ymax , this . nx = a . nx , this . ny = a . ny , this . binsizeX = ( this . xmax - this . xmin ) / this . nx , this . binsizeY = ( this . ymax - this . ymin ) / this . ny } var d = ( a ( "../shapes/Circle" ) , a ( "../shapes/Plane" ) , a ( "../shapes/Particle" ) , a ( "../collision/Broadphase" ) ) , e = ( a ( "../math/vec2" ) , a ( "../utils/Utils" ) ) ; b . exports = c , c . prototype = new d , c . prototype . getCollisionPairs = function ( a ) { for ( var b = [ ] , c = a . bodies , e = c . length , f = ( this . binsizeX , this . binsizeY , this . nx ) , g = this . ny , h = this . xmin , i = this . ymin , j = this . xmax , k = this . ymax , l = [ ] , m = f * g , n = 0 ; m > n ; n ++ ) l . push ( [ ] ) ; for ( va
{ var s = this , t = this . motorEquation ; t . computeGW } t . computeGq = function ( ) { return 0 } , t . computeGW = function ( ) { var a = this . G , b = this . bodyA , c = this . bodyB , d = b . velocity , e = c . velocity , f = b . angularVelocity , g = c . angularVelocity ; return this . transformedGmult ( a , d , f , e , g ) + s . motorSpeed } } var d = a ( "./Constraint" ) , e = a ( "../equations/ContactEquation" ) , f = a ( "../equations/Equation" ) , g = a ( "../math/vec2" ) , h = a ( "../equations/RotationalLockEquation" ) ; b . exports = c , c . prototype = new d ; var i = g . create ( ) , j = g . create ( ) , k = g . create ( ) , l = g . create ( ) , m = g . create ( ) , n = g . create ( ) ; c . prototype . update = function ( ) { var a = this . equations , b = a [ 0 ] , c = this . upperLimit , d = this . lowerLimit , e = this . upperLimitEquation , f = this . lowerLimitEquation , h = this . bodyA , o = this . bodyB , p = this . localAxisA , q = this . localAnchorA , r = this . localAnchorB ; b . updateJacobian ( ) , g . rotate ( i , p , h . angle ) , g . rotate ( l , q , h . angle ) , g . add ( j , l , h . position ) , g . rotate ( m , r , o . angle ) , g . add ( k , m , o . position ) ; var s = this . position = g . dot ( k , i ) - g . dot ( j , i ) ; if ( this . motorEnabled ) { var t = this . motorEquation . G ; t [ 0 ] = i [ 0 ] , t [ 1 ] = i [ 1 ] , t [ 2 ] = g . crossLength ( i , m ) , t [ 3 ] = - i [ 0 ] , t [ 4 ] = - i [ 1 ] , t [ 5 ] = - g . crossLength ( i , l ) } if ( this . upperLimitEnabled && s > c ) g . scale ( e . normalA , i , - 1 ) , g . sub ( e . contactPointA , j , h . position ) , g . sub ( e . contactPointB , k , o . position ) , g . scale ( n , i , c ) , g . add ( e . contactPointA , e . contactPointA , n ) , - 1 == a . indexOf ( e ) && a . push ( e ) ; else { var u = a . indexOf ( e ) ; - 1 != u && a . splice ( u , 1 ) } if ( this . lowerLimitEnabled && d > s ) g . scale ( f . normalA , i , 1 ) , g . sub ( f . contactPointA , j , h . position ) , g . sub ( f . contactPointB , k , o . position ) , g . scale ( n , i , d ) , g . sub ( f . contactPointB , f . contactPointB , n ) , - 1 == a . indexOf ( f ) && a . push ( f ) ; else { var u = a . indexOf ( f ) ; - 1 != u && a . splice ( u , 1 ) } } , c . prototype . enableMotor = function ( ) { this . motorEnabled || ( this . equations . push ( this . motorEquation ) , this . motorEnabled = ! 0 ) } , c . prototype . disableMotor = function ( ) { if ( this . motorEnabled ) { var a = this . equations . indexOf ( this . motorEquation ) ; this . equations . splice ( a , 1 ) , this . motorEnabled = ! 1 } } } , { "../equations/ContactEquation" : 21 , "../equations/Equation" : 22 , "../equations/RotationalLockEquation" : 24 , "../math/vec2" : 30 , "./Constraint" : 14 } ] , 19 : [ function ( a , b ) { function c ( a , b , c , n , o ) { o = o || { } , d . call ( this , a , c , d . REVOLUTE , o ) ; var p = this . maxForce = "undefined" != typeof o . maxForce ? o . maxForce : Number . MAX _VALUE ; this . pivotA = h . fromValues ( b [ 0 ] , b [ 1 ] ) , this . pivotB = h . fromValues ( n [ 0 ] , n [ 1 ] ) ; var q = this . equations = [ new e ( a , c , - p , p ) , new e ( a , c , - p , p ) ] , r = q [ 0 ] , s = q [ 1 ] , t = this ; r . computeGq = function ( ) { return h . rotate ( i , t . pivotA , a . angle ) , h . rotate ( j , t . pivotB , c . angle ) , h . add ( m , c . position , j ) , h . sub ( m , m , a . position ) , h . sub ( m , m , i ) , h . dot ( m , k ) } , s . computeGq = function ( ) { return h . rotate ( i , t . pivotA , a . angle ) , h . rotate ( j , t . pivotB , c . angle ) , h . add ( m , c . position , j ) , h . sub ( m , m , a . position ) , h . sub ( m , m , i ) , h . dot ( m , l ) } , s . minForce = r . minForce = - p , s . maxForce = r . maxForce = p , this . motorEquation = new f ( a , c ) , this . motorEnabled = ! 1 , this . angle = 0 , this . lowerLimitEnabled = ! 1 , this . upperLimitEnabled = ! 1 , this . lowerLimit = 0 , this . upperLimit = 0 , this . upperLimitEquation = new g ( a , c ) , this . lowerLimitEquation = new g ( a , c ) , this . upperLimitEquation . minForce = 0 , this . lowerLimitEquation . maxForce = 0 } var d = a ( "./Constraint" ) , e = a ( "../equations/Equation" ) , f = a ( "../equations/RotationalVelocityEquation" ) , g = a ( "../equations/RotationalLockEquation" ) , h = a ( "../math/vec2" ) ; b . exports = c ; var i = h . create ( ) , j = h . create ( ) , k = h . fromValues ( 1 , 0 ) , l = h . fromValues ( 0 , 1 ) , m = h . create ( ) ; c . prototype = new d , c . prototype . update = function ( ) { var a = this . bodyA , b = this . bodyB , c = this . pivotA , d = this . pivotB , e = this . equations , f = ( e [ 0 ] , e [ 1 ] , e [ 0 ] ) , g = e [ 1 ] , m = this . upperLimit , n = this . lowerLimit , o = this . upperLimitEquation , p = this . lowerLimitEquation , q = this . angle = b . angle - a . angle ; if ( this . upperLimitEnabled && q > m ) o . angle = m , - 1 == e . indexOf ( o ) && e . push ( o ) ; else { var r = e . indexOf ( o ) ; - 1 != r && e . splice ( r , 1 ) } if ( this . lowerLimitEnabled && n > q ) p . angle = n , - 1 == e . indexOf ( p ) && e . push ( p ) ; else { var r = e . indexOf ( p ) ; - 1 != r && e . splice ( r , 1 ) } h . rotate ( i , c , a . angle ) , h . rotate ( j , d , b . angle ) , f . G [ 0 ] = - 1 , f . G [ 1 ] = 0 , f . G [ 2 ] = - h . crossLength ( i , k ) , f . G [ 3 ] = 1 , f . G [ 4 ] = 0 , f . G [ 5 ] = h . crossLength ( j , k ) , g . G [ 0 ] = 0 , g . G [ 1 ] = - 1 , g . G [ 2 ] = - h . crossLength ( i , l ) , g . G [ 3 ] = 0 , g . G [ 4 ] = 1 , g . G [ 5 ] = h . crossLength ( j , l ) } , c . prototype . enableMotor = function ( ) { this . motorEnabled || ( this . equations . push ( this . motorEquation ) , this . motorEnabled = ! 0 ) } , c . prototype . disableMotor = function ( ) { if ( this . m
} b . exports = c , c . idCounter = 0 , c . CIRCLE = 1 , c . PARTICLE = 2 , c . PLANE = 4 , c . CONVEX = 8 , c . LINE = 16 , c . RECTANGLE = 32 , c . CAPSULE = 64 , c . HEIGHTFIELD = 128 , c . prototype . computeMomentOfInertia = function ( ) { throw new Error ( "Shape.computeMomentOfInertia is not implemented in this Shape..." ) } , c . prototype . updateBoundingRadius = function ( ) { throw new Error ( "Shape.updateBoundingRadius is not implemented in this Shape..." ) } , c . prototype . updateArea = function ( ) { } , c . prototype . computeAABB = function ( ) { } } , { } ] , 43 : [ function ( a , b ) { function c ( a ) { f . call ( this , a , f . GS ) , a = a || { } , this . iterations = a . iterations || 10 , this . tolerance = a . tolerance || 1e-10 , this . arrayStep = 30 , this . lambda = new g . ARRAY _TYPE ( this . arrayStep ) , this . Bs = new g . ARRAY _TYPE ( this . arrayStep ) , this . invCs = new g . ARRAY _TYPE ( this . arrayStep ) , this . useZeroRHS = ! 1 , this . frictionIterations = 0 , this . usedIterations = 0 } function d ( a ) { for ( var b = a . length ; b -- ; ) a [ b ] = 0 } var e = a ( "../math/vec2" ) , f = a ( "./Solver" ) , g = a ( "../utils/Utils" ) , h = a ( "../equations/FrictionEquation" ) ; b . exports = c , c . prototype = new f , c . prototype . solve = function ( a , b ) { this . sortEquations ( ) ; var f = 0 , i = this . iterations , j = this . frictionIterations , k = this . equations , l = k . length , m = Math . pow ( this . tolerance * l , 2 ) , n = b . bodies , o = b . bodies . length , p = ( e . add , e . set , this . useZeroRHS ) , q = this . lambda ; this . usedIterations = 0 , q . length < l && ( q = this . lambda = new g . ARRAY _TYPE ( l + this . arrayStep ) , this . Bs = new g . ARRAY _TYPE ( l + this . arrayStep ) , this . invCs = new g . ARRAY _TYPE ( l + this . arrayStep ) ) , d ( q ) ; for ( var r = this . invCs , s = this . Bs , q = this . lambda , t = 0 ; t !== k . length ; t ++ ) { var u = k [ t ] ; ( u . timeStep !== a || u . needsUpdate ) && ( u . timeStep = a , u . update ( ) ) , s [ t ] = u . computeB ( u . a , u . b , a ) , r [ t ] = u . computeInvC ( u . epsilon ) } var u , v , t , w ; if ( 0 !== l ) { for ( t = 0 ; t !== o ; t ++ ) n [ t ] . resetConstraintVelocity ( ) ; if ( j ) { for ( f = 0 ; f !== j ; f ++ ) { for ( v = 0 , w = 0 ; w !== l ; w ++ ) { u = k [ w ] ; var x = c . iterateEquation ( w , u , u . epsilon , s , r , q , p , a , f ) ; v += Math . abs ( x ) } if ( this . usedIterations ++ , m >= v * v ) break } for ( c . updateMultipliers ( k , q , 1 / a ) , w = 0 ; w !== l ; w ++ ) { var y = k [ w ] ; if ( y instanceof h ) { var z = y . contactEquation . multiplier * y . frictionCoefficient ; y . maxForce = z , y . minForce = - z } } } for ( f = 0 ; f !== i ; f ++ ) { for ( v = 0 , w = 0 ; w !== l ; w ++ ) { u = k [ w ] ; var x = c . iterateEquation ( w , u , u . epsilon , s , r , q , p , a , f ) ; v += Math . abs ( x ) } if ( this . usedIterations ++ , m >= v * v ) break } for ( t = 0 ; t !== o ; t ++ ) n [ t ] . addConstraintVelocity ( ) ; c . updateMultipliers ( k , q , 1 / a ) } } , c . updateMultipliers = function ( a , b , c ) { for ( var d = a . length ; d -- ; ) a [ d ] . multiplier = b [ d ] * c } , c . iterateEquation = function ( a , b , c , d , e , f , g , h ) { var i = d [ a ] , j = e [ a ] , k = f [ a ] , l = b . computeGWlambda ( ) , m = b . maxForce , n = b . minForce ; g && ( i = 0 ) ; var o = j * ( i - l - c * k ) , p = k + o ; return n * h > p ? o = n * h - k : p > m * h && ( o = m * h - k ) , f [ a ] += o , b . addToWlambda ( o ) , o } } , { "../equations/FrictionEquation" : 23 , "../math/vec2" : 30 , "../utils/Utils" : 47 , "./Solver" : 44 } ] , 44 : [ function ( a , b ) { function c ( a , b ) { a = a || { } , d . call ( this ) , this . type = b , this . equations = [ ] , this . equationSortFunction = a . equationSortFunction || ! 1 } var d = ( a ( "../utils/Utils" ) , a ( "../events/EventEmitter" ) ) ; b . exports = c , c . prototype = new d , c . prototype . solve = function ( ) { throw new Error ( "Solver.solve should be implemented by subclasses!" ) } ; var e = { bodies : [ ] } ; c . prototype . solveIsland = function ( a , b ) { this . removeAllEquations ( ) , b . equations . length && ( this . addEquations ( b . equations ) , e . bodies . length = 0 , b . getBodies ( e . bodies ) , e . bodies . length && this . solve ( a , e ) ) } , c . prototype . sortEquations = function ( ) { this . equationSortFunction && this . equations . sort ( this . equationSortFunction ) } , c . prototype . addEquation = function ( a ) { a . enabled && this . equations . push ( a ) } , c . prototype . addEquations = function ( a ) { for ( var b = 0 , c = a . length ; b !== c ; b ++ ) { var d = a [ b ] ; d . enabled && this . equations . push ( d ) } } , c . prototype . removeEquation = function ( a ) { var b = this . equations . indexOf ( a ) ; - 1 !== b && this . equations . splice ( b , 1 ) } , c . prototype . removeAllEquations = function ( ) { this . equations . length = 0 } , c . GS = 1 , c . ISLAND = 2 } , { "../events/EventEmitter" : 26 , "../utils/Utils" : 47 } ] , 45 : [ function ( a , b ) { function c ( ) { this . overlappingLastState = new e , this . overlappingCurrentState = new e , this . recordPool = [ ] , this . tmpDict = new e , this . tmpArray1 = [ ] } function d ( a , b , c , d ) { this . shapeA = b , this . shapeB = d , this . bodyA = a , this . bodyB = c } { var e = a ( "./TupleDictionary" ) ; a ( "./Utils" ) } b . exports = c , c . prototype . tick = function ( ) { for ( var a = this . overlappingLastState , b = this . overlappingCurrentState , c = b . keys . length ; c -- ; ) { var d = b . k
} ) , p2 . Body . prototype . parent = null , p2 . Spring . prototype . parent = null , Phaser . Physics . P2 = function ( a , b ) { this . game = a , "undefined" != typeof b && b . hasOwnProperty ( "gravity" ) && b . hasOwnProperty ( "broadphase" ) || ( b = { gravity : [ 0 , 0 ] , broadphase : new p2 . SAPBroadphase } ) , this . world = new p2 . World ( b ) , this . frameRate = 1 / 60 , this . useElapsedTime = ! 1 , this . paused = ! 1 , this . materials = [ ] , this . gravity = new Phaser . Physics . P2 . InversePointProxy ( this , this . world . gravity ) , this . walls = { left : null , right : null , top : null , bottom : null } , this . onBodyAdded = new Phaser . Signal , this . onBodyRemoved = new Phaser . Signal , this . onSpringAdded = new Phaser . Signal , this . onSpringRemoved = new Phaser . Signal , this . onConstraintAdded = new Phaser . Signal , this . onConstraintRemoved = new Phaser . Signal , this . onContactMaterialAdded = new Phaser . Signal , this . onContactMaterialRemoved = new Phaser . Signal , this . postBroadphaseCallback = null , this . callbackContext = null , this . onBeginContact = new Phaser . Signal , this . onEndContact = new Phaser . Signal , b . hasOwnProperty ( "mpx" ) && b . hasOwnProperty ( "pxm" ) && b . hasOwnProperty ( "mpxi" ) && b . hasOwnProperty ( "pxmi" ) && ( this . mpx = b . mpx , this . mpxi = b . mpxi , this . pxm = b . pxm , this . pxmi = b . pxmi ) , this . world . on ( "beginContact" , this . beginContactHandler , this ) , this . world . on ( "endContact" , this . endContactHandler , this ) , this . collisionGroups = [ ] , this . nothingCollisionGroup = new Phaser . Physics . P2 . CollisionGroup ( 1 ) , this . boundsCollisionGroup = new Phaser . Physics . P2 . CollisionGroup ( 2 ) , this . everythingCollisionGroup = new Phaser . Physics . P2 . CollisionGroup ( 2147483648 ) , this . boundsCollidesWith = [ ] , this . _toRemove = [ ] , this . _collisionGroupID = 2 , this . setBoundsToWorld ( ! 0 , ! 0 , ! 0 , ! 0 , ! 1 ) } , Phaser . Physics . P2 . prototype = { removeBodyNextStep : function ( a ) { this . _toRemove . push ( a ) } , preUpdate : function ( ) { for ( var a = this . _toRemove . length ; a -- ; ) this . removeBody ( this . _toRemove [ a ] ) ; this . _toRemove . length = 0 } , enable : function ( a , b , c ) { "undefined" == typeof b && ( b = ! 1 ) , "undefined" == typeof c && ( c = ! 0 ) ; var d = 1 ; if ( Array . isArray ( a ) ) for ( d = a . length ; d -- ; ) a [ d ] instanceof Phaser . Group ? this . enable ( a [ d ] . children , b , c ) : ( this . enableBody ( a [ d ] , b ) , c && a [ d ] . hasOwnProperty ( "children" ) && a [ d ] . children . length > 0 && this . enable ( a [ d ] , b , ! 0 ) ) ; else a instanceof Phaser . Group ? this . enable ( a . children , b , c ) : ( this . enableBody ( a , b ) , c && a . hasOwnProperty ( "children" ) && a . children . length > 0 && this . enable ( a . children , b , ! 0 ) ) } , enableBody : function ( a , b ) { a . hasOwnProperty ( "body" ) && null === a . body && ( a . body = new Phaser . Physics . P2 . Body ( this . game , a , a . x , a . y , 1 ) , a . body . debug = b , a . anchor . set ( . 5 ) ) } , setImpactEvents : function ( a ) { a ? this . world . on ( "impact" , this . impactHandler , this ) : this . world . off ( "impact" , this . impactHandler , this ) } , setPostBroadphaseCallback : function ( a , b ) { this . postBroadphaseCallback = a , this . callbackContext = b , null !== a ? this . world . on ( "postBroadphase" , this . postBroadphaseHandler , this ) : this . world . off ( "postBroadphase" , this . postBroadphaseHandler , this ) } , postBroadphaseHandler : function ( a ) { if ( this . postBroadphaseCallback ) for ( var b = a . pairs . length ; b -= 2 ; ) a . pairs [ b ] . parent && a . pairs [ b + 1 ] . parent && ! this . postBroadphaseCallback . call ( this . callbackContext , a . pairs [ b ] . parent , a . pairs [ b + 1 ] . parent ) && a . pairs . splice ( b , 2 ) } , impactHandler : function ( a ) { if ( a . bodyA . parent && a . bodyB . parent ) { var b = a . bodyA . parent , c = a . bodyB . parent ; b . _bodyCallbacks [ a . bodyB . id ] && b . _bodyCallbacks [ a . bodyB . id ] . call ( b . _bodyCallbackContext [ a . bodyB . id ] , b , c , a . shapeA , a . shapeB ) , c . _bodyCallbacks [ a . bodyA . id ] && c . _bodyCallbacks [ a . bodyA . id ] . call ( c . _bodyCallbackContext [ a . bodyA . id ] , c , b , a . shapeB , a . shapeA ) , b . _groupCallbacks [ a . shapeB . collisionGroup ] && b . _groupCallbacks [ a . shapeB . collisionGroup ] . call ( b . _groupCallbackContext [ a . shapeB . collisionGroup ] , b , c , a . shapeA , a . shapeB ) , c . _groupCallbacks [ a . shapeA . collisionGroup ] && c . _groupCallbacks [ a . shapeA . collisionGroup ] . call ( c . _groupCallbackContext [ a . shapeA . collisionGroup ] , c , b , a . shapeB , a . shapeA ) } } , beginContactHandler : function ( a ) { this . onBeginContact . dispatch ( a . bodyA , a . bodyB , a . shapeA , a . shapeB , a . contactEquations ) , a . bodyA . parent && a . bodyA . parent . onBeginContact . dispatch ( a . bodyB . parent , a . shapeA , a . shapeB , a . contactEquations ) , a . bodyB . parent && a . bodyB . parent . onBeginContact . dispatch ( a . bodyA . parent , a . shapeB , a . shapeA , a . contactEquations ) } , endContactHandler : function ( a ) { this . onEndContact . dispatch ( a . bodyA , a . bodyB , a . shapeA , a .
} } ) , Phaser . Physics . P2 . BodyDebug = function ( a , b , c ) { Phaser . Group . call ( this , a ) ; var d = { pixelsPerLengthUnit : 20 , debugPolygons : ! 1 , lineWidth : 1 , alpha : . 5 } ; this . settings = Phaser . Utils . extend ( d , c ) , this . ppu = this . settings . pixelsPerLengthUnit , this . ppu = - 1 * this . ppu , this . body = b , this . canvas = new Phaser . Graphics ( a ) , this . canvas . alpha = this . settings . alpha , this . add ( this . canvas ) , this . draw ( ) } , Phaser . Physics . P2 . BodyDebug . prototype = Object . create ( Phaser . Group . prototype ) , Phaser . Physics . P2 . BodyDebug . prototype . constructor = Phaser . Physics . P2 . BodyDebug , Phaser . Utils . extend ( Phaser . Physics . P2 . BodyDebug . prototype , { update : function ( ) { this . updateSpriteTransform ( ) } , updateSpriteTransform : function ( ) { return this . position . x = this . body . position [ 0 ] * this . ppu , this . position . y = this . body . position [ 1 ] * this . ppu , this . rotation = this . body . angle } , draw : function ( ) { var a , b , c , d , e , f , g , h , i , j , k , l , m , n , o ; if ( h = this . body , j = this . canvas , j . clear ( ) , c = parseInt ( this . randomPastelHex ( ) , 16 ) , f = 16711680 , g = this . lineWidth , h instanceof p2 . Body && h . shapes . length ) { var p = h . shapes . length ; for ( d = 0 ; d !== p ; ) { if ( b = h . shapes [ d ] , i = h . shapeOffsets [ d ] , a = h . shapeAngles [ d ] , i = i || 0 , a = a || 0 , b instanceof p2 . Circle ) this . drawCircle ( j , i [ 0 ] * this . ppu , i [ 1 ] * this . ppu , a , b . radius * this . ppu , c , g ) ; else if ( b instanceof p2 . Convex ) { for ( l = [ ] , m = p2 . vec2 . create ( ) , e = n = 0 , o = b . vertices . length ; o >= 0 ? o > n : n > o ; e = o >= 0 ? ++ n : -- n ) k = b . vertices [ e ] , p2 . vec2 . rotate ( m , k , a ) , l . push ( [ ( m [ 0 ] + i [ 0 ] ) * this . ppu , - ( m [ 1 ] + i [ 1 ] ) * this . ppu ] ) ; this . drawConvex ( j , l , b . triangles , f , c , g , this . settings . debugPolygons , [ i [ 0 ] * this . ppu , - i [ 1 ] * this . ppu ] ) } else b instanceof p2 . Plane ? this . drawPlane ( j , i [ 0 ] * this . ppu , - i [ 1 ] * this . ppu , c , f , 5 * g , 10 * g , 10 * g , 100 * this . ppu , a ) : b instanceof p2 . Line ? this . drawLine ( j , b . length * this . ppu , f , g ) : b instanceof p2 . Rectangle && this . drawRectangle ( j , i [ 0 ] * this . ppu , - i [ 1 ] * this . ppu , a , b . width * this . ppu , b . height * this . ppu , f , c , g ) ; d ++ } } } , drawRectangle : function ( a , b , c , d , e , f , g , h , i ) { "undefined" == typeof i && ( i = 1 ) , "undefined" == typeof g && ( g = 0 ) , a . lineStyle ( i , g , 1 ) , a . beginFill ( h ) , a . drawRect ( b - e / 2 , c - f / 2 , e , f ) } , drawCircle : function ( a , b , c , d , e , f , g ) { "undefined" == typeof g && ( g = 1 ) , "undefined" == typeof f && ( f = 16777215 ) , a . lineStyle ( g , 0 , 1 ) , a . beginFill ( f , 1 ) , a . drawCircle ( b , c , - e ) , a . endFill ( ) , a . moveTo ( b , c ) , a . lineTo ( b + e * Math . cos ( - d ) , c + e * Math . sin ( - d ) ) } , drawLine : function ( a , b , c , d ) { "undefined" == typeof d && ( d = 1 ) , "undefined" == typeof c && ( c = 0 ) , a . lineStyle ( 5 * d , c , 1 ) , a . moveTo ( - b / 2 , 0 ) , a . lineTo ( b / 2 , 0 ) } , drawConvex : function ( a , b , c , d , e , f , g , h ) { var i , j , k , l , m , n , o , p , q , r , s ; if ( "undefined" == typeof f && ( f = 1 ) , "undefined" == typeof d && ( d = 0 ) , g ) { for ( i = [ 16711680 , 65280 , 255 ] , j = 0 ; j !== b . length + 1 ; ) l = b [ j % b . length ] , m = b [ ( j + 1 ) % b . length ] , o = l [ 0 ] , r = l [ 1 ] , p = m [ 0 ] , s = m [ 1 ] , a . lineStyle ( f , i [ j % i . length ] , 1 ) , a . moveTo ( o , - r ) , a . lineTo ( p , - s ) , a . drawCircle ( o , - r , 2 * f ) , j ++ ; return a . lineStyle ( f , 0 , 1 ) , a . drawCircle ( h [ 0 ] , h [ 1 ] , 2 * f ) } for ( a . lineStyle ( f , d , 1 ) , a . beginFill ( e ) , j = 0 ; j !== b . length ; ) k = b [ j ] , n = k [ 0 ] , q = k [ 1 ] , 0 === j ? a . moveTo ( n , - q ) : a . lineTo ( n , - q ) , j ++ ; return a . endFill ( ) , b . length > 2 ? ( a . moveTo ( b [ b . length - 1 ] [ 0 ] , - b [ b . length - 1 ] [ 1 ] ) , a . lineTo ( b [ 0 ] [ 0 ] , - b [ 0 ] [ 1 ] ) ) : void 0 } , drawPath : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q , r ; for ( "undefined" == typeof e && ( e = 1 ) , "undefined" == typeof c && ( c = 0 ) , a . lineStyle ( e , c , 1 ) , "number" == typeof d && a . beginFill ( d ) , h = null , i = null , g = 0 ; g < b . length ; ) p = b [ g ] , q = p [ 0 ] , r = p [ 1 ] , ( q !== h || r !== i ) && ( 0 === g ? a . moveTo ( q , r ) : ( j = h , k = i , l = q , m = r , n = b [ ( g + 1 ) % b . length ] [ 0 ] , o = b [ ( g + 1 ) % b . length ] [ 1 ] , f = ( l - j ) * ( o - k ) - ( n - j ) * ( m - k ) , 0 !== f && a . lineTo ( q , r ) ) , h = q , i = r ) , g ++ ; "number" == typeof d && a . endFill ( ) , b . length > 2 && "number" == typeof d && ( a . moveTo ( b [ b . length - 1 ] [ 0 ] , b [ b . length - 1 ] [ 1 ] ) , a . lineTo ( b [ 0 ] [ 0 ] , b [ 0 ] [ 1 ] ) ) } , drawPlane : function ( a , b , c , d , e , f , g , h , i , j ) { var k , l , m ; "undefined" == typeof f && ( f = 1 ) , "undefined" == typeof d && ( d = 16777215 ) , a . lineStyle ( f , e , 11 ) , a . beginFill ( d ) , k = i , a . moveTo ( b , - c ) , l = b + Math . cos ( j ) * this . game . width , m = c + Math . sin ( j ) * this . game . height , a . lineTo ( l , - m ) , a . moveTo ( b , - c ) , l = b + Math . cos ( j ) * - this . game . width , m = c + Math . sin ( j ) * - this . game . height , a . lineTo ( l , - m ) } , randomPastelHex : function ( ) { var a , b , c , d ; return c = [ 255 , 255 , 255 ] , d = Math . floor ( 256 * Math . random ( ) ) , b = Math . floor ( 256 * Math . random ( ) ) , a = Math . floor ( 256 * Math . random ( ) ) , d = Math . floor ( ( d + 3 * c [ 0 ] ) / 4 ) , b = Math . floor ( ( b + 3 * c [ 1 ] ) / 4 ) , a = Math . floor ( ( a + 3 * c [ 2 ] ) / 4 ) , this . rgbToHex ( d , b , a ) } , rgbToHex : function ( a , b , c ) { return this .
2014-02-28 09:30:53 +00:00
//# sourceMappingURL=phaser.map