2014-07-11 17:03:43 +00:00
/* Phaser v2.0.7 - http://phaser.io - @photonstorm - (c) 2014 Photon Storm Ltd. */
2014-02-28 09:30:53 +00:00
2014-07-11 17:03:43 +00:00
( function ( ) { var a = this , b = b || { } ; b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v1.6" , 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 . _UID = 0 , "undefined" != typeof Float32Array ? ( b . Float32Array = Float32Array , b . Uint16Array = Uint16Array ) : ( b . Float32Array = Array , b . Uint16Array = Array ) , b . INTERACTION _FREQUENCY = 30 , b . AUTO _PREVENT _DEFAULT = ! 0 , b . RAD _TO _DEG = 180 / Math . PI , b . DEG _TO _RAD = Math . PI / 180 , b . dontSayHello = ! 1 , b . sayHello = function ( a ) { if ( ! b . dontSayHello ) { if ( navigator . userAgent . toLowerCase ( ) . indexOf ( "chrome" ) > - 1 ) { var c = [ "%c %c %c Pixi.js " + b . VERSION + " - " + a + " %c %c http://pixijs.com %c %c ♥%c♥%c♥ " , "background: #ff66a5" , "background: #ff66a5" , "color: #ff66a5; background: #030307;" , "background: #ff66a5" , "background: #ffc3dc" , "background: #ff66a5" , "color: #ff2424; background: #fff" , "color: #ff2424; background: #fff" , "color: #ff2424; background: #fff" ] ; console . log . apply ( console , c ) } else window . console && console . log ( "Pixi.js " + b . VERSION + " - http://pixjs.com" ) ; b . dontSayHello = ! 0 } } , 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 . set = function ( a , b ) { this . x = a || 0 , this . y = b || ( 0 !== b ? this . x : 0 ) } , b . Point . prototype . constructor = b . Point , 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 . getBounds = function ( ) { return new b . Rectangle ( this . x - this . radius , this . y - this . radius , this . width , this . height ) } , 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 . width , this . y - this . height , this . width , this . height ) } , b . Ellipse . prototype . constructor = b . Ellipse , 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 ? ( b [ 0 ] = this . a , b [ 1 ] = this . c , b [ 2 ] = 0 , b [ 3 ] = this . b , b [ 4 ] = this . d , b [ 5 ] = 0 , b [ 6 ] = this . tx , b [ 7 ] = this . ty , b [ 8 ] = 1 ) : ( b [ 0 ] = this . a , b [ 1 ] = this . b , b [ 2 ] = this . tx , b [ 3 ] = this . c , b [ 4 ] = this . d , b [ 5 ] = this . ty , b [ 6 ] = 0 , b [ 7 ] = 0 , b [ 8 ] = 1 ) , b } , b . identityMatrix = new b . Matrix , b . determineMatrixArrayType = function ( ) { return "undefined" != typeof Float32Array ? Float32Array : Array } , b
2014-07-10 15:23:26 +00:00
if ( c . repeat && ( f = b . REPEAT , g = b . REPEAT ) , b . pixelStorei ( b . UNPACK _FLIP _Y _WEBGL , ! ! c . flipY ) , c . width ) { var i = c . width ? c . width : 512 , j = c . height ? c . height : 2 , k = c . border ? c . border : 0 ; b . texImage2D ( b . TEXTURE _2D , 0 , h , i , j , k , h , b . UNSIGNED _BYTE , null ) } else b . texImage2D ( b . TEXTURE _2D , 0 , h , b . RGBA , b . UNSIGNED _BYTE , a . value . baseTexture . source ) ; b . texParameteri ( b . TEXTURE _2D , b . TEXTURE _MAG _FILTER , d ) , b . texParameteri ( b . TEXTURE _2D , b . TEXTURE _MIN _FILTER , e ) , b . texParameteri ( b . TEXTURE _2D , b . TEXTURE _WRAP _S , f ) , b . texParameteri ( b . TEXTURE _2D , b . TEXTURE _WRAP _T , g ) } b . uniform1i ( a . uniformLocation , this . textureCount ) , a . _init = ! 0 , this . textureCount ++ } } , b . PixiShader . prototype . syncUniforms = function ( ) { this . textureCount = 1 ; var a , c = this . gl ; for ( var d in this . uniforms ) a = this . uniforms [ d ] , 1 === a . glValueLength ? a . glMatrix === ! 0 ? a . glFunc . call ( c , a . uniformLocation , a . transpose , a . value ) : a . glFunc . call ( c , a . uniformLocation , a . value ) : 2 === a . glValueLength ? a . glFunc . call ( c , a . uniformLocation , a . value . x , a . value . y ) : 3 === a . glValueLength ? a . glFunc . call ( c , a . uniformLocation , a . value . x , a . value . y , a . value . z ) : 4 === a . glValueLength ? a . glFunc . call ( c , a . uniformLocation , a . value . x , a . value . y , a . value . z , a . value . w ) : "sampler2D" === a . type && ( a . _init ? ( c . activeTexture ( c [ "TEXTURE" + this . textureCount ] ) , c . bindTexture ( c . TEXTURE _2D , a . value . baseTexture . _glTextures [ c . id ] || b . createWebGLTexture ( a . value . baseTexture , c ) ) , c . uniform1i ( a . uniformLocation , this . textureCount ) , this . textureCount ++ ) : this . initSampler2D ( a ) ) } , b . PixiShader . prototype . destroy = function ( ) { this . gl . deleteProgram ( this . program ) , this . uniforms = null , this . gl = null , this . attributes = null } , b . PixiShader . defaultVertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aTextureCoord;" , "attribute 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 . _UID = b . _UID ++ , this . gl = a , this . program = null , this . fragmentSrc = [ "precision lowp float;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "uniform sampler2D uSampler;" , "void main(void) {" , " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;" , "}" ] , this . vertexSrc = [ "attribute vec2 aVertexPosition;" , "attribute vec2 aPositionCoord;" , "attribute vec2 aScale;" , "attribute float aRotation;" , "attribute vec2 aTextureCoord;" , "attribute float aColor;" , "uniform vec2 projectionVector;" , "uniform vec2 offsetVector;" , "uniform mat3 uMatrix;" , "varying vec2 vTextureCoord;" , "varying float vColor;" , "const vec2 center = vec2(-1.0, 1.0);" , "void main(void) {" , " vec2 v;" , " vec2 sv = aVertexPosition * aScale;" , " v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);" , " v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);" , " v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;" , " gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);" , " vTextureCoord = aTextureCoord;" , " vColor = aColor;" , "}" ] , this . textureCount = 0 , this . init ( ) } , b . PixiFastShader . prototype . 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 ] , t
2014-07-10 19:18:20 +00:00
} } , b . WebGLSpriteBatch . prototype . renderTilingSprite = function ( a ) { var c = a . tilingTexture , d = this . renderSession . blendModeManager . currentBlendMode !== a . blendMode ; ( c . baseTexture !== this . currentBaseTexture || this . currentBatchSize >= this . size || d ) && ( this . flush ( ) , this . currentBaseTexture = c . baseTexture , this . renderSession . blendModeManager . setBlendMode ( a . blendMode ) ) , a . _uvs || ( a . _uvs = new b . TextureUvs ) ; var e = a . _uvs ; a . tilePosition . x %= c . baseTexture . width * a . tileScaleOffset . x , a . tilePosition . y %= c . baseTexture . height * a . tileScaleOffset . y ; var f = a . tilePosition . x / ( c . baseTexture . width * a . tileScaleOffset . x ) , g = a . tilePosition . y / ( c . baseTexture . height * a . tileScaleOffset . y ) , h = a . width / c . baseTexture . width / ( a . tileScale . x * a . tileScaleOffset . x ) , i = a . height / c . baseTexture . height / ( a . tileScale . y * a . tileScaleOffset . y ) ; e . x0 = 0 - f , e . y0 = 0 - g , e . x1 = 1 * h - f , e . y1 = 0 - g , e . x2 = 1 * h - f , e . y2 = 1 * i - g , e . x3 = 0 - f , e . y3 = 1 * i - g ; var j = a . worldAlpha , k = a . tint , l = this . vertices , m = a . width , n = a . height , o = a . anchor . x , p = a . anchor . y , q = m * ( 1 - o ) , r = m * - o , s = n * ( 1 - p ) , t = n * - p , u = 4 * this . currentBatchSize * this . vertSize , v = a . worldTransform , w = v . a , x = v . c , y = v . b , z = v . d , A = v . tx , B = v . ty ; l [ u ++ ] = w * r + y * t + A , l [ u ++ ] = z * t + x * r + B , l [ u ++ ] = e . x0 , l [ u ++ ] = e . y0 , l [ u ++ ] = j , l [ u ++ ] = k , l [ u ++ ] = w * q + y * t + A , l [ u ++ ] = z * t + x * q + B , l [ u ++ ] = e . x1 , l [ u ++ ] = e . y1 , l [ u ++ ] = j , l [ u ++ ] = k , l [ u ++ ] = w * q + y * s + A , l [ u ++ ] = z * s + x * q + B , l [ u ++ ] = e . x2 , l [ u ++ ] = e . y2 , l [ u ++ ] = j , l [ u ++ ] = k , l [ u ++ ] = w * r + y * s + A , l [ u ++ ] = z * s + x * r + B , l [ u ++ ] = e . x3 , l [ u ++ ] = e . y3 , l [ u ++ ] = j , l [ u ++ ] = k , this . currentBatchSize ++ } , b . WebGLSpriteBatch . prototype . flush = function ( ) { if ( 0 !== this . currentBatchSize ) { var a = this . gl ; if ( this . renderSession . shaderManager . setShader ( this . renderSession . shaderManager . defaultShader ) , this . dirty ) { this . dirty = ! 1 , a . activeTexture ( a . TEXTURE0 ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) ; var c = this . renderSession . projection ; a . uniform2f ( this . shader . projectionVector , c . x , c . y ) ; var d = 4 * this . vertSize ; a . vertexAttribPointer ( this . shader . aVertexPosition , 2 , a . FLOAT , ! 1 , d , 0 ) , a . vertexAttribPointer ( this . shader . aTextureCoord , 2 , a . FLOAT , ! 1 , d , 8 ) , a . vertexAttribPointer ( this . shader . colorAttribute , 2 , a . FLOAT , ! 1 , d , 16 ) } if ( a . bindTexture ( a . TEXTURE _2D , this . currentBaseTexture . _glTextures [ a . id ] || b . createWebGLTexture ( this . currentBaseTexture , a ) ) , this . currentBaseTexture . _dirty [ a . id ] && b . updateWebGLTexture ( this . currentBaseTexture , a ) , this . currentBatchSize > . 5 * this . size ) a . bufferSubData ( a . ARRAY _BUFFER , 0 , this . vertices ) ; else { var e = this . vertices . subarray ( 0 , 4 * this . currentBatchSize * this . vertSize ) ; a . bufferSubData ( a . ARRAY _BUFFER , 0 , e ) } a . drawElements ( a . TRIANGLES , 6 * this . currentBatchSize , a . UNSIGNED _SHORT , 0 ) , this . currentBatchSize = 0 , this . renderSession . drawCount ++ } } , b . WebGLSpriteBatch . prototype . stop = function ( ) { this . flush ( ) } , b . WebGLSpriteBatch . prototype . start = function ( ) { this . dirty = ! 0 } , b . WebGLSpriteBatch . prototype . destroy = function ( ) { this . vertices = null , this . indices = null , this . gl . deleteBuffer ( this . vertexBuffer ) , this . gl . deleteBuffer ( this . indexBuffer ) , this . currentBaseTexture = null , this . gl = null } , b . WebGLFastSpriteBatch = function ( a ) { this . vertSize = 10 , this . maxSize = 6e3 , this . size = this . maxSize ; var b = 4 * this . size * this . vertSize , c = 6 * this . maxSize ; this . vertices = new Float32Array ( b ) , this . indices = new Uint16Array ( c ) , this . vertexBuffer = null , this . indexBuffer = null , this . lastIndexCount = 0 ; for ( var d = 0 , e = 0 ; c > d ; d += 6 , e += 4 ) this . indices [ d + 0 ] = e + 0 , this . indices [ d + 1 ] = e + 1 , this . indices [ d + 2 ] = e + 2 , this . indices [ d + 3 ] = e + 0 , this . indices [ d + 4 ] = e + 2 , this . indices [ d + 5 ] = e + 3 ; this . drawing = ! 1 , this . currentBatchSize = 0 , this . currentBaseTexture = null , this . currentBlendMode = 0 , this . renderSession = null , this . shader = null , this . matrix = null , this . setContext ( a ) } , b . WebGLFastSpriteBatch . prototype . setContext = function ( a ) { this . gl = a , this . vertexBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , this . indices , a . STATIC _DRAW ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertices , a . DYNAMIC _DRAW ) } , b . WebGLFastSpriteBatch . prototype . begin = function ( a , b ) { this . renderSession = b , this . shader = this . renderSession . shaderManager . fastShader , this . matrix = a . worldTransform . toArray ( ! 0 ) , this . start ( ) } , b . WebGLFastSpriteBatch . prototype .
2014-07-11 17:03:43 +00:00
if ( a . spriteBatch . stop ( ) , a . blendModeManager . setBlendMode ( this . blendMode ) , this . _mask && a . maskManager . pushMask ( this . _mask , a ) , this . _filters && a . filterManager . pushFilter ( this . _filterBlock ) , this . blendMode !== a . spriteBatch . currentBlendMode ) { a . spriteBatch . currentBlendMode = this . blendMode ; var c = b . blendModesWebGL [ a . spriteBatch . currentBlendMode ] ; a . spriteBatch . gl . blendFunc ( c [ 0 ] , c [ 1 ] ) } if ( b . WebGLGraphics . renderGraphics ( this , a ) , this . children . length ) { a . spriteBatch . start ( ) ; for ( var d = 0 , e = this . children . length ; e > d ; d ++ ) this . children [ d ] . _renderWebGL ( a ) ; a . spriteBatch . stop ( ) } this . _filters && a . filterManager . popFilter ( ) , this . _mask && a . maskManager . popMask ( this . mask , a ) , a . drawCount ++ , a . spriteBatch . start ( ) } } , b . Graphics . prototype . _renderCanvas = function ( a ) { if ( this . visible !== ! 1 && 0 !== this . alpha && this . isMask !== ! 0 ) { var c = a . context , d = this . worldTransform ; this . blendMode !== a . currentBlendMode && ( a . currentBlendMode = this . blendMode , c . globalCompositeOperation = b . blendModesCanvas [ a . currentBlendMode ] ) , this . _mask && a . maskManager . pushMask ( this . _mask , a . context ) , c . setTransform ( d . a , d . c , d . b , d . d , d . tx , d . ty ) , b . CanvasGraphics . renderGraphics ( this , c ) ; for ( var e = 0 , f = this . children . length ; f > e ; e ++ ) this . children [ e ] . _renderCanvas ( a ) ; this . _mask && a . maskManager . popMask ( a . context ) } } , b . Graphics . prototype . getBounds = function ( a ) { this . bounds || this . updateBounds ( ) ; var b = this . bounds . x , c = this . bounds . width + this . bounds . x , d = this . bounds . y , e = this . bounds . height + this . bounds . y , f = a || this . worldTransform , g = f . a , h = f . c , i = f . b , j = f . d , k = f . tx , l = f . ty , m = g * c + i * e + k , n = j * e + h * c + l , o = g * b + i * e + k , p = j * e + h * b + l , q = g * b + i * d + k , r = j * d + h * b + l , s = g * c + i * d + k , t = j * d + h * c + l , u = m , v = n , w = m , x = n ; w = w > o ? o : w , w = w > q ? q : w , w = w > s ? s : w , x = x > p ? p : x , x = x > r ? r : x , x = x > t ? t : x , u = o > u ? o : u , u = q > u ? q : u , u = s > u ? s : u , v = p > v ? p : v , v = r > v ? r : v , v = t > v ? t : v ; var y = this . _bounds ; return y . x = w , y . width = u - w , y . y = x , y . height = v - x , y } , b . Graphics . prototype . updateBounds = function ( ) { for ( var a , c , d , e , f , g = 1 / 0 , h = - 1 / 0 , i = 1 / 0 , j = - 1 / 0 , k = 0 ; k < this . graphicsData . length ; k ++ ) { var l = this . graphicsData [ k ] , m = l . type , n = l . lineWidth ; if ( a = l . points , m === b . Graphics . RECT ) c = a [ 0 ] - n / 2 , d = a [ 1 ] - n / 2 , e = a [ 2 ] + n , f = a [ 3 ] + n , g = g > c ? c : g , h = c + e > h ? c + e : h , i = i > d ? c : i , j = d + f > j ? d + f : j ; else if ( m === b . Graphics . CIRC || m === b . Graphics . ELIP ) c = a [ 0 ] , d = a [ 1 ] , e = a [ 2 ] + n / 2 , f = a [ 3 ] + n / 2 , g = g > c - e ? c - e : g , h = c + e > h ? c + e : h , i = i > d - f ? d - f : i , j = d + f > j ? d + f : j ; else for ( var o = 0 ; o < a . length ; o += 2 ) c = a [ o ] , d = a [ o + 1 ] , g = g > c - n ? c - n : g , h = c + n > h ? c + n : h , i = i > d - n ? d - n : i , j = d + n > j ? d + n : j } var p = this . boundsPadding ; this . bounds = new b . Rectangle ( g - p , i - p , h - g + 2 * p , j - i + 2 * p ) } , b . Graphics . prototype . _generateCachedSprite = function ( ) { var a = this . getLocalBounds ( ) ; if ( this . _cachedSprite ) this . _cachedSprite . buffer . resize ( a . width , a . height ) ; else { var c = new b . CanvasBuffer ( a . width , a . height ) , d = b . Texture . fromCanvas ( c . canvas ) ; this . _cachedSprite = new b . Sprite ( d ) , this . _cachedSprite . buffer = c , this . _cachedSprite . worldTransform = this . worldTransform } this . _cachedSprite . anchor . x = - ( a . x / a . width ) , this . _cachedSprite . anchor . y = - ( a . y / a . height ) , this . _cachedSprite . buffer . context . translate ( - a . x , - a . y ) , b . CanvasGraphics . renderGraphics ( this , this . _cachedSprite . buffer . context ) , this . _cachedSprite . alpha = this . alpha } , b . Graphics . prototype . destroyCachedSprite = function ( ) { this . _cachedSprite . texture . destroy ( ! 0 ) , this . _cachedSprite = null } , b . Graphics . POLY = 0 , b . Graphics . RECT = 1 , b . Graphics . CIRC = 2 , b . Graphics . ELIP = 3 , b . Graphics . RREC = 4 , b . Strip = function ( a ) { b . DisplayObjectContainer . call ( this ) , this . texture = a , this . uvs = new b . Float32Array ( [ 0 , 1 , 1 , 1 , 1 , 0 , 0 , 1 ] ) , this . verticies = new b . Float32Array ( [ 0 , 0 , 100 , 0 , 100 , 100 , 0 , 100 ] ) , this . colors = new b . Float32Array ( [ 1 , 1 , 1 , 1 ] ) , this . indices = new b . Uint16Array ( [ 0 , 1 , 2 , 3 ] ) , this . dirty = ! 0 } , b . Strip . prototype = Object . create ( b . DisplayObjectContainer . prototype ) , b . Strip . prototype . constructor = b . Strip , b . Strip . prototype . _renderWebGL = function ( a ) { ! this . visible || this . alpha <= 0 || ( a . spriteBatch . stop ( ) , this . _vertexBuffer || this . _initWebGL ( a ) , a . shaderManager . setShader ( a . shaderManager . stripShader ) , this . _renderStrip ( a ) , a . spriteBatch . start ( ) ) } , b . Strip . prototype . _initWebGL = function ( a ) { var b = a . gl ; this . _vertexBuffer = b . createBuffer ( ) , this . _indexBuffer = b . createBuffer ( ) , this . _uvBuffer = b . createBuffer ( ) , this . _colorBuffer = b . createBuffer ( ) , b . bindBuffer ( b . ARRAY _BUFFER , this . _vertexBuffer ) , b . bufferData ( b . ARRAY _BUFFER , this . vertici
2014-07-11 10:52:14 +00:00
} , floor : function ( ) { this . x = Math . floor ( this . x ) , this . y = Math . floor ( this . y ) } , floorAll : function ( ) { this . x = Math . floor ( this . x ) , this . y = Math . floor ( this . y ) , this . width = Math . floor ( this . width ) , this . height = Math . floor ( this . height ) } , copyFrom : function ( a ) { return this . setTo ( a . x , a . y , a . width , a . height ) } , copyTo : function ( a ) { return a . x = this . x , a . y = this . y , a . width = this . width , a . height = this . height , a } , inflate : function ( a , c ) { return b . Rectangle . inflate ( this , a , c ) } , size : function ( a ) { return b . Rectangle . size ( this , a ) } , clone : function ( a ) { return b . Rectangle . clone ( this , a ) } , contains : function ( a , c ) { return b . Rectangle . contains ( this , a , c ) } , containsRect : function ( a ) { return b . Rectangle . containsRect ( this , a ) } , equals : function ( a ) { return b . Rectangle . equals ( this , a ) } , intersection : function ( a , c ) { return b . Rectangle . intersection ( this , a , c ) } , intersects : function ( a , c ) { return b . Rectangle . intersects ( this , a , c ) } , intersectsRaw : function ( a , c , d , e , f ) { return b . Rectangle . intersectsRaw ( this , a , c , d , e , f ) } , union : function ( a , c ) { return b . Rectangle . union ( this , a , c ) } , toString : function ( ) { return "[{Rectangle (x=" + this . x + " y=" + this . y + " width=" + this . width + " height=" + this . height + " empty=" + this . empty + ")}]" } } , Object . defineProperty ( b . Rectangle . prototype , "halfWidth" , { get : function ( ) { return Math . round ( this . width / 2 ) } } ) , Object . defineProperty ( b . Rectangle . prototype , "halfHeight" , { get : function ( ) { return Math . round ( this . height / 2 ) } } ) , Object . defineProperty ( b . Rectangle . prototype , "bottom" , { get : function ( ) { return this . y + this . height } , set : function ( a ) { this . height = a <= this . y ? 0 : this . y - a } } ) , Object . defineProperty ( b . Rectangle . prototype , "bottomRight" , { get : function ( ) { return new b . Point ( this . right , this . bottom ) } , set : function ( a ) { this . right = a . x , this . bottom = a . y } } ) , Object . defineProperty ( b . Rectangle . prototype , "left" , { get : function ( ) { return this . x } , set : function ( a ) { this . width = a >= this . right ? 0 : this . right - a , this . x = a } } ) , Object . defineProperty ( b . Rectangle . prototype , "right" , { get : function ( ) { return this . x + this . width } , set : function ( a ) { this . width = a <= this . x ? 0 : a - this . x } } ) , Object . defineProperty ( b . Rectangle . prototype , "volume" , { get : function ( ) { return this . width * this . height } } ) , Object . defineProperty ( b . Rectangle . prototype , "perimeter" , { get : function ( ) { return 2 * this . width + 2 * this . height } } ) , Object . defineProperty ( b . Rectangle . prototype , "centerX" , { get : function ( ) { return this . x + this . halfWidth } , set : function ( a ) { this . x = a - this . halfWidth } } ) , Object . defineProperty ( b . Rectangle . prototype , "centerY" , { get : function ( ) { return this . y + this . halfHeight } , set : function ( a ) { this . y = a - this . halfHeight } } ) , Object . defineProperty ( b . Rectangle . prototype , "randomX" , { get : function ( ) { return this . x + Math . random ( ) * this . width } } ) , Object . defineProperty ( b . Rectangle . prototype , "randomY" , { get : function ( ) { return this . y + Math . random ( ) * this . height } } ) , Object . defineProperty ( b . Rectangle . prototype , "top" , { get : function ( ) { return this . y } , set : function ( a ) { a >= this . bottom ? ( this . height = 0 , this . y = a ) : this . height = this . bottom - a } } ) , Object . defineProperty ( b . Rectangle . prototype , "topLeft" , { get : function ( ) { return new b . Point ( this . x , this . y ) } , set : function ( a ) { this . x = a . x , this . y = a . y } } ) , Object . defineProperty ( b . Rectangle . prototype , "empty" , { get : function ( ) { return ! this . width || ! this . height } , set : function ( a ) { a === ! 0 && this . setTo ( 0 , 0 , 0 , 0 ) } } ) , b . Rectangle . prototype . constructor = b . Rectangle , b . Rectangle . inflate = function ( a , b , c ) { return a . x -= b , a . width += 2 * b , a . y -= c , a . height += 2 * c , a } , b . Rectangle . inflatePoint = function ( a , c ) { return b . Rectangle . inflate ( a , c . x , c . y ) } , b . Rectangle . size = function ( a , c ) { return "undefined" == typeof c || null === c ? c = new b . Point ( a . width , a . height ) : c . setTo ( a . width , a . height ) , c } , b . Rectangle . clone = function ( a , c ) { return "undefined" == typeof c || null === c ? c = new b . Rectangle ( a . x , a . y , a . width , a . height ) : c . setTo ( a . x , a . y , a . width , a . height ) , c } , b . Rectangle . contains = function ( a , b , c ) { return a . width <= 0 || a . height <= 0 ? ! 1 : b >= a . x && b <= a . right && c >= a . y && c <= a . bottom } , b . Rectangle . containsRaw = function ( a , b , c , d , e , f ) { return e >= a && a + c >= e && f >= b && b + d >= f } , b . Rectangle . containsPoint = function ( a , c ) { return b . Rectangle . contains ( a , c . x , c . y ) } , b . Rectangle . containsRect = function ( a , b ) { return a . volume > b . volume ? ! 1 : a . x >= b . x && a . y >= b . y && a . right <= b . right && a . bottom <= b . bottom } , b . Rectangle . equals = function ( a , b ) { return a . x == b . x && a . y == b . y && a . wid
} , b . Stage . prototype . visibilityChange = function ( a ) { return "pagehide" === a . type || "blur" === a . type || "pageshow" === a . type || "focus" === a . type ? void ( "pagehide" === a . type || "blur" === a . type ? this . game . focusLoss ( a ) : ( "pageshow" === a . type || "focus" === a . type ) && this . game . focusGain ( a ) ) : void ( this . disableVisibilityChange || ( document . hidden || document . mozHidden || document . msHidden || document . webkitHidden ? this . game . gamePaused ( a ) : this . game . gameResumed ( a ) ) ) } , b . Stage . prototype . setBackgroundColor = function ( a ) { if ( "string" == typeof a ) { var c = b . Color . hexToColor ( a ) ; this . _backgroundColor = b . Color . getColor ( c . r , c . g , c . b ) } else { var c = b . Color . getRGB ( a ) ; this . _backgroundColor = a } this . backgroundColorSplit = [ c . r / 255 , c . g / 255 , c . b / 255 ] , this . backgroundColorString = b . Color . RGBtoString ( c . r , c . g , c . b , 255 , "#" ) } , Object . defineProperty ( b . Stage . prototype , "backgroundColor" , { get : function ( ) { return this . _backgroundColor } , set : function ( a ) { this . game . transparent || this . setBackgroundColor ( a ) } } ) , Object . defineProperty ( b . Stage . prototype , "smoothed" , { get : function ( ) { return ! PIXI . scaleModes . LINEAR } , set : function ( a ) { PIXI . scaleModes . LINEAR = a ? 0 : 1 } } ) , b . Group = function ( a , c , d , e , f , g ) { "undefined" == typeof e && ( e = ! 1 ) , "undefined" == typeof f && ( f = ! 1 ) , "undefined" == typeof g && ( g = b . Physics . ARCADE ) , this . game = a , "undefined" == typeof c && ( c = a . world ) , this . name = d || "group" , PIXI . DisplayObjectContainer . call ( this ) , e ? this . game . stage . addChild ( this ) : c && c . addChild ( this ) , this . z = 0 , this . type = b . GROUP , this . alive = ! 0 , this . exists = ! 0 , this . classType = b . Sprite , this . scale = new b . Point ( 1 , 1 ) , this . cursor = null , this . cameraOffset = new b . Point , this . enableBody = f , this . enableBodyDebug = ! 1 , this . physicsBodyType = g , this . _sortProperty = "z" , this . _cache = [ 0 , 0 , 0 , 0 , 1 , 0 , 1 , 0 , 0 , 0 ] } , b . Group . prototype = Object . create ( PIXI . DisplayObjectContainer . prototype ) , b . Group . prototype . constructor = b . Group , b . Group . RETURN _NONE = 0 , b . Group . RETURN _TOTAL = 1 , b . Group . RETURN _CHILD = 2 , b . Group . SORT _ASCENDING = - 1 , b . Group . SORT _DESCENDING = 1 , b . Group . prototype . add = function ( a , b ) { return "undefined" == typeof b && ( b = ! 1 ) , a . parent !== this && ( this . enableBody && this . game . physics . enable ( a , this . physicsBodyType ) , this . addChild ( a ) , a . z = this . children . length , ! b && a . events && a . events . onAddedToGroup . dispatch ( a , this ) , null === this . cursor && ( this . cursor = a ) ) , a } , b . Group . prototype . addAt = function ( a , b , c ) { return "undefined" == typeof c && ( c = ! 1 ) , a . parent !== this && ( this . enableBody && this . game . physics . enable ( a , this . physicsBodyType ) , this . addChildAt ( a , b ) , this . updateZ ( ) , ! c && a . events && a . events . onAddedToGroup . dispatch ( a , this ) , null === this . cursor && ( this . cursor = a ) ) , a } , b . Group . prototype . getAt = function ( a ) { return 0 > a || a >= this . children . length ? - 1 : this . getChildAt ( a ) } , b . Group . prototype . create = function ( a , b , c , d , e ) { "undefined" == typeof e && ( e = ! 0 ) ; var f = new this . classType ( this . game , a , b , c , d ) ; return this . enableBody && this . game . physics . enable ( f , this . physicsBodyType ) , f . exists = e , f . visible = e , f . alive = e , this . addChild ( f ) , f . z = this . children . length , f . events && f . events . onAddedToGroup . dispatch ( f , this ) , null === this . cursor && ( this . cursor = f ) , f } , b . Group . prototype . createMultiple = function ( a , b , c , d ) { "undefined" == typeof d && ( d = ! 1 ) ; for ( var e = 0 ; a > e ; e ++ ) this . create ( 0 , 0 , b , c , d ) } , b . Group . prototype . updateZ = function ( ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . z = a } , b . Group . prototype . resetCursor = function ( a ) { return "undefined" == typeof a && ( a = 0 ) , a > this . children . length - 1 && ( a = 0 ) , this . cursor ? ( this . _cache [ 8 ] = a , this . cursor = this . children [ this . _cache [ 8 ] ] , this . cursor ) : void 0 } , b . Group . prototype . next = function ( ) { return this . cursor ? ( this . _cache [ 8 ] >= this . children . length - 1 ? this . _cache [ 8 ] = 0 : this . _cache [ 8 ] ++ , this . cursor = this . children [ this . _cache [ 8 ] ] , this . cursor ) : void 0 } , b . Group . prototype . previous = function ( ) { return this . cursor ? ( 0 === this . _cache [ 8 ] ? this . _cache [ 8 ] = this . children . length - 1 : this . _cache [ 8 ] -- , this . cursor = this . children [ this . _cache [ 8 ] ] , this . cursor ) : void 0 } , b . Group . prototype . swap = function ( a , b ) { var c = this . swapChildren ( a , b ) ; return c && this . updateZ ( ) , c } , b . Group . prototype . bringToTop = function ( a ) { return a . parent === this && this . getIndex ( a ) < this . children . length && ( this . remove ( a , ! 1 , ! 0 ) , this . add ( a , ! 0 ) ) , a } , b . Group . prototype . sendToBack = function ( a ) { return a . parent === this && this . getIndex ( a ) > 0 && ( this . remove ( a , ! 1 , ! 0 ) , this . addAt ( a , 0 , ! 0 ) ) , a } , b . Group . pr
2014-07-10 15:23:26 +00:00
} } ) , b . Input = function ( a ) { this . game = a , this . hitCanvas = null , this . hitContext = null , this . moveCallbacks = [ ] , this . moveCallback = null , this . moveCallbackContext = this , this . pollRate = 0 , this . disabled = ! 1 , this . multiInputOverride = b . Input . MOUSE _TOUCH _COMBINE , this . position = null , this . speed = null , this . circle = null , this . scale = null , this . maxPointers = 10 , this . currentPointers = 0 , this . tapRate = 200 , this . doubleTapRate = 300 , this . holdRate = 2e3 , this . justPressedRate = 200 , this . justReleasedRate = 200 , this . recordPointerHistory = ! 1 , this . recordRate = 100 , this . recordLimit = 100 , this . pointer1 = null , this . pointer2 = null , this . pointer3 = null , this . pointer4 = null , this . pointer5 = null , this . pointer6 = null , this . pointer7 = null , this . pointer8 = null , this . pointer9 = null , this . pointer10 = null , this . activePointer = null , this . mousePointer = null , this . mouse = null , this . keyboard = null , this . touch = null , this . mspointer = null , this . gamepad = null , this . resetLocked = ! 1 , this . onDown = null , this . onUp = null , this . onTap = null , this . onHold = null , this . minPriorityID = 0 , this . interactiveItems = new b . ArrayList , this . _localPoint = new b . Point , this . _pollCounter = 0 , this . _oldPosition = null , this . _x = 0 , this . _y = 0 } , b . Input . MOUSE _OVERRIDES _TOUCH = 0 , b . Input . TOUCH _OVERRIDES _MOUSE = 1 , b . Input . MOUSE _TOUCH _COMBINE = 2 , b . Input . prototype = { boot : function ( ) { this . mousePointer = new b . Pointer ( this . game , 0 ) , this . pointer1 = new b . Pointer ( this . game , 1 ) , this . pointer2 = new b . Pointer ( this . game , 2 ) , this . mouse = new b . Mouse ( this . game ) , this . keyboard = new b . Keyboard ( this . game ) , this . touch = new b . Touch ( this . game ) , this . mspointer = new b . MSPointer ( this . game ) , this . gamepad = new b . Gamepad ( this . game ) , this . onDown = new b . Signal , this . onUp = new b . Signal , this . onTap = new b . Signal , this . onHold = new b . Signal , this . scale = new b . Point ( 1 , 1 ) , this . speed = new b . Point , this . position = new b . Point , this . _oldPosition = new b . Point , this . circle = new b . Circle ( 0 , 0 , 44 ) , this . activePointer = this . mousePointer , this . currentPointers = 0 , this . hitCanvas = document . createElement ( "canvas" ) , this . hitCanvas . width = 1 , this . hitCanvas . height = 1 , this . hitContext = this . hitCanvas . getContext ( "2d" ) , this . mouse . start ( ) , this . keyboard . start ( ) , this . touch . start ( ) , this . mspointer . start ( ) , this . mousePointer . active = ! 0 } , destroy : function ( ) { this . mouse . stop ( ) , this . keyboard . stop ( ) , this . touch . stop ( ) , this . mspointer . stop ( ) , this . gamepad . stop ( ) , this . moveCallbacks = [ ] , this . moveCallback = null } , setMoveCallback : function ( a , b ) { this . moveCallback = a , this . moveCallbackContext = b } , addMoveCallback : function ( a , b ) { return this . moveCallbacks . push ( { callback : a , context : b } ) - 1 } , deleteMoveCallback : function ( a ) { this . moveCallbacks [ a ] && this . moveCallbacks . splice ( a , 1 ) } , addPointer : function ( ) { for ( var a = 0 , c = 10 ; c > 0 ; c -- ) null === this [ "pointer" + c ] && ( a = c ) ; return 0 === a ? ( console . warn ( "You can only have 10 Pointer objects" ) , null ) : ( this [ "pointer" + a ] = new b . Pointer ( this . game , a ) , this [ "pointer" + a ] ) } , update : function ( ) { return this . keyboard . update ( ) , this . pollRate > 0 && this . _pollCounter < this . pollRate ? void this . _pollCounter ++ : ( this . speed . x = this . position . x - this . _oldPosition . x , this . speed . y = this . position . y - this . _oldPosition . y , this . _oldPosition . copyFrom ( this . position ) , this . mousePointer . update ( ) , this . gamepad . active && this . gamepad . update ( ) , this . pointer1 . update ( ) , this . pointer2 . update ( ) , this . pointer3 && this . pointer3 . update ( ) , this . pointer4 && this . pointer4 . update ( ) , this . pointer5 && this . pointer5 . update ( ) , this . pointer6 && this . pointer6 . update ( ) , this . pointer7 && this . pointer7 . update ( ) , this . pointer8 && this . pointer8 . update ( ) , this . pointer9 && this . pointer9 . update ( ) , this . pointer10 && this . pointer10 . update ( ) , void ( this . _pollCounter = 0 ) ) } , reset : function ( a ) { if ( this . game . isBooted && ! this . resetLocked ) { "undefined" == typeof a && ( a = ! 1 ) , this . keyboard . reset ( a ) , this . mousePointer . reset ( ) , this . gamepad . reset ( ) ; for ( var c = 1 ; 10 >= c ; c ++ ) this [ "pointer" + c ] && this [ "pointer" + c ] . reset ( ) ; this . currentPointers = 0 , "none" !== this . game . canvas . style . cursor && ( this . game . canvas . style . cursor = "inherit" ) , a && ( this . onDown . dispose ( ) , this . onUp . dispose ( ) , this . onTap . dispose ( ) , this . onHold . dispose ( ) , this . onDown = new b . Signal , this . onUp = new b . Signal , this . onTap = new b . Signal , this . onHold = new b . Signal , this . moveCallbacks = [ ] ) , this . _pollCounter = 0 } } , resetSpeed : function ( a , b ) { this . _oldPosition . setTo ( a , b ) , this . speed . setTo ( 0 , 0 ) } , startPointer : function
2014-07-11 10:52:14 +00:00
for ( var b = 0 ; b < a . changedTouches . length ; b ++ ) this . game . input . stopPointer ( a . changedTouches [ b ] ) } , stop : function ( ) { this . game . device . touch && ( this . game . canvas . removeEventListener ( "touchstart" , this . _onTouchStart ) , this . game . canvas . removeEventListener ( "touchmove" , this . _onTouchMove ) , this . game . canvas . removeEventListener ( "touchend" , this . _onTouchEnd ) , this . game . canvas . removeEventListener ( "touchenter" , this . _onTouchEnter ) , this . game . canvas . removeEventListener ( "touchleave" , this . _onTouchLeave ) , this . game . canvas . removeEventListener ( "touchcancel" , this . _onTouchCancel ) ) } } , b . Touch . prototype . constructor = b . Touch , b . Gamepad = function ( a ) { this . game = a , this . _gamepads = [ new b . SinglePad ( a , this ) , new b . SinglePad ( a , this ) , new b . SinglePad ( a , this ) , new b . SinglePad ( a , this ) ] , this . _gamepadIndexMap = { } , this . _rawPads = [ ] , this . _active = ! 1 , this . disabled = ! 1 , this . _gamepadSupportAvailable = ! ! navigator . webkitGetGamepads || ! ! navigator . webkitGamepads || - 1 != navigator . userAgent . indexOf ( "Firefox/" ) || ! ! navigator . getGamepads , this . _prevRawGamepadTypes = [ ] , this . _prevTimestamps = [ ] , this . callbackContext = this , this . onConnectCallback = null , this . onDisconnectCallback = null , this . onDownCallback = null , this . onUpCallback = null , this . onAxisCallback = null , this . onFloatCallback = null , this . _ongamepadconnected = null , this . _gamepaddisconnected = null } , b . Gamepad . prototype = { addCallbacks : function ( a , b ) { "undefined" != typeof b && ( this . onConnectCallback = "function" == typeof b . onConnect ? b . onConnect : this . onConnectCallback , this . onDisconnectCallback = "function" == typeof b . onDisconnect ? b . onDisconnect : this . onDisconnectCallback , this . onDownCallback = "function" == typeof b . onDown ? b . onDown : this . onDownCallback , this . onUpCallback = "function" == typeof b . onUp ? b . onUp : this . onUpCallback , this . onAxisCallback = "function" == typeof b . onAxis ? b . onAxis : this . onAxisCallback , this . onFloatCallback = "function" == typeof b . onFloat ? b . onFloat : this . onFloatCallback ) } , start : function ( ) { if ( ! this . _active ) { this . _active = ! 0 ; var a = this ; this . _ongamepadconnected = function ( b ) { var c = b . gamepad ; a . _rawPads . push ( c ) , a . _gamepads [ c . index ] . connect ( c ) } , window . addEventListener ( "gamepadconnected" , this . _ongamepadconnected , ! 1 ) , this . _ongamepaddisconnected = function ( b ) { var c = b . gamepad ; for ( var d in a . _rawPads ) a . _rawPads [ d ] . index === c . index && a . _rawPads . splice ( d , 1 ) ; a . _gamepads [ c . index ] . disconnect ( ) } , window . addEventListener ( "gamepaddisconnected" , this . _ongamepaddisconnected , ! 1 ) } } , update : function ( ) { this . _pollGamepads ( ) , this . pad1 . pollStatus ( ) , this . pad2 . pollStatus ( ) , this . pad3 . pollStatus ( ) , this . pad4 . pollStatus ( ) } , _pollGamepads : function ( ) { if ( navigator . getGamepads ) var a = navigator . getGamepads ( ) ; else if ( navigator . webkitGetGamepads ) var a = navigator . webkitGetGamepads ( ) ; else if ( navigator . webkitGamepads ) var a = navigator . webkitGamepads ( ) ; if ( a ) { this . _rawPads = [ ] ; for ( var b = ! 1 , c = 0 ; c < a . length && ( typeof a [ c ] !== this . _prevRawGamepadTypes [ c ] && ( b = ! 0 , this . _prevRawGamepadTypes [ c ] = typeof a [ c ] ) , a [ c ] && this . _rawPads . push ( a [ c ] ) , 3 !== c ) ; c ++ ) ; if ( b ) { for ( var d , e = { rawIndices : { } , padIndices : { } } , f = 0 ; f < this . _gamepads . length ; f ++ ) if ( d = this . _gamepads [ f ] , d . connected ) for ( var g = 0 ; g < this . _rawPads . length ; g ++ ) this . _rawPads [ g ] . index === d . index && ( e . rawIndices [ d . index ] = ! 0 , e . padIndices [ f ] = ! 0 ) ; for ( var h = 0 ; h < this . _gamepads . length ; h ++ ) if ( d = this . _gamepads [ h ] , ! e . padIndices [ h ] ) { this . _rawPads . length < 1 && d . disconnect ( ) ; for ( var i = 0 ; i < this . _rawPads . length && ! e . padIndices [ h ] ; i ++ ) { var j = this . _rawPads [ i ] ; if ( j ) { if ( e . rawIndices [ j . index ] ) { d . disconnect ( ) ; continue } d . connect ( j ) , e . rawIndices [ j . index ] = ! 0 , e . padIndices [ h ] = ! 0 } else d . disconnect ( ) } } } } } , setDeadZones : function ( a ) { for ( var b = 0 ; b < this . _gamepads . length ; b ++ ) this . _gamepads [ b ] . deadZone = a } , stop : function ( ) { this . _active = ! 1 , window . removeEventListener ( "gamepadconnected" , this . _ongamepadconnected ) , window . removeEventListener ( "gamepaddisconnected" , this . _ongamepaddisconnected ) } , reset : function ( ) { this . update ( ) ; for ( var a = 0 ; a < this . _gamepads . length ; a ++ ) this . _gamepads [ a ] . reset ( ) } , justPressed : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justPressed ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , justReleased : function ( a , b ) { for ( var c = 0 ; c < this . _gamepads . length ; c ++ ) if ( this . _gamepads [ c ] . justReleased ( a , b ) === ! 0 ) return ! 0 ; return ! 1 } , isDown : function ( a ) { for ( va
2014-07-11 17:03:43 +00:00
} , b . BitmapData . prototype = { add : function ( a ) { if ( Array . isArray ( a ) ) for ( var b = 0 ; b < a . length ; b ++ ) a [ b ] . loadTexture && a [ b ] . loadTexture ( this ) ; else a . loadTexture ( this ) } , load : function ( a ) { "string" == typeof a && ( a = this . game . cache . getImage ( a ) ) , this . resize ( a . width , a . height ) , this . cls ( ) , a instanceof b . Image || a instanceof b . Sprite ? this . drawSprite ( a , 0 , 0 ) : this . draw ( a , 0 , 0 ) , this . update ( ) } , clear : function ( ) { this . context . clearRect ( 0 , 0 , this . width , this . height ) , this . dirty = ! 0 } , fill : function ( a , b , c , d ) { "undefined" == typeof d && ( d = 1 ) , this . context . fillStyle = "rgba(" + a + "," + b + "," + c + "," + d + ")" , this . context . fillRect ( 0 , 0 , this . width , this . height ) , this . dirty = ! 0 } , resize : function ( a , b ) { ( a !== this . width || b !== this . height ) && ( this . width = a , this . height = b , this . canvas . width = a , this . canvas . height = b , this . baseTexture . width = a , this . baseTexture . height = b , this . textureFrame . width = a , this . textureFrame . height = b , this . texture . width = a , this . texture . height = b , this . refreshBuffer ( ) , this . dirty = ! 0 ) } , refreshBuffer : function ( a , b , c , d ) { "undefined" == typeof a && ( a = 0 ) , "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = this . width ) , "undefined" == typeof d && ( d = this . height ) , this . imageData = this . context . getImageData ( a , b , c , d ) , this . data = this . imageData . data , this . imageData . data . buffer ? ( this . buffer = this . imageData . data . buffer , this . pixels = new Uint32Array ( this . buffer ) ) : window . ArrayBuffer ? ( this . buffer = new ArrayBuffer ( this . imageData . data . length ) , this . pixels = new Uint32Array ( this . buffer ) ) : this . pixels = this . imageData . data } , processPixelRGB : function ( a , c , d , e , f , g ) { "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = this . width ) , "undefined" == typeof g && ( g = this . height ) ; for ( var h = d + f , i = e + g , j = b . Color . createColor ( ) , k = { r : 0 , g : 0 , b : 0 , a : 0 } , l = ! 1 , m = e ; i > m ; m ++ ) for ( var n = d ; h > n ; n ++ ) b . Color . unpackPixel ( this . getPixel32 ( n , m ) , j ) , k = a . call ( c , j , n , m ) , k !== ! 1 && null !== k && void 0 !== k && ( this . setPixel32 ( n , m , k . r , k . g , k . b , k . a , ! 1 ) , l = ! 0 ) ; l && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) } , processPixel : function ( a , b , c , d , e , f ) { "undefined" == typeof c && ( c = 0 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = this . width ) , "undefined" == typeof f && ( f = this . height ) ; for ( var g = c + e , h = d + f , i = 0 , j = 0 , k = ! 1 , l = d ; h > l ; l ++ ) for ( var m = c ; g > m ; m ++ ) i = this . getPixel32 ( m , l ) , j = a . call ( b , i , m , l ) , j !== i && ( this . pixels [ l * this . width + m ] = j , k = ! 0 ) ; k && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) } , replaceRGB : function ( a , c , d , e , f , g , h , i , j ) { var k = 0 , l = 0 , m = this . width , n = this . height , o = b . Color . packPixel ( a , c , d , e ) ; void 0 !== j && j instanceof b . Rectangle && ( k = j . x , l = j . y , m = j . width , n = j . height ) ; for ( var p = 0 ; n > p ; p ++ ) for ( var q = 0 ; m > q ; q ++ ) this . getPixel32 ( k + q , l + p ) === o && this . setPixel32 ( k + q , l + p , f , g , h , i , ! 1 ) ; this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 } , setHSL : function ( a , c , d , e ) { if ( ( "undefined" == typeof a || null === a ) && ( a = ! 1 ) , ( "undefined" == typeof c || null === c ) && ( c = ! 1 ) , ( "undefined" == typeof d || null === d ) && ( d = ! 1 ) , a || c || d ) { "undefined" == typeof e && ( e = new b . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var f = b . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) b . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = a ) , c && ( f . s = c ) , d && ( f . l = d ) , b . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 } } , shiftHSL : function ( a , c , d , e ) { if ( ( "undefined" == typeof a || null === a ) && ( a = ! 1 ) , ( "undefined" == typeof c || null === c ) && ( c = ! 1 ) , ( "undefined" == typeof d || null === d ) && ( d = ! 1 ) , a || c || d ) { "undefined" == typeof e && ( e = new b . Rectangle ( 0 , 0 , this . width , this . height ) ) ; for ( var f = b . Color . createColor ( ) , g = e . y ; g < e . bottom ; g ++ ) for ( var h = e . x ; h < e . right ; h ++ ) b . Color . unpackPixel ( this . getPixel32 ( h , g ) , f , ! 0 ) , a && ( f . h = this . game . math . wrap ( f . h + a , 0 , 1 ) ) , c && ( f . s = this . game . math . limitValue ( f . s + c , 0 , 1 ) ) , d && ( f . l = this . game . math . limitValue ( f . l + d , 0 , 1 ) ) , b . Color . HSLtoRGB ( f . h , f . s , f . l , f ) , this . setPixel32 ( h , g , f . r , f . g , f . b , f . a , ! 1 ) ; this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 } } , setPixel32 : function ( a , c , d , e , f , g , h ) { "undefined" == typeof h && ( h = ! 0 ) , a >= 0 && a <= this . width && c >= 0 && c <= this . height && ( this . pixels [ c * this . width + a ] = b . Device . LITTLE _ENDIAN ? g << 24 | f << 16 | e << 8 | d : d << 24 | e << 16 | f << 8 | g , h && ( this . context . putImageData ( this . imageData , 0 , 0 ) , this . dirty = ! 0 ) ) } , setPixel : function ( a , b , c
} , b . Text . prototype . setStyle = function ( a ) { a = a || { } , a . font = a . font || "bold 20pt Arial" , a . fill = a . fill || "black" , a . align = a . align || "left" , a . stroke = a . stroke || "black" , a . strokeThickness = a . strokeThickness || 0 , a . wordWrap = a . wordWrap || ! 1 , a . wordWrapWidth = a . wordWrapWidth || 100 , a . shadowOffsetX = a . shadowOffsetX || 0 , a . shadowOffsetY = a . shadowOffsetY || 0 , a . shadowColor = a . shadowColor || "rgba(0,0,0,0)" , a . shadowBlur = a . shadowBlur || 0 , this . style = a , this . dirty = ! 0 } , b . Text . prototype . updateText = function ( ) { this . context . font = this . style . font ; var a = this . text ; this . style . wordWrap && ( a = this . runWordWrap ( this . text ) ) ; for ( var b = a . split ( /(?:\r\n|\r|\n)/ ) , c = [ ] , d = 0 , e = 0 ; e < b . length ; e ++ ) { var f = this . context . measureText ( b [ e ] ) . width ; c [ e ] = f , d = Math . max ( d , f ) } this . canvas . width = d + this . style . strokeThickness ; var g = this . determineFontHeight ( "font: " + this . style . font + ";" ) + this . style . strokeThickness + this . _lineSpacing + this . style . shadowOffsetY ; for ( this . canvas . height = g * b . length , navigator . isCocoonJS && this . context . clearRect ( 0 , 0 , this . canvas . width , this . canvas . height ) , this . context . fillStyle = this . style . fill , this . context . font = this . style . font , this . context . strokeStyle = this . style . stroke , this . context . lineWidth = this . style . strokeThickness , this . context . shadowOffsetX = this . style . shadowOffsetX , this . context . shadowOffsetY = this . style . shadowOffsetY , this . context . shadowColor = this . style . shadowColor , this . context . shadowBlur = this . style . shadowBlur , this . context . textBaseline = "top" , this . context . lineCap = "round" , this . context . lineJoin = "round" , e = 0 ; e < b . length ; e ++ ) { var h = new PIXI . Point ( this . style . strokeThickness / 2 , this . style . strokeThickness / 2 + e * g ) ; "right" === this . style . align ? h . x += d - c [ e ] : "center" === this . style . align && ( h . x += ( d - c [ e ] ) / 2 ) , h . y += this . _lineSpacing , this . style . stroke && this . style . strokeThickness && this . context . strokeText ( b [ e ] , h . x , h . y ) , this . style . fill && this . context . fillText ( b [ e ] , h . x , h . y ) } this . updateTexture ( ) } , b . Text . prototype . runWordWrap = function ( a ) { for ( var b = "" , c = a . split ( "\n" ) , d = 0 ; d < c . length ; d ++ ) { for ( var e = this . style . wordWrapWidth , f = c [ d ] . split ( " " ) , g = 0 ; g < f . length ; g ++ ) { var h = this . context . measureText ( f [ g ] ) . width , i = h + this . context . measureText ( " " ) . width ; i > e ? ( g > 0 && ( b += "\n" ) , b += f [ g ] + " " , e = this . style . wordWrapWidth - h ) : ( e -= i , b += f [ g ] + " " ) } d < c . length - 1 && ( b += "\n" ) } return b } , Object . defineProperty ( b . Text . prototype , "angle" , { get : function ( ) { return b . Math . radToDeg ( this . rotation ) } , set : function ( a ) { this . rotation = b . Math . degToRad ( a ) } } ) , Object . defineProperty ( b . Text . prototype , "text" , { get : function ( ) { return this . _text } , set : function ( a ) { a !== this . _text && ( this . _text = a . toString ( ) || " " , this . dirty = ! 0 , this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "font" , { get : function ( ) { return this . _font } , set : function ( a ) { a !== this . _font && ( this . _font = a . trim ( ) , this . style . font = this . _fontWeight + " " + this . _fontSize + "px '" + this . _font + "'" , this . dirty = ! 0 , this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "fontSize" , { get : function ( ) { return this . _fontSize } , set : function ( a ) { a = parseInt ( a , 10 ) , a !== this . _fontSize && ( this . _fontSize = a , this . style . font = this . _fontWeight + " " + this . _fontSize + "px '" + this . _font + "'" , this . dirty = ! 0 , this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "fontWeight" , { get : function ( ) { return this . _fontWeight } , set : function ( a ) { a !== this . _fontWeight && ( this . _fontWeight = a , this . style . font = this . _fontWeight + " " + this . _fontSize + "px '" + this . _font + "'" , this . dirty = ! 0 , this . updateTransform ( ) ) } } ) , Object . defineProperty ( b . Text . prototype , "fill" , { get : function ( ) { return this . style . fill } , set : function ( a ) { a !== this . style . fill && ( this . style . fill = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "align" , { get : function ( ) { return this . style . align } , set : function ( a ) { a !== this . style . align && ( this . style . align = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "stroke" , { get : function ( ) { return this . style . stroke } , set : function ( a ) { a !== this . style . stroke && ( this . style . stroke = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "strokeThickness" , { get : function ( ) { return this . style . strokeThickness } , set : function ( a ) { a !== this . style . strokeThickness && ( this . style . strokeThickness = a , this . dirty = ! 0 ) } } ) , Object . defineProperty ( b . Text . prototype , "wordWrap" , { get : function ( ) { return this . sty
} , _checkIsLittleEndian : function ( ) { var a = new ArrayBuffer ( 4 ) , b = new Uint8Array ( a ) , c = new Uint32Array ( a ) ; return b [ 0 ] = 161 , b [ 1 ] = 178 , b [ 2 ] = 195 , b [ 3 ] = 212 , 3569595041 == c [ 0 ] ? ! 0 : 2712847316 == c [ 0 ] ? ! 1 : null } , _checkIsUint8ClampedImageData : function ( ) { if ( "undefined" == typeof Uint8ClampedArray ) return ! 1 ; var a = document . createElement ( "canvas" ) , b = a . getContext ( "2d" ) ; if ( ! b ) return ! 1 ; var c = b . createImageData ( 1 , 1 ) ; return c . data instanceof Uint8ClampedArray } , _checkCSS3D : function ( ) { var a , b = document . createElement ( "p" ) , c = { webkitTransform : "-webkit-transform" , OTransform : "-o-transform" , msTransform : "-ms-transform" , MozTransform : "-moz-transform" , transform : "transform" } ; document . body . insertBefore ( b , null ) ; for ( var d in c ) void 0 !== b . style [ d ] && ( b . style [ d ] = "translate3d(1px,1px,1px)" , a = window . getComputedStyle ( b ) . getPropertyValue ( c [ d ] ) ) ; document . body . removeChild ( b ) , this . css3D = void 0 !== a && a . length > 0 && "none" !== a } , canPlayAudio : function ( a ) { return "mp3" == a && this . mp3 ? ! 0 : "ogg" == a && ( this . ogg || this . opus ) ? ! 0 : "m4a" == a && this . m4a ? ! 0 : "wav" == a && this . wav ? ! 0 : "webm" == a && this . webm ? ! 0 : ! 1 } , isConsoleOpen : function ( ) { return window . console && window . console . firebug ? ! 0 : window . console && ( console . profile ( ) , console . profileEnd ( ) , console . clear && console . clear ( ) , console . profiles ) ? console . profiles . length > 0 : ! 1 } } , b . Device . prototype . constructor = b . Device , b . RequestAnimationFrame = function ( a , b ) { "undefined" == typeof b && ( b = ! 1 ) , this . game = a , this . isRunning = ! 1 , this . forceSetTimeOut = b ; for ( var c = [ "ms" , "moz" , "webkit" , "o" ] , d = 0 ; d < c . length && ! window . requestAnimationFrame ; d ++ ) window . requestAnimationFrame = window [ c [ d ] + "RequestAnimationFrame" ] , window . cancelAnimationFrame = window [ c [ d ] + "CancelAnimationFrame" ] ; this . _isSetTimeOut = ! 1 , this . _onLoop = null , this . _timeOutID = null } , b . RequestAnimationFrame . prototype = { start : function ( ) { this . isRunning = ! 0 ; var a = this ; ! window . requestAnimationFrame || this . forceSetTimeOut ? ( this . _isSetTimeOut = ! 0 , this . _onLoop = function ( ) { return a . updateSetTimeout ( ) } , this . _timeOutID = window . setTimeout ( this . _onLoop , 0 ) ) : ( this . _isSetTimeOut = ! 1 , this . _onLoop = function ( b ) { return a . updateRAF ( b ) } , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) ) } , updateRAF : function ( ) { this . game . update ( Date . now ( ) ) , this . _timeOutID = window . requestAnimationFrame ( this . _onLoop ) } , updateSetTimeout : function ( ) { this . game . update ( Date . now ( ) ) , this . _timeOutID = window . setTimeout ( this . _onLoop , this . game . time . timeToCall ) } , stop : function ( ) { this . _isSetTimeOut ? clearTimeout ( this . _timeOutID ) : window . cancelAnimationFrame ( this . _timeOutID ) , this . isRunning = ! 1 } , isSetTimeOut : function ( ) { return this . _isSetTimeOut } , isRAF : function ( ) { return this . _isSetTimeOut === ! 1 } } , b . RequestAnimationFrame . prototype . constructor = b . RequestAnimationFrame , b . Math = { PI2 : 2 * Math . PI , fuzzyEqual : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , Math . abs ( a - b ) < c } , fuzzyLessThan : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , b + c > a } , fuzzyGreaterThan : function ( a , b , c ) { return "undefined" == typeof c && ( c = 1e-4 ) , a > b - c } , fuzzyCeil : function ( a , b ) { return "undefined" == typeof b && ( b = 1e-4 ) , Math . ceil ( a - b ) } , fuzzyFloor : function ( a , b ) { return "undefined" == typeof b && ( b = 1e-4 ) , Math . floor ( a + b ) } , average : function ( ) { for ( var a = [ ] , b = 0 ; b < arguments . length - 0 ; b ++ ) a [ b ] = arguments [ b + 0 ] ; for ( var c = 0 , d = 0 ; d < a . length ; d ++ ) c += a [ d ] ; return c / a . length } , truncate : function ( a ) { return a > 0 ? Math . floor ( a ) : Math . ceil ( a ) } , shear : function ( a ) { return a % 1 } , snapTo : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . round ( a / b ) , c + a ) } , snapToFloor : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . floor ( a / b ) , c + a ) } , snapToCeil : function ( a , b , c ) { return "undefined" == typeof c && ( c = 0 ) , 0 === b ? a : ( a -= c , a = b * Math . ceil ( a / b ) , c + a ) } , snapToInArray : function ( a , b , c ) { if ( "undefined" == typeof c && ( c = ! 0 ) , c && b . sort ( ) , a < b [ 0 ] ) return b [ 0 ] ; for ( var d = 1 ; b [ d ] < a ; ) d ++ ; var e = b [ d - 1 ] , f = d < b . length ? b [ d ] : Number . POSITIVE _INFINITY ; return a - e >= f - a ? f : e } , roundTo : function ( a , b , c ) { "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ; return Math . round ( a * d ) / d } , floorTo : function ( a , b , c ) { "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = 10 ) ; var d = Math . pow ( c , - b ) ; return Math . floor ( a * d ) / d } , ceilTo : function ( a , b , c ) { "undefined" == typeof b && ( b = 0 ) , "undefined" == typeof c && ( c = 1
} , previous : function ( a ) { this . currentAnim && ( this . currentAnim . previous ( a ) , this . currentFrame = this . currentAnim . currentFrame ) } , getAnimation : function ( a ) { return "string" == typeof a && this . _anims [ a ] ? this . _anims [ a ] : null } , refreshFrame : function ( ) { this . sprite . setTexture ( PIXI . TextureCache [ this . currentFrame . uuid ] ) , this . sprite . _ _tilePattern && ( this . _ _tilePattern = ! 1 , this . tilingTexture = ! 1 ) } , destroy : function ( ) { var a = null ; for ( var a in this . _anims ) this . _anims . hasOwnProperty ( a ) && this . _anims [ a ] . destroy ( ) ; this . _anims = { } , this . _frameData = null , this . _frameIndex = 0 , this . currentAnim = null , this . currentFrame = null } } , b . AnimationManager . prototype . constructor = b . AnimationManager , Object . defineProperty ( b . AnimationManager . prototype , "frameData" , { get : function ( ) { return this . _frameData } } ) , Object . defineProperty ( b . AnimationManager . prototype , "frameTotal" , { get : function ( ) { return this . _frameData ? this . _frameData . total : - 1 } } ) , Object . defineProperty ( b . AnimationManager . prototype , "paused" , { get : function ( ) { return this . currentAnim . isPaused } , set : function ( a ) { this . currentAnim . paused = a } } ) , Object . defineProperty ( b . AnimationManager . prototype , "frame" , { get : function ( ) { return this . currentFrame ? this . _frameIndex : void 0 } , set : function ( a ) { "number" == typeof a && this . _frameData && null !== this . _frameData . getFrame ( a ) && ( this . currentFrame = this . _frameData . getFrame ( a ) , this . currentFrame && ( this . _frameIndex = a , this . sprite . setFrame ( this . currentFrame ) , this . sprite . _ _tilePattern && ( this . _ _tilePattern = ! 1 , this . tilingTexture = ! 1 ) ) ) } } ) , Object . defineProperty ( b . AnimationManager . prototype , "frameName" , { get : function ( ) { return this . currentFrame ? this . currentFrame . name : void 0 } , set : function ( a ) { "string" == typeof a && this . _frameData && null !== this . _frameData . getFrameByName ( a ) ? ( this . currentFrame = this . _frameData . getFrameByName ( a ) , this . currentFrame && ( this . _frameIndex = this . currentFrame . index , this . sprite . setFrame ( this . currentFrame ) , this . sprite . _ _tilePattern && ( this . _ _tilePattern = ! 1 , this . tilingTexture = ! 1 ) ) ) : console . warn ( "Cannot set frameName: " + a ) } } ) , b . Animation = function ( a , c , d , e , f , g , h ) { this . game = a , this . _parent = c , this . _frameData = e , this . name = d , this . _frames = [ ] , this . _frames = this . _frames . concat ( f ) , this . delay = 1e3 / g , this . loop = h , this . loopCount = 0 , this . killOnComplete = ! 1 , this . isFinished = ! 1 , this . isPlaying = ! 1 , this . isPaused = ! 1 , this . _pauseStartTime = 0 , this . _frameIndex = 0 , this . _frameDiff = 0 , this . _frameSkip = 1 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . onStart = new b . Signal , this . onComplete = new b . Signal , this . onLoop = new b . Signal , this . game . onPause . add ( this . onPause , this ) , this . game . onResume . add ( this . onResume , this ) } , b . Animation . prototype = { play : function ( a , b , c ) { return "number" == typeof a && ( this . delay = 1e3 / a ) , "boolean" == typeof b && ( this . loop = b ) , "undefined" != typeof c && ( this . killOnComplete = c ) , this . isPlaying = ! 0 , this . isFinished = ! 1 , this . paused = ! 1 , this . loopCount = 0 , this . _timeLastFrame = this . game . time . now , this . _timeNextFrame = this . game . time . now + this . delay , this . _frameIndex = 0 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . _parent . setFrame ( this . currentFrame ) , this . _parent . _ _tilePattern && ( this . _parent . _ _tilePattern = ! 1 , this . _parent . tilingTexture = ! 1 ) , this . _parent . events . onAnimationStart . dispatch ( this . _parent , this ) , this . onStart . dispatch ( this . _parent , this ) , this } , restart : function ( ) { this . isPlaying = ! 0 , this . isFinished = ! 1 , this . paused = ! 1 , this . loopCount = 0 , this . _timeLastFrame = this . game . time . now , this . _timeNextFrame = this . game . time . now + this . delay , this . _frameIndex = 0 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . _parent . setFrame ( this . currentFrame ) , this . onStart . dispatch ( this . _parent , this ) } , setFrame : function ( a , b ) { var c ; if ( "undefined" == typeof b && ( b = ! 1 ) , "string" == typeof a ) for ( var d = 0 ; d < this . _frames . length ; d ++ ) this . _frameData . getFrame ( this . _frames [ d ] ) . name === a && ( c = d ) ; else if ( "number" == typeof a ) if ( b ) c = a ; else for ( var d = 0 ; d < this . _frames . length ; d ++ ) this . frames [ d ] === c && ( c = d ) ; c && ( this . _frameIndex = c - 1 , this . _timeNextFrame = this . game . time . now , this . update ( ) ) } , stop : function ( a , b ) { "undefined" == typeof a && ( a = ! 1 ) , "undefined" == typeof b && ( b = ! 1 ) , this . isPlaying = ! 1 , this . isFinished = ! 0 , this . paused = ! 1 , a && ( this . currentFrame = this . _frameData . ge
} , nextPack : function ( a , b ) { this . onPackComplete . dispatch ( this . _packList [ a ] . key , b , this . totalLoadedPacks ( ) , this . _packList . length ) , this . _packIndex ++ , this . _packIndex < this . _packList . length ? this . loadPack ( ) : this . beginLoad ( ) } , loadFile : function ( ) { if ( ! this . _fileList [ this . _fileIndex ] ) return void console . warn ( "Phaser.Loader loadFile invalid index " + this . _fileIndex ) ; var a = this . _fileList [ this . _fileIndex ] , c = this ; switch ( this . onFileStart . dispatch ( this . progress , a . key ) , a . type ) { case "image" : case "spritesheet" : case "textureatlas" : case "bitmapfont" : a . data = new Image , a . data . name = a . key , a . data . onload = function ( ) { return c . fileComplete ( c . _fileIndex ) } , a . data . onerror = function ( ) { return c . fileError ( c . _fileIndex ) } , this . crossOrigin && ( a . data . crossOrigin = this . crossOrigin ) , a . data . src = this . baseURL + a . url ; break ; case "audio" : a . url = this . getAudioURL ( a . url ) , null !== a . url ? this . game . sound . usingWebAudio ? this . xhrLoad ( this . _fileIndex , this . baseURL + a . url , "arraybuffer" , "fileComplete" , "fileError" ) : this . game . sound . usingAudioTag && ( this . game . sound . touchLocked ? ( a . data = new Audio , a . data . name = a . key , a . data . preload = "auto" , a . data . src = this . baseURL + a . url , this . fileComplete ( this . _fileIndex ) ) : ( a . data = new Audio , a . data . name = a . key , a . data . onerror = function ( ) { return c . fileError ( c . _fileIndex ) } , a . data . preload = "auto" , a . data . src = this . baseURL + a . url , a . data . addEventListener ( "canplaythrough" , b . GAMES [ this . game . id ] . load . fileComplete ( this . _fileIndex ) , ! 1 ) , a . data . load ( ) ) ) : this . fileError ( this . _fileIndex ) ; break ; case "json" : window . XDomainRequest ? ( this . _ajax = new window . XDomainRequest , this . _ajax . timeout = 3e3 , this . _ajax . onerror = function ( ) { return c . dataLoadError ( c . _fileIndex ) } , this . _ajax . ontimeout = function ( ) { return c . dataLoadError ( c . _fileIndex ) } , this . _ajax . onprogress = function ( ) { } , this . _ajax . onload = function ( ) { return c . jsonLoadComplete ( c . _fileIndex ) } , this . _ajax . open ( "GET" , this . baseURL + a . url , ! 0 ) , this . _ajax . send ( ) ) : this . xhrLoad ( this . _fileIndex , this . baseURL + a . url , "text" , "jsonLoadComplete" , "dataLoadError" ) ; break ; case "tilemap" : if ( a . format === b . Tilemap . TILED _JSON ) this . xhrLoad ( this . _fileIndex , this . baseURL + a . url , "text" , "jsonLoadComplete" , "dataLoadError" ) ; else { if ( a . format !== b . Tilemap . CSV ) throw new Error ( "Phaser.Loader. Invalid Tilemap format: " + a . format ) ; this . xhrLoad ( this . _fileIndex , this . baseURL + a . url , "text" , "csvLoadComplete" , "dataLoadError" ) } break ; case "text" : case "script" : case "physics" : this . xhrLoad ( this . _fileIndex , this . baseURL + a . url , "text" , "fileComplete" , "fileError" ) ; break ; case "binary" : this . xhrLoad ( this . _fileIndex , this . baseURL + a . url , "arraybuffer" , "fileComplete" , "fileError" ) } } , xhrLoad : function ( a , b , c , d , e ) { this . _xhr . open ( "GET" , b , ! 0 ) , this . _xhr . responseType = c ; var f = this ; this . _xhr . onload = function ( ) { return f [ d ] ( a ) } , this . _xhr . onerror = function ( ) { return f [ e ] ( a ) } , this . _xhr . send ( ) } , getAudioURL : function ( a ) { var b ; "string" == typeof a && ( a = [ a ] ) ; for ( var c = 0 ; c < a . length ; c ++ ) if ( b = a [ c ] . toLowerCase ( ) , b = b . substr ( ( Math . max ( 0 , b . lastIndexOf ( "." ) ) || 1 / 0 ) + 1 ) , this . game . device . canPlayAudio ( b ) ) return a [ c ] ; return null } , fileError : function ( a ) { this . _fileList [ a ] . loaded = ! 0 , this . _fileList [ a ] . error = ! 0 , this . onFileError . dispatch ( this . _fileList [ a ] . key , this . _fileList [ a ] ) , console . warn ( "Phaser.Loader error loading file: " + this . _fileList [ a ] . key + " from URL " + this . _fileList [ a ] . url ) , this . nextFile ( a , ! 1 ) } , fileComplete : function ( a ) { if ( ! this . _fileList [ a ] ) return void console . warn ( "Phaser.Loader fileComplete invalid index " + a ) ; var c = this . _fileList [ a ] ; c . loaded = ! 0 ; var d = ! 0 ; switch ( c . type ) { case "image" : this . game . cache . addImage ( c . key , c . url , c . data ) ; break ; case "spritesheet" : this . game . cache . addSpriteSheet ( c . key , c . url , c . data , c . frameWidth , c . frameHeight , c . frameMax , c . margin , c . spacing ) ; break ; case "textureatlas" : if ( null == c . atlasURL ) this . game . cache . addTextureAtlas ( c . key , c . url , c . data , c . atlasData , c . format ) ; else if ( d = ! 1 , c . format == b . Loader . TEXTURE _ATLAS _JSON _ARRAY || c . format == b . Loader . TEXTURE _ATLAS _JSON _HASH ) this . xhrLoad ( this . _fileIndex , this . baseURL + c . atlasURL , "text" , "jsonLoadComplete" , "dataLoadError" ) ; else { if ( c . format != b . Loader . TEXTURE _ATLAS _XML _STARLING ) throw new Error ( "Phaser.Loader. Invalid Texture Atlas format: " + c . format ) ; this . xhrLoad ( this . _fileIndex , this . baseURL + c . atlasURL , "text" , "xmlLoadComplete" , " dataLoadEr
e . s = e . l > . 5 ? h / ( 2 - g - f ) : h / ( g + f ) , g === a ? e . h = ( c - d ) / h + ( d > c ? 6 : 0 ) : g === c ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - c ) / h + 4 ) , e . h /= 6 } return e } , HSLtoRGB : function ( a , c , d , e ) { if ( e ? ( e . r = d , e . g = d , e . b = d ) : e = b . Color . createColor ( d , d , d ) , 0 !== c ) { var f = . 5 > d ? d * ( 1 + c ) : d + c - d * c , g = 2 * d - f ; e . r = b . Color . hueToColor ( g , f , a + 1 / 3 ) , e . g = b . Color . hueToColor ( g , f , a ) , e . b = b . Color . hueToColor ( g , f , a - 1 / 3 ) } return e . r = Math . floor ( 255 * e . r | 0 ) , e . g = Math . floor ( 255 * e . g | 0 ) , e . b = Math . floor ( 255 * e . b | 0 ) , b . Color . updateColor ( e ) , e } , RGBtoHSV : function ( a , c , d , e ) { e || ( e = b . Color . createColor ( a , c , d , 255 ) ) , a /= 255 , c /= 255 , d /= 255 ; var f = Math . min ( a , c , d ) , g = Math . max ( a , c , d ) , h = g - f ; return e . h = 0 , e . s = 0 === g ? 0 : h / g , e . v = g , g !== f && ( g === a ? e . h = ( c - d ) / h + ( d > c ? 6 : 0 ) : g === c ? e . h = ( d - a ) / h + 2 : g === d && ( e . h = ( a - c ) / h + 4 ) , e . h /= 6 ) , e } , HSVtoRGB : function ( a , c , d , e ) { "undefined" == typeof e && ( e = b . Color . createColor ( 0 , 0 , 0 , 1 , a , c , 0 , d ) ) ; var f , g , h , i = Math . floor ( 6 * a ) , j = 6 * a - i , k = d * ( 1 - c ) , l = d * ( 1 - j * c ) , m = d * ( 1 - ( 1 - j ) * c ) ; switch ( i % 6 ) { case 0 : f = d , g = m , h = k ; break ; case 1 : f = l , g = d , h = k ; break ; case 2 : f = k , g = d , h = m ; break ; case 3 : f = k , g = l , h = d ; break ; case 4 : f = m , g = k , h = d ; break ; case 5 : f = d , g = k , h = l } return e . r = Math . floor ( 255 * f ) , e . g = Math . floor ( 255 * g ) , e . b = Math . floor ( 255 * h ) , b . Color . updateColor ( e ) , e } , hueToColor : function ( a , b , c ) { return 0 > c && ( c += 1 ) , c > 1 && ( c -= 1 ) , 1 / 6 > c ? a + 6 * ( b - a ) * c : . 5 > c ? b : 2 / 3 > c ? a + ( b - a ) * ( 2 / 3 - c ) * 6 : a } , createColor : function ( a , b , c , d , e , f , g , h ) { var i = { r : a || 0 , g : b || 0 , b : c || 0 , a : d || 1 , h : e || 0 , s : f || 0 , l : g || 0 , v : h || 0 , color : 0 } ; return i . rgba = "rgba(" + i . r + "," + i . g + "," + i . b + "," + i . a + ")" , i } , updateColor : function ( a ) { return a . rgba = "rgba(" + a . r + "," + a . g + "," + a . b + "," + a . a + ")" , a } , getColor32 : function ( a , b , c , d ) { return a << 24 | b << 16 | c << 8 | d } , getColor : function ( a , b , c ) { return a << 16 | b << 8 | c } , RGBtoString : function ( a , c , d , e , f ) { return "undefined" == typeof e && ( e = 255 ) , "undefined" == typeof f && ( f = "#" ) , "#" === f ? "#" + ( ( 1 << 24 ) + ( a << 16 ) + ( c << 8 ) + d ) . toString ( 16 ) . slice ( 1 ) : "0x" + b . Color . componentToHex ( e ) + b . Color . componentToHex ( a ) + b . Color . componentToHex ( c ) + b . Color . componentToHex ( d ) } , hexToRGB : function ( a ) { var c = b . Color . hexToColor ( a ) ; return c ? b . Color . getColor32 ( c . a , c . r , c . g , c . b ) : void 0 } , hexToColor : function ( a , c ) { c || ( c = b . Color . createColor ( ) ) ; var d = /^#?([a-f\d])([a-f\d])([a-f\d])$/i ; a = a . replace ( d , function ( a , b , c , d ) { return b + b + c + c + d + d } ) ; var e = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i . exec ( a ) ; return e && ( c . r = parseInt ( e [ 1 ] , 16 ) , c . g = parseInt ( e [ 2 ] , 16 ) , c . b = parseInt ( e [ 3 ] , 16 ) ) , c } , componentToHex : function ( a ) { var b = a . toString ( 16 ) ; return 1 == b . length ? "0" + b : b } , HSVColorWheel : function ( a , c ) { "undefined" == typeof a && ( a = 1 ) , "undefined" == typeof c && ( c = 1 ) ; for ( var d = [ ] , e = 0 ; 359 >= e ; e ++ ) d . push ( b . Color . HSVtoRGB ( e / 359 , a , c ) ) ; return d } , HSLColorWheel : function ( a , c ) { "undefined" == typeof a && ( a = . 5 ) , "undefined" == typeof c && ( c = . 5 ) ; for ( var d = [ ] , e = 0 ; 359 >= e ; e ++ ) d . push ( b . Color . HSLtoRGB ( e / 359 , a , c ) ) ; return d } , interpolateColor : function ( a , c , d , e , f ) { "undefined" == typeof f && ( f = 255 ) ; var g = b . Color . getRGB ( a ) , h = b . Color . getRGB ( c ) , i = ( h . red - g . red ) * e / d + g . red , j = ( h . green - g . green ) * e / d + g . green , k = ( h . blue - g . blue ) * e / d + g . blue ; return b . Color . getColor32 ( f , i , j , k ) } , interpolateColorWithRGB : function ( a , c , d , e , f , g ) { var h = b . Color . getRGB ( a ) , i = ( c - h . red ) * g / f + h . red , j = ( d - h . green ) * g / f + h . green , k = ( e - h . blue ) * g / f + h . blue ; return b . Color . getColor ( i , j , k ) } , interpolateRGB : function ( a , c , d , e , f , g , h , i ) { var j = ( e - a ) * i / h + a , k = ( f - c ) * i / h + c , l = ( g - d ) * i / h + d ; return b . Color . getColor ( j , k , l ) } , getRandomColor : function ( a , c , d ) { if ( "undefined" == typeof a && ( a = 0 ) , "undefined" == typeof c && ( c = 255 ) , "undefined" == typeof d && ( d = 255 ) , c > 255 || a > c ) return b . Color . getColor ( 255 , 255 , 255 ) ; var e = a + Math . round ( Math . random ( ) * ( c - a ) ) , f = a + Math . round ( Math . random ( ) * ( c - a ) ) , g = a + Math . round ( Math . random ( ) * ( c - a ) ) ; return b . Color . getColor32 ( d , e , f , g ) } , getRGB : function ( a ) { return a > 16777215 ? { alpha : a >>> 24 , red : a >> 16 & 255 , green : a >> 8 & 255 , blue : 255 & a , a : a >>> 24 , r : a >> 16 & 255 , g : a >> 8 & 255 , b : 255 & a } : { alpha : 255 , red : a >> 16 & 255 , green : a >> 8 & 255 , blue : 255 & a , a : 255 , r : a >> 16 & 255 , g : a >> 8 & 255 , b : 255 & a } } , getWebRGB : function ( a ) { if ( "object" == typeof a ) return "rgba(" + a . r . toString ( ) + "," + a . g . toString ( ) + "," + a . b . toString ( ) + "," + ( a . a / 255 ) . toString ( ) + ")" ; var c = b . Color . getRGB ( a ) ; return "rgba(" + c . r . toString ( ) + "," + c . g . toString ( ) + "," + c . b . toString ( ) + "," + ( c . a / 255 ) . toString ( ) + ")" } , getAlpha : function ( a ) { return a >>> 24 } , getAlphaFloat : function ( a ) { return ( a >>> 24 ) / 255 } , getRed : function ( a ) { return a >> 16 & 255 } ,
return this } , b . Particles . Arcade . Emitter . prototype . kill = function ( ) { this . on = ! 1 , this . alive = ! 1 , this . exists = ! 1 } , b . Particles . Arcade . Emitter . prototype . revive = function ( ) { this . alive = ! 0 , this . exists = ! 0 } , b . Particles . Arcade . Emitter . prototype . explode = function ( a , b ) { this . start ( ! 0 , a , 0 , b , ! 1 ) } , b . Particles . Arcade . Emitter . prototype . flow = function ( a , b , c ) { this . start ( ! 1 , a , b , c , ! 0 ) } , b . Particles . Arcade . Emitter . prototype . start = function ( a , b , c , d , e ) { "undefined" == typeof a && ( a = ! 0 ) , "undefined" == typeof b && ( b = 0 ) , ( "undefined" == typeof c || null === c ) && ( c = 250 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = ! 1 ) , this . revive ( ) , this . visible = ! 0 , this . on = ! 0 , this . _explode = a , this . lifespan = b , this . frequency = c , a || e ? this . _quantity = d : this . _quantity += d , this . _counter = 0 , this . _timer = this . game . time . now + c } , b . Particles . Arcade . Emitter . prototype . emitParticle = function ( ) { var a = this . getFirstExists ( ! 1 ) ; null !== a && ( this . width > 1 || this . height > 1 ? a . reset ( this . game . rnd . integerInRange ( this . left , this . right ) , this . game . rnd . integerInRange ( this . top , this . bottom ) ) : a . reset ( this . emitX , this . emitY ) , a . angle = 0 , a . lifespan = this . lifespan , this . particleBringToTop ? this . bringToTop ( a ) : this . particleSendToBack && this . sendToBack ( a ) , this . autoScale ? a . setScaleData ( this . scaleData ) : 1 !== this . minParticleScale || 1 !== this . maxParticleScale ? a . scale . set ( this . game . rnd . realInRange ( this . minParticleScale , this . maxParticleScale ) ) : ( this . _minParticleScale . x !== this . _maxParticleScale . x || this . _minParticleScale . y !== this . _maxParticleScale . y ) && a . scale . set ( this . game . rnd . realInRange ( this . _minParticleScale . x , this . _maxParticleScale . x ) , this . game . rnd . realInRange ( this . _minParticleScale . y , this . _maxParticleScale . y ) ) , a . frame = Array . isArray ( "object" === this . _frames ) ? this . game . rnd . pick ( this . _frames ) : this . _frames , this . autoAlpha ? a . setAlphaData ( this . alphaData ) : a . alpha = this . game . rnd . realInRange ( this . minParticleAlpha , this . maxParticleAlpha ) , a . blendMode = this . blendMode , a . body . updateBounds ( ) , a . body . bounce . setTo ( this . bounce . x , this . bounce . y ) , a . body . velocity . x = this . game . rnd . integerInRange ( this . minParticleSpeed . x , this . maxParticleSpeed . x ) , a . body . velocity . y = this . game . rnd . integerInRange ( this . minParticleSpeed . y , this . maxParticleSpeed . y ) , a . body . angularVelocity = this . game . rnd . integerInRange ( this . minRotation , this . maxRotation ) , a . body . gravity . y = this . gravity , a . body . drag . x = this . particleDrag . x , a . body . drag . y = this . particleDrag . y , a . body . angularDrag = this . angularDrag , a . onEmit ( ) ) } , b . Particles . Arcade . Emitter . prototype . setSize = function ( a , b ) { this . area . width = a , this . area . height = b } , b . Particles . Arcade . Emitter . prototype . setXSpeed = function ( a , b ) { a = a || 0 , b = b || 0 , this . minParticleSpeed . x = a , this . maxParticleSpeed . x = b } , b . Particles . Arcade . Emitter . prototype . setYSpeed = function ( a , b ) { a = a || 0 , b = b || 0 , this . minParticleSpeed . y = a , this . maxParticleSpeed . y = b } , b . Particles . Arcade . Emitter . prototype . setRotation = function ( a , b ) { a = a || 0 , b = b || 0 , this . minRotation = a , this . maxRotation = b } , b . Particles . Arcade . Emitter . prototype . setAlpha = function ( a , c , d , e , f ) { if ( "undefined" == typeof a && ( a = 1 ) , "undefined" == typeof c && ( c = 1 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = b . Easing . Linear . None ) , "undefined" == typeof f && ( f = ! 1 ) , this . minParticleAlpha = a , this . maxParticleAlpha = c , this . autoAlpha = ! 1 , d > 0 && a !== c ) { var g = { v : a } , h = this . game . make . tween ( g ) . to ( { v : c } , d , e ) ; h . yoyo ( f ) , this . alphaData = h . generateData ( 60 ) , this . alphaData . reverse ( ) , this . autoAlpha = ! 0 } } , b . Particles . Arcade . Emitter . prototype . setScale = function ( a , c , d , e , f , g , h ) { if ( "undefined" == typeof a && ( a = 1 ) , "undefined" == typeof c && ( c = 1 ) , "undefined" == typeof d && ( d = 1 ) , "undefined" == typeof e && ( e = 1 ) , "undefined" == typeof f && ( f = 0 ) , "undefined" == typeof g && ( g = b . Easing . Linear . None ) , "undefined" == typeof h && ( h = ! 1 ) , this . minParticleScale = 1 , this . maxParticleScale = 1 , this . _minParticleScale . set ( a , d ) , this . _maxParticleScale . set ( c , e ) , this . autoScale = ! 1 , f > 0 && a !== c || d !== e ) { var i = { x : a , y : d } , j = this . game . make . tween ( i ) . to ( { x : c , y : e } , f , g ) ; j . yoyo ( h ) , this . scaleData = j . generateData ( 60 ) , this . scaleData . reverse ( ) , this . autoScale = ! 0 } } , b . Particles . Arcade . Emitter . prototype . at = function ( a ) { a . center ? ( this . emitX = a . center . x , this . emitY = a . center . y ) : ( this . emitX = a . world . x + a . anchor . x * a . width , this . emitY = a . world . y + a . anchor . y * a . height ) } , Object . defineProperty ( b . Particl
} d . tilesets = o ; for ( var r = { } , s = { } , f = 0 ; f < a . layers . length ; f ++ ) if ( "objectgroup" === a . layers [ f ] . type ) { r [ a . layers [ f ] . name ] = [ ] , s [ a . layers [ f ] . name ] = [ ] ; for ( var t = 0 , l = a . layers [ f ] . objects . length ; l > t ; t ++ ) if ( a . layers [ f ] . objects [ t ] . gid ) { var u = { gid : a . layers [ f ] . objects [ t ] . gid , name : a . layers [ f ] . objects [ t ] . name , x : a . layers [ f ] . objects [ t ] . x , y : a . layers [ f ] . objects [ t ] . y , visible : a . layers [ f ] . objects [ t ] . visible , properties : a . layers [ f ] . objects [ t ] . properties } ; r [ a . layers [ f ] . name ] . push ( u ) } else if ( a . layers [ f ] . objects [ t ] . polyline ) { var u = { name : a . layers [ f ] . objects [ t ] . name , x : a . layers [ f ] . objects [ t ] . x , y : a . layers [ f ] . objects [ t ] . y , width : a . layers [ f ] . objects [ t ] . width , height : a . layers [ f ] . objects [ t ] . height , visible : a . layers [ f ] . objects [ t ] . visible , properties : a . layers [ f ] . objects [ t ] . properties } ; u . polyline = [ ] ; for ( var v = 0 ; v < a . layers [ f ] . objects [ t ] . polyline . length ; v ++ ) u . polyline . push ( [ a . layers [ f ] . objects [ t ] . polyline [ v ] . x , a . layers [ f ] . objects [ t ] . polyline [ v ] . y ] ) ; s [ a . layers [ f ] . name ] . push ( u ) } else if ( a . layers [ f ] . objects [ t ] . polygon ) { var u = c ( a . layers [ f ] . objects [ t ] , [ "name" , "x" , "y" , "visible" , "properties" ] ) ; u . polygon = [ ] ; for ( var v = 0 ; v < a . layers [ f ] . objects [ t ] . polygon . length ; v ++ ) u . polygon . push ( [ a . layers [ f ] . objects [ t ] . polygon [ v ] . x , a . layers [ f ] . objects [ t ] . polygon [ v ] . y ] ) ; r [ a . layers [ f ] . name ] . push ( u ) } else if ( a . layers [ f ] . objects [ t ] . ellipse ) { var u = c ( a . layers [ f ] . objects [ t ] , [ "name" , "ellipse" , "x" , "y" , "width" , "height" , "visible" , "properties" ] ) ; r [ a . layers [ f ] . name ] . push ( u ) } else { var u = c ( a . layers [ f ] . objects [ t ] , [ "name" , "x" , "y" , "width" , "height" , "visible" , "properties" ] ) ; u . rectangle = ! 0 , r [ a . layers [ f ] . name ] . push ( u ) } } d . objects = r , d . collision = s , d . tiles = [ ] ; for ( var f = 0 ; f < d . tilesets . length ; f ++ ) for ( var p = d . tilesets [ f ] , h = p . tileMargin , w = p . tileMargin , x = 0 , y = 0 , z = 0 , k = p . firstgid ; k < p . firstgid + p . total && ( d . tiles [ k ] = [ h , w , f ] , h += p . tileWidth + p . tileSpacing , x ++ , x !== p . total ) && ( y ++ , y !== p . columns || ( h = p . tileMargin , w += p . tileHeight + p . tileSpacing , y = 0 , z ++ , z !== p . rows ) ) ; k ++ ) ; return d } } , b . Tileset = function ( a , b , c , d , e , f , g ) { ( "undefined" == typeof c || 0 >= c ) && ( c = 32 ) , ( "undefined" == typeof d || 0 >= d ) && ( d = 32 ) , "undefined" == typeof e && ( e = 0 ) , "undefined" == typeof f && ( f = 0 ) , this . name = a , this . firstgid = b , this . tileWidth = c , this . tileHeight = d , this . tileMargin = e , this . tileSpacing = f , this . properties = g , this . image = null , this . rows = 0 , this . columns = 0 , this . total = 0 , this . drawCoords = [ ] } , b . Tileset . prototype = { draw : function ( a , b , c , d ) { this . image && this . drawCoords [ d ] && a . drawImage ( this . image , this . drawCoords [ d ] [ 0 ] , this . drawCoords [ d ] [ 1 ] , this . tileWidth , this . tileHeight , b , c , this . tileWidth , this . tileHeight ) } , setImage : function ( a ) { this . image = a , this . rows = Math . round ( ( a . height - this . tileMargin ) / ( this . tileHeight + this . tileSpacing ) ) , this . columns = Math . round ( ( a . width - this . tileMargin ) / ( this . tileWidth + this . tileSpacing ) ) , this . total = this . rows * this . columns , this . drawCoords . length = 0 ; for ( var b = this . tileMargin , c = this . tileMargin , d = this . firstgid , e = 0 ; e < this . rows ; e ++ ) { for ( var f = 0 ; f < this . columns ; f ++ ) this . drawCoords [ d ] = [ b , c ] , b += this . tileWidth + this . tileSpacing , d ++ ; b = this . tileMargin , c += this . tileHeight + this . tileSpacing } } , setSpacing : function ( a , b ) { this . tileMargin = a , this . tileSpacing = b , this . setImage ( this . image ) } } , b . Tileset . prototype . constructor = b . Tileset , "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = b ) , exports . Phaser = b ) : "undefined" != typeof define && define . amd ? define ( "Phaser" , function ( ) { return a . Phaser = b } ( ) ) : a . Phaser = b } . call ( this ) , Phaser . Physics . Ninja = function ( a ) { this . game = a , this . time = this . game . time , this . gravity = . 2 , this . bounds = new Phaser . Rectangle ( 0 , 0 , a . world . width , a . world . height ) , this . maxObjects = 10 , this . maxLevels = 4 , this . quadTree = new Phaser . QuadTree ( this . game . world . bounds . x , this . game . world . bounds . y , this . game . world . bounds . width , this . game . world . bounds . height , this . maxObjects , this . maxLevels ) } , Phaser . Physics . Ninja . prototype . constructor = Phaser . Physics . Ninja , Phaser . Physics . Ninja . prototype = { enableAABB : function ( a , b ) { this . enable ( a , 1 , 0 , 0 , b ) } , enableCircle : function ( a , b , c ) { this . enable ( a , 2 , 0 , b , c ) } , enableTile : function ( a , b , c ) { this . enable ( a , 3 , b , 0 , c ) } , enable : function ( a , b , c , d , e ) { if ( "undefined" == typeof b && ( b = 1 ) , "undefined" == typeof c && ( c = 1 ) , "undefined" == typeof d && ( d = 0 ) , "undefined" == typeof e && ( e = ! 0 ) , Array . isArray ( a
this . pos . x += this . body . drag * this . pos . x - this . body . drag * this . oldpos . x , this . pos . y += this . body . drag * this . pos . y - this . body . drag * this . oldpos . y + this . system . gravity * this . body . gravityScale , this . velocity . set ( this . pos . x - a , this . pos . y - b ) , this . oldpos . set ( a , b ) } , reportCollisionVsWorld : function ( a , b , c , d ) { var e , f , g , h , i , j = this . pos , k = this . oldpos , l = j . x - k . x , m = j . y - k . y , n = l * c + m * d , o = n * c , p = n * d , q = l - o , r = m - p ; 0 > n ? ( h = q * this . body . friction , i = r * this . body . friction , e = 1 + this . body . bounce , f = o * e , g = p * e , 1 === c ? this . body . touching . left = ! 0 : - 1 === c && ( this . body . touching . right = ! 0 ) , 1 === d ? this . body . touching . up = ! 0 : - 1 === d && ( this . body . touching . down = ! 0 ) ) : f = g = h = i = 0 , j . x += a , j . y += b , k . x += a + f + h , k . y += b + g + i } , collideWorldBounds : function ( ) { var a = this . system . bounds . x - ( this . pos . x - this . radius ) ; a > 0 ? this . reportCollisionVsWorld ( a , 0 , 1 , 0 , null ) : ( a = this . pos . x + this . radius - this . system . bounds . right , a > 0 && this . reportCollisionVsWorld ( - a , 0 , - 1 , 0 , null ) ) ; var b = this . system . bounds . y - ( this . pos . y - this . radius ) ; b > 0 ? this . reportCollisionVsWorld ( 0 , b , 0 , 1 , null ) : ( b = this . pos . y + this . radius - this . system . bounds . bottom , b > 0 && this . reportCollisionVsWorld ( 0 , - b , 0 , - 1 , null ) ) } , collideCircleVsTile : function ( a ) { var b = this . pos , c = this . radius , d = a , e = d . pos . x , f = d . pos . y , g = d . xw , h = d . yw , i = b . x - e , j = g + c - Math . abs ( i ) ; if ( j > 0 ) { var k = b . y - f , l = h + c - Math . abs ( k ) ; if ( l > 0 ) return this . oH = 0 , this . oV = 0 , - g > i ? this . oH = - 1 : i > g && ( this . oH = 1 ) , - h > k ? this . oV = - 1 : k > h && ( this . oV = 1 ) , this . resolveCircleTile ( j , l , this . oH , this . oV , this , d ) } } , resolveCircleTile : function ( a , b , c , d , e , f ) { return 0 < f . id ? this . circleTileProjections [ f . type ] ( a , b , c , d , e , f ) : ! 1 } , projCircle _Full : function ( a , b , c , d , e , f ) { if ( 0 === c ) { if ( 0 === d ) { if ( b > a ) { var g = e . pos . x - f . pos . x ; return 0 > g ? ( e . reportCollisionVsWorld ( - a , 0 , - 1 , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( e . reportCollisionVsWorld ( a , 0 , 1 , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) } var h = e . pos . y - f . pos . y ; return 0 > h ? ( e . reportCollisionVsWorld ( 0 , - b , 0 , - 1 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( e . reportCollisionVsWorld ( 0 , b , 0 , 1 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) } return e . reportCollisionVsWorld ( 0 , b * d , 0 , d , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS } if ( 0 === d ) return e . reportCollisionVsWorld ( a * c , 0 , c , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var i = f . pos . x + c * f . xw , j = f . pos . y + d * f . yw , g = e . pos . x - i , h = e . pos . y - j , k = Math . sqrt ( g * g + h * h ) , l = e . radius - k ; return l > 0 ? ( 0 === k ? ( g = c / Math . SQRT2 , h = d / Math . SQRT2 ) : ( g /= k , h /= k ) , e . reportCollisionVsWorld ( g * l , h * l , g , h , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER ) : Phaser . Physics . Ninja . Circle . COL _NONE } , projCircle _45Deg : function ( a , b , c , d , e , f ) { var g , h = f . signx , i = f . signy ; if ( 0 === c ) if ( 0 === d ) { var j = f . sx , k = f . sy , l = e . pos . x - j * e . radius - f . pos . x , m = e . pos . y - k * e . radius - f . pos . y , n = l * j + m * k ; if ( 0 > n ) { j *= - n , k *= - n , b > a ? ( g = a , b = 0 , e . pos . x - f . pos . x < 0 && ( a *= - 1 ) ) : ( g = b , a = 0 , e . pos . y - f . pos . y < 0 && ( b *= - 1 ) ) ; var o = Math . sqrt ( j * j + k * k ) ; return o > g ? ( e . reportCollisionVsWorld ( a , b , a / g , b / g , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ) : ( e . reportCollisionVsWorld ( j , k , f . sx , f . sy , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER ) } } else { if ( 0 > i * d ) return e . reportCollisionVsWorld ( 0 , b * d , 0 , d , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var j = f . sx , k = f . sy , l = e . pos . x - ( f . pos . x - h * f . xw ) , m = e . pos . y - ( f . pos . y + d * f . yw ) , p = l * - k + m * j ; if ( p * h * i > 0 ) { var q = Math . sqrt ( l * l + m * m ) , r = e . radius - q ; if ( r > 0 ) return l /= q , m /= q , e . reportCollisionVsWorld ( l * r , m * r , l , m , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else { var n = l * j + m * k , r = e . radius - Math . abs ( n ) ; if ( r > 0 ) return e . reportCollisionVsWorld ( j * r , k * r , j , k , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } } else if ( 0 === d ) { if ( 0 > h * c ) return e . reportCollisionVsWorld ( a * c , 0 , c , 0 , f ) , Phaser . Physics . Ninja . Circle . COL _AXIS ; var j = f . sx , k = f . sy , l = e . pos . x - ( f . pos . x + c * f . xw ) , m = e . pos . y - ( f . pos . y - i * f . yw ) , p = l * - k + m * j ; if ( 0 > p * h * i ) { var q = Math . sqrt ( l * l + m * m ) , r = e . radius - q ; if ( r > 0 ) return l /= q , m /= q , e . reportCollisionVsWorld ( l * r , m * r , l , m , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } else { var n = l * j + m * k , r = e . radius - Math . abs ( n ) ; if ( r > 0 ) return e . reportCollisionVsWorld ( j * r , k * r , j , k , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } } else { if ( h * c + i * d > 0 ) return Phaser . Physics . Ninja . Circle . COL _NONE ; var s = f . pos . x + c * f . xw , t = f . pos . y + d * f . yw , u = e . pos . x - s , v = e . pos . y - t , q = Math . sqrt ( u * u + v * v ) , r = e . radius - q ; if ( r > 0 ) return 0 === q ? ( u = c / Math . SQRT2 , v = d / Math . SQRT2 ) : ( u /= q , v /= q ) , e . reportCollisionVsWorld ( u * r , v * r , u , v , f ) , Phaser . Physics . Ninja . Circle . COL _OTHER } re
} function d ( a , b ) { f . set ( a . vertices [ 0 ] , . 5 * - b . length , - b . radius ) , f . set ( a . vertices [ 1 ] , . 5 * b . length , - b . radius ) , f . set ( a . vertices [ 2 ] , . 5 * b . length , b . radius ) , f . set ( a . vertices [ 3 ] , . 5 * - b . length , b . radius ) } function e ( a , b , c , d ) { for ( var e = R , i = S , j = T , k = U , l = a , m = b . vertices , n = null , o = 0 ; o !== m . length + 1 ; o ++ ) { var p = m [ o % m . length ] , q = m [ ( o + 1 ) % m . length ] ; f . rotate ( e , p , d ) , f . rotate ( i , q , d ) , h ( e , e , c ) , h ( i , i , c ) , g ( j , e , l ) , g ( k , i , l ) ; var r = f . crossLength ( j , k ) ; if ( null === n && ( n = r ) , 0 >= r * n ) return ! 1 ; n = r } return ! 0 } var f = a ( "../math/vec2" ) , g = f . sub , h = f . add , i = f . dot , j = a ( "../utils/Utils" ) , k = a ( "../utils/TupleDictionary" ) , l = a ( "../equations/Equation" ) , m = a ( "../equations/ContactEquation" ) , n = a ( "../equations/FrictionEquation" ) , o = a ( "../shapes/Circle" ) , p = a ( "../shapes/Convex" ) , q = a ( "../shapes/Shape" ) , r = ( a ( "../objects/Body" ) , a ( "../shapes/Rectangle" ) ) ; b . exports = c ; var s = f . fromValues ( 0 , 1 ) , t = f . fromValues ( 0 , 0 ) , u = f . fromValues ( 0 , 0 ) , v = f . fromValues ( 0 , 0 ) , w = f . fromValues ( 0 , 0 ) , x = f . fromValues ( 0 , 0 ) , y = f . fromValues ( 0 , 0 ) , z = f . fromValues ( 0 , 0 ) , A = f . fromValues ( 0 , 0 ) , B = f . fromValues ( 0 , 0 ) , C = f . fromValues ( 0 , 0 ) , D = f . fromValues ( 0 , 0 ) , E = f . fromValues ( 0 , 0 ) , F = f . fromValues ( 0 , 0 ) , G = f . fromValues ( 0 , 0 ) , H = f . fromValues ( 0 , 0 ) , I = f . fromValues ( 0 , 0 ) , J = f . fromValues ( 0 , 0 ) , K = f . fromValues ( 0 , 0 ) , L = [ ] ; c . prototype . collidedLastStep = function ( a , b ) { var c = 0 | a . id , d = 0 | b . id ; return ! ! this . collidingBodiesLastStep . get ( c , d ) } , c . prototype . reset = function ( ) { this . collidingBodiesLastStep . reset ( ) ; for ( var a = 0 ; a !== this . contactEquations . length ; a ++ ) { var b = this . contactEquations [ a ] , c = 0 | b . bodyA . id , d = 0 | b . bodyB . id ; this . collidingBodiesLastStep . set ( c , d , ! 0 ) } if ( this . reuseObjects ) { var e = this . contactEquations , f = this . frictionEquations , g = this . reusableFrictionEquations , h = this . reusableContactEquations ; j . appendArray ( h , e ) , j . appendArray ( g , f ) } this . contactEquations . length = this . frictionEquations . length = 0 } , c . prototype . createContactEquation = function ( a , b , c , d ) { var e = this . reusableContactEquations . length ? this . reusableContactEquations . pop ( ) : new m ( a , b ) ; return e . bodyA = a , e . bodyB = b , e . shapeA = c , e . shapeB = d , e . restitution = this . restitution , e . firstImpact = ! this . collidedLastStep ( a , b ) , e . stiffness = this . stiffness , e . relaxation = this . relaxation , e . needsUpdate = ! 0 , e . enabled = ! 0 , e } , c . prototype . createFrictionEquation = function ( a , b , c , d ) { var e = this . reusableFrictionEquations . length ? this . reusableFrictionEquations . pop ( ) : new n ( a , b ) ; return e . bodyA = a , e . bodyB = b , e . shapeA = c , e . shapeB = d , e . setSlipForce ( this . slipForce ) , e . frictionCoefficient = this . frictionCoefficient , e . relativeVelocity = this . surfaceVelocity , e . enabled = ! 0 , e . needsUpdate = ! 0 , e . stiffness = this . frictionStiffness , e . relaxation = this . frictionRelaxation , e } , c . prototype . createFrictionFromContact = function ( a ) { var b = this . createFrictionEquation ( a . bodyA , a . bodyB , a . shapeA , a . shapeB ) ; return f . copy ( b . contactPointA , a . contactPointA ) , f . copy ( b . contactPointB , a . contactPointB ) , f . rotate90cw ( b . t , a . normalA ) , b . contactEquation = a , b } , c . prototype [ q . LINE | q . CONVEX ] = c . prototype . convexLine = function ( a , b , c , d , e , f , g , h , i ) { return i ? ! 1 : 0 } , c . prototype [ q . LINE | q . RECTANGLE ] = c . prototype . lineRectangle = function ( a , b , c , d , e , f , g , h , i ) { return i ? ! 1 : 0 } ; var M = new r ( 1 , 1 ) , N = f . create ( ) ; c . prototype [ q . CAPSULE | q . CONVEX ] = c . prototype [ q . CAPSULE | q . RECTANGLE ] = c . prototype . convexCapsule = function ( a , b , c , e , g , h , i , j , k ) { var l = N ; f . set ( l , h . length / 2 , 0 ) , f . rotate ( l , l , j ) , f . add ( l , l , i ) ; var m = this . circleConvex ( g , h , l , j , a , b , c , e , k , h . radius ) ; f . set ( l , - h . length / 2 , 0 ) , f . rotate ( l , l , j ) , f . add ( l , l , i ) ; var n = this . circleConvex ( g , h , l , j , a , b , c , e , k , h . radius ) ; if ( k && ( m || n ) ) return ! 0 ; var o = M ; d ( o , h ) ; var p = this . convexConvex ( a , b , c , e , g , o , i , j , k ) ; return p + m + n } , c . prototype [ q . CAPSULE | q . LINE ] = c . prototype . lineCapsule = function ( a , b , c , d , e , f , g , h , i ) { return i ? ! 1 : 0 } ; var O = f . create ( ) , P = f . create ( ) , Q = new r ( 1 , 1 ) ; c . prototype [ q . CAPSULE | q . CAPSULE ] = c . prototype . capsuleCapsule = function ( a , b , c , e , g , h , i , j , k ) { for ( var l = O , m = P , n = 0 , o = 0 ; 2 > o ; o ++ ) { f . set ( l , ( 0 == o ? - 1 : 1 ) * b . length / 2 , 0 ) , f . rotate ( l , l , e ) , f . add ( l , l , c ) ; for ( var p = 0 ; 2 > p ; p ++ ) { f . set ( m , ( 0 == p ? - 1 : 1 ) * h . length / 2 , 0 ) , f . rotate ( m , m , j ) , f . add ( m , m , i ) ; var q = this . circleCircle ( a , b , l , e , g , h , m , j , k , b . radius , h . radius ) ; if ( k && q ) return ! 0 ; n += q } } var r = Q ; d ( r , b ) ; var s = this . convexCapsule ( a , r , c , e , g , h , i , j , k ) ; if ( k && s ) return ! 0 ; n += s , d ( r , h ) ; var t = this . convexCapsule ( g , r , i , j , a , b , c , e , k ) ; return k && t ? ! 0 : n += t } , c . prototy
} var d = a ( "./Equation" ) , e = a ( "../math/vec2" ) ; b . exports = c , c . prototype = new d , c . prototype . constructor = c , c . prototype . computeB = function ( a , b , c ) { var d = this . bodyA , f = this . bodyB , g = this . contactPointA , h = this . contactPointB , i = d . position , j = f . position , k = this . penetrationVec , l = this . normalA , m = this . G , n = e . crossLength ( g , l ) , o = e . crossLength ( h , l ) ; m [ 0 ] = - l [ 0 ] , m [ 1 ] = - l [ 1 ] , m [ 2 ] = - n , m [ 3 ] = l [ 0 ] , m [ 4 ] = l [ 1 ] , m [ 5 ] = o , e . add ( k , j , h ) , e . sub ( k , k , i ) , e . sub ( k , k , g ) ; var p , q ; this . firstImpact && 0 !== this . restitution ? ( q = 0 , p = 1 / b * ( 1 + this . restitution ) * this . computeGW ( ) ) : ( q = e . dot ( l , k ) , p = this . computeGW ( ) ) ; var r = this . computeGiMf ( ) , s = - q * a - p * b - c * r ; return s } } , { "../math/vec2" : 30 , "./Equation" : 22 } ] , 22 : [ function ( a , b ) { function c ( a , b , d , e ) { this . minForce = "undefined" == typeof d ? - Number . MAX _VALUE : d , this . maxForce = "undefined" == typeof e ? Number . MAX _VALUE : e , this . bodyA = a , this . bodyB = b , this . stiffness = c . DEFAULT _STIFFNESS , this . relaxation = c . DEFAULT _RELAXATION , this . G = new h . ARRAY _TYPE ( 6 ) ; for ( var f = 0 ; 6 > f ; f ++ ) this . G [ f ] = 0 ; this . offset = 0 , this . a = 0 , this . b = 0 , this . epsilon = 0 , this . timeStep = 1 / 60 , this . needsUpdate = ! 0 , this . multiplier = 0 , this . relativeVelocity = 0 , this . enabled = ! 0 } function d ( a , b , c , d , e ) { return a [ 0 ] * b [ 0 ] + a [ 1 ] * b [ 1 ] + a [ 2 ] * c + a [ 3 ] * d [ 0 ] + a [ 4 ] * d [ 1 ] + a [ 5 ] * e } function e ( a ) { return a . sleepState === i . SLEEPING ? 0 : a . invMass } function f ( a ) { return a . sleepState === i . SLEEPING ? 0 : a . invInertia } b . exports = c ; var g = a ( "../math/vec2" ) , h = a ( "../utils/Utils" ) , i = a ( "../objects/Body" ) ; c . prototype . constructor = c , c . DEFAULT _STIFFNESS = 1e6 , c . DEFAULT _RELAXATION = 4 , c . prototype . update = function ( ) { var a = this . stiffness , b = this . relaxation , c = this . timeStep ; this . a = 4 / ( c * ( 1 + 4 * b ) ) , this . b = 4 * b / ( 1 + 4 * b ) , this . epsilon = 4 / ( c * c * a * ( 1 + 4 * b ) ) , this . needsUpdate = ! 1 } , c . prototype . computeB = function ( a , b , c ) { var d = this . computeGW ( ) , e = this . computeGq ( ) , f = this . computeGiMf ( ) ; return - e * a - d * b - f * c } ; var j = g . create ( ) , k = g . create ( ) ; c . prototype . computeGq = function ( ) { var a = this . G , b = this . bodyA , c = this . bodyB , e = ( b . position , c . position , b . angle ) , f = c . angle ; return d ( a , j , e , k , f ) + this . offset } , c . prototype . computeGW = function ( ) { var a = this . G , b = this . bodyA , c = this . bodyB , e = b . velocity , f = c . velocity , g = b . angularVelocity , h = c . angularVelocity ; return d ( a , e , g , f , h ) + this . relativeVelocity } , c . prototype . computeGWlambda = function ( ) { var a = this . G , b = this . bodyA , c = this . bodyB , e = b . vlambda , f = c . vlambda , g = b . wlambda , h = c . wlambda ; return d ( a , e , g , f , h ) } ; var l = g . create ( ) , m = g . create ( ) ; c . prototype . computeGiMf = function ( ) { var a = this . bodyA , b = this . bodyB , c = a . force , h = a . angularForce , i = b . force , j = b . angularForce , k = e ( a ) , n = e ( b ) , o = f ( a ) , p = f ( b ) , q = this . G ; return g . scale ( l , c , k ) , g . scale ( m , i , n ) , d ( q , l , h * o , m , j * p ) } , c . prototype . computeGiMGt = function ( ) { var a = this . bodyA , b = this . bodyB , c = e ( a ) , d = e ( b ) , g = f ( a ) , h = f ( b ) , i = this . G ; return i [ 0 ] * i [ 0 ] * c + i [ 1 ] * i [ 1 ] * c + i [ 2 ] * i [ 2 ] * g + i [ 3 ] * i [ 3 ] * d + i [ 4 ] * i [ 4 ] * d + i [ 5 ] * i [ 5 ] * h } ; { var n = g . create ( ) , o = g . create ( ) , p = g . create ( ) ; g . create ( ) , g . create ( ) , g . create ( ) } c . prototype . addToWlambda = function ( a ) { var b = this . bodyA , c = this . bodyB , d = n , h = o , i = p , j = e ( b ) , k = e ( c ) , l = f ( b ) , m = f ( c ) , q = this . G ; h [ 0 ] = q [ 0 ] , h [ 1 ] = q [ 1 ] , i [ 0 ] = q [ 3 ] , i [ 1 ] = q [ 4 ] , g . scale ( d , h , j * a ) , g . add ( b . vlambda , b . vlambda , d ) , b . wlambda += l * q [ 2 ] * a , g . scale ( d , i , k * a ) , g . add ( c . vlambda , c . vlambda , d ) , c . wlambda += m * q [ 5 ] * a } , c . prototype . computeInvC = function ( a ) { return 1 / ( this . computeGiMGt ( ) + a ) } } , { "../math/vec2" : 30 , "../objects/Body" : 31 , "../utils/Utils" : 47 } ] , 23 : [ function ( a , b ) { function c ( a , b , c ) { e . call ( this , a , b , - c , c ) , this . contactPointA = d . create ( ) , this . contactPointB = d . create ( ) , this . t = d . create ( ) , this . contactEquation = null , this . shapeA = null , this . shapeB = null , this . frictionCoefficient = . 3 } { var d = a ( "../math/vec2" ) , e = a ( "./Equation" ) ; a ( "../utils/Utils" ) } b . exports = c , c . prototype = new e , c . prototype . constructor = c , c . prototype . setSlipForce = function ( a ) { this . maxForce = a , this . minForce = - a } , c . prototype . getSlipForce = function ( ) { return this . maxForce } , c . prototype . computeB = function ( a , b , c ) { var e = ( this . bodyA , this . bodyB , this . contactPointA ) , f = this . contactPointB , g = this . t , h = this . G ; h [ 0 ] = - g [ 0 ] , h [ 1 ] = - g [ 1 ] , h [ 2 ] = - d . crossLength ( e , g ) , h [ 3 ] = g [ 0 ] , h [ 4 ] = g [ 1 ] , h [ 5 ] = d . crossLength ( f , g ) ; var i = this . computeGW ( ) , j = this . computeGiMf ( ) , k = - i * b - c * j ; return k } } , { "../math/vec2" : 30 , "../utils/Utils" : 47 , "./Equation" : 22 } ] , 24 : [ function ( a , b ) { function c ( a , b , c ) { c = c || { } , d . call ( this , a , b , - Number . MAX _VALUE , Number . MAX _VALUE ) , this . angle = c . ang
b . push ( e . bodyA , e . bodyB ) } return c . reset ( ) , b } , d . prototype . set = function ( a , b , c , e ) { d . call ( this , a , b , c , e ) } } , { "./TupleDictionary" : 46 , "./Utils" : 47 } ] , 46 : [ function ( a , b ) { function c ( ) { this . data = [ ] , this . keys = [ ] } var d = a ( "./Utils" ) ; b . exports = c , c . prototype . getKey = function ( a , b ) { return a = 0 | a , b = 0 | b , ( 0 | a ) === ( 0 | b ) ? - 1 : 0 | ( ( 0 | a ) > ( 0 | b ) ? a << 16 | 65535 & b : b << 16 | 65535 & a ) } , c . prototype . getByKey = function ( a ) { return a = 0 | a , this . data [ a ] } , c . prototype . get = function ( a , b ) { a = 0 | a , b = 0 | b ; var c = 0 | this . getKey ( a , b ) ; return this . data [ c ] } , c . prototype . set = function ( a , b , c ) { if ( ! c ) throw new Error ( "No data!" ) ; a = 0 | a , b = 0 | b ; var d = 0 | this . getKey ( a , b ) ; return this . get ( a , b ) || this . keys . push ( d ) , this . data [ d ] = c , d } , c . prototype . reset = function ( ) { for ( var a = this . data , b = this . keys , c = 0 | b . length ; c -- ; ) { var d = 0 | b [ c ] ; a [ d ] = void 0 } b . length = 0 } , c . prototype . copy = function ( a ) { this . reset ( ) , d . appendArray ( this . keys , a . keys ) ; for ( var b = 0 | a . keys . length ; b -- ; ) { var c = 0 | a . keys [ b ] ; this . data [ c ] = a . data [ c ] } } } , { "./Utils" : 47 } ] , 47 : [ function ( a , b ) { function c ( ) { } b . exports = c , c . appendArray = function ( a , b ) { if ( b . length < 15e4 ) a . push . apply ( a , b ) ; else for ( var c = 0 , d = b . length ; c !== d ; ++ c ) a . push ( b [ c ] ) } , c . splice = function ( a , b , c ) { c = c || 1 ; for ( var d = b , e = a . length - c ; e > d ; d ++ ) a [ d ] = a [ d + c ] ; a . length = e } , c . ARRAY _TYPE = window . Float32Array || Array , c . extend = function ( a , b ) { for ( var c in b ) a [ c ] = b [ c ] } , c . defaults = function ( a , b ) { a = a || { } ; for ( var c in b ) c in a || ( a [ c ] = b [ c ] ) ; return a } } , { } ] , 48 : [ function ( a , b ) { function c ( ) { this . equations = [ ] , this . bodies = [ ] } var d = a ( "../objects/Body" ) ; b . exports = c , c . prototype . reset = function ( ) { this . equations . length = this . bodies . length = 0 } ; var e = [ ] ; c . prototype . getBodies = function ( a ) { var b = a || [ ] , c = this . equations ; e . length = 0 ; for ( var d = 0 ; d !== c . length ; d ++ ) { var f = c [ d ] ; - 1 === e . indexOf ( f . bodyA . id ) && ( b . push ( f . bodyA ) , e . push ( f . bodyA . id ) ) , - 1 === e . indexOf ( f . bodyB . id ) && ( b . push ( f . bodyB ) , e . push ( f . bodyB . id ) ) } return b } , c . prototype . wantsToSleep = function ( ) { for ( var a = 0 ; a < this . bodies . length ; a ++ ) { var b = this . bodies [ a ] ; if ( b . motionState === d . DYNAMIC && ! b . wantsToSleep ) return ! 1 } return ! 0 } , c . prototype . sleep = function ( ) { for ( var a = 0 ; a < this . bodies . length ; a ++ ) { var b = this . bodies [ a ] ; b . sleep ( ) } return ! 0 } } , { "../objects/Body" : 31 } ] , 49 : [ function ( a , b ) { function c ( ) { this . _nodePool = [ ] , this . _islandPool = [ ] , this . equations = [ ] , this . islands = [ ] , this . nodes = [ ] , this . queue = [ ] } var d = ( a ( "../math/vec2" ) , a ( "./Island" ) ) , e = a ( "./IslandNode" ) , f = a ( "../objects/Body" ) ; b . exports = c , c . getUnvisitedNode = function ( a ) { for ( var b = a . length , c = 0 ; c !== b ; c ++ ) { var d = a [ c ] ; if ( ! d . visited && d . body . motionState === f . DYNAMIC ) return d } return ! 1 } , c . prototype . visit = function ( a , b , c ) { b . push ( a . body ) ; for ( var d = a . equations . length , e = 0 ; e !== d ; e ++ ) { var f = a . equations [ e ] ; - 1 === c . indexOf ( f ) && c . push ( f ) } } , c . prototype . bfs = function ( a , b , d ) { var e = this . queue ; for ( e . length = 0 , e . push ( a ) , a . visited = ! 0 , this . visit ( a , b , d ) ; e . length ; ) for ( var g , h = e . pop ( ) ; g = c . getUnvisitedNode ( h . neighbors ) ; ) g . visited = ! 0 , this . visit ( g , b , d ) , g . body . motionState === f . DYNAMIC && e . push ( g ) } , c . prototype . split = function ( a ) { for ( var b = a . bodies , f = this . nodes , g = this . equations ; f . length ; ) this . _nodePool . push ( f . pop ( ) ) ; for ( var h = 0 ; h !== b . length ; h ++ ) if ( this . _nodePool . length ) { var i = this . _nodePool . pop ( ) ; i . reset ( ) , i . body = b [ h ] , f . push ( i ) } else f . push ( new e ( b [ h ] ) ) ; for ( var j = 0 ; j !== g . length ; j ++ ) { var k = g [ j ] , h = b . indexOf ( k . bodyA ) , l = b . indexOf ( k . bodyB ) , m = f [ h ] , n = f [ l ] ; m . neighbors . push ( n ) , n . neighbors . push ( m ) , m . equations . push ( k ) , n . equations . push ( k ) } for ( var o = this . islands ; o . length ; ) { var p = o . pop ( ) ; p . reset ( ) , this . _islandPool . push ( p ) } for ( var q ; q = c . getUnvisitedNode ( f ) ; ) { var p = this . _islandPool . length ? this . _islandPool . pop ( ) : new d ; this . bfs ( q , p . bodies , p . equations ) , o . push ( p ) } return o } } , { "../math/vec2" : 30 , "../objects/Body" : 31 , "./Island" : 48 , "./IslandNode" : 50 } ] , 50 : [ function ( a , b ) { function c ( a ) { this . body = a , this . neighbors = [ ] , this . equations = [ ] , this . visited = ! 1 } b . exports = c , c . prototype . reset = function ( ) { this . equations . length = 0 , this . neighbors . length = 0 , this . visited = ! 1 , this . body = null } } , { } ] , 51 : [ function ( a , b ) { function c ( a ) { r . apply ( this ) , a = a || { } , this . springs = [ ] , this . bodies = [ ] , this . disabledBodyCollisionPairs = [ ] , this . solver = a . solver || new g , this . narrowphase = new G ( this ) , this . islandManager = new J , this . gravity = j . fromValues ( 0 , - 9.78 ) , a . gravity && j . copy ( this . gravity , a . gravity ) , this . fricti
} , pause : function ( ) { this . paused = ! 0 } , resume : function ( ) { this . paused = ! 1 } , update : function ( ) { this . paused || this . world . step ( this . useElapsedTime ? this . game . time . physicsElapsed : this . frameRate ) } , clear : function ( ) { this . world . clear ( ) , this . world . off ( "beginContact" , this . beginContactHandler , this ) , this . world . off ( "endContact" , this . endContactHandler , this ) , this . postBroadphaseCallback = null , this . callbackContext = null , this . impactCallback = null , this . collisionGroups = [ ] , this . _toRemove = [ ] , this . _collisionGroupID = 2 , this . boundsCollidesWith = [ ] } , destroy : function ( ) { this . clear ( ) , this . game = null } , addBody : function ( a ) { return a . data . world ? ! 1 : ( this . world . addBody ( a . data ) , this . onBodyAdded . dispatch ( a ) , ! 0 ) } , removeBody : function ( a ) { return a . data . world == this . world && ( this . world . removeBody ( a . data ) , this . onBodyRemoved . dispatch ( a ) ) , a } , addSpring : function ( a ) { return this . world . addSpring ( a ) , this . onSpringAdded . dispatch ( a ) , a } , removeSpring : function ( a ) { return this . world . removeSpring ( a ) , this . onSpringRemoved . dispatch ( a ) , a } , createDistanceConstraint : function ( a , b , c , d ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . DistanceConstraint ( this , a , b , c , d ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createGearConstraint : function ( a , b , c , d ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . GearConstraint ( this , a , b , c , d ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createRevoluteConstraint : function ( a , b , c , d , e ) { return a = this . getBody ( a ) , c = this . getBody ( c ) , a && c ? this . addConstraint ( new Phaser . Physics . P2 . RevoluteConstraint ( this , a , b , c , d , e ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createLockConstraint : function ( a , b , c , d , e ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . LockConstraint ( this , a , b , c , d , e ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , createPrismaticConstraint : function ( a , b , c , d , e , f , g ) { return a = this . getBody ( a ) , b = this . getBody ( b ) , a && b ? this . addConstraint ( new Phaser . Physics . P2 . PrismaticConstraint ( this , a , b , c , d , e , f , g ) ) : void console . warn ( "Cannot create Constraint, invalid body objects given" ) } , addConstraint : function ( a ) { return this . world . addConstraint ( a ) , this . onConstraintAdded . dispatch ( a ) , a } , removeConstraint : function ( a ) { return this . world . removeConstraint ( a ) , this . onConstraintRemoved . dispatch ( a ) , a } , addContactMaterial : function ( a ) { return this . world . addContactMaterial ( a ) , this . onContactMaterialAdded . dispatch ( a ) , a } , removeContactMaterial : function ( a ) { return this . world . removeContactMaterial ( a ) , this . onContactMaterialRemoved . dispatch ( a ) , a } , getContactMaterial : function ( a , b ) { return this . world . getContactMaterial ( a , b ) } , setMaterial : function ( a , b ) { for ( var c = b . length ; c -- ; ) b [ c ] . setMaterial ( a ) } , createMaterial : function ( a , b ) { a = a || "" ; var c = new Phaser . Physics . P2 . Material ( a ) ; return this . materials . push ( c ) , "undefined" != typeof b && b . setMaterial ( c ) , c } , createContactMaterial : function ( a , b , c ) { "undefined" == typeof a && ( a = this . createMaterial ( ) ) , "undefined" == typeof b && ( b = this . createMaterial ( ) ) ; var d = new Phaser . Physics . P2 . ContactMaterial ( a , b , c ) ; return this . addContactMaterial ( d ) } , getBodies : function ( ) { for ( var a = [ ] , b = this . world . bodies . length ; b -- ; ) a . push ( this . world . bodies [ b ] . parent ) ; return a } , getBody : function ( a ) { return a instanceof p2 . Body ? a : a instanceof Phaser . Physics . P2 . Body ? a . data : a . body && a . body . type === Phaser . Physics . P2JS ? a . body . data : null } , getSprings : function ( ) { for ( var a = [ ] , b = this . world . springs . length ; b -- ; ) a . push ( this . world . springs [ b ] . parent ) ; return a } , getConstraints : function ( ) { for ( var a = [ ] , b = this . world . constraints . length ; b -- ; ) a . push ( this . world . constraints [ b ] . parent ) ; return a } , hitTest : function ( a , b , c , d ) { "undefined" == typeof b && ( b = this . world . bodies ) , "undefined" == typeof c && ( c = 5 ) , "undefined" == typeof d && ( d = ! 1 ) ; for ( var e = [ this . pxmi ( a . x ) , this . pxmi ( a . y ) ] , f = [ ] , g = b . length ; g -- ; ) b [ g ] instanceof Phaser . Physics . P2 . Body && ( ! d || b [ g ] . data . motionState !== p2 . Body . STATIC ) ? f . push ( b [ g ] . data ) : b [ g ] instanceof p2 . Body && b [ g ] . parent && ( ! d || b [ g ] . motionState !== p2 . Body . STATIC ) ? f . push ( b [ g ] ) : b [ g ] instanceof Phaser . Sprite && b [ g ] . hasOwnProperty ( "body" ) &
var g = { localOffsetB : d , localAngleB : e , maxForce : f } ; p2 . LockConstraint . call ( this , b , c , g ) } , Phaser . Physics . P2 . LockConstraint . prototype = Object . create ( p2 . LockConstraint . prototype ) , Phaser . Physics . P2 . LockConstraint . prototype . constructor = Phaser . Physics . P2 . LockConstraint , Phaser . Physics . P2 . PrismaticConstraint = function ( a , b , c , d , e , f , g , h ) { "undefined" == typeof d && ( d = ! 0 ) , "undefined" == typeof e && ( e = [ 0 , 0 ] ) , "undefined" == typeof f && ( f = [ 0 , 0 ] ) , "undefined" == typeof g && ( g = [ 0 , 0 ] ) , "undefined" == typeof h && ( h = Number . MAX _VALUE ) , this . game = a . game , this . world = a , e = [ a . pxmi ( e [ 0 ] ) , a . pxmi ( e [ 1 ] ) ] , f = [ a . pxmi ( f [ 0 ] ) , a . pxmi ( f [ 1 ] ) ] ; var i = { localAnchorA : e , localAnchorB : f , localAxisA : g , maxForce : h , disableRotationalLock : ! d } ; p2 . PrismaticConstraint . call ( this , b , c , i ) } , Phaser . Physics . P2 . PrismaticConstraint . prototype = Object . create ( p2 . PrismaticConstraint . prototype ) , Phaser . Physics . P2 . PrismaticConstraint . prototype . constructor = Phaser . Physics . P2 . PrismaticConstraint , Phaser . Physics . P2 . RevoluteConstraint = function ( a , b , c , d , e , f ) { "undefined" == typeof f && ( f = Number . MAX _VALUE ) , this . game = a . game , this . world = a , c = [ a . pxmi ( c [ 0 ] ) , a . pxmi ( c [ 1 ] ) ] , e = [ a . pxmi ( e [ 0 ] ) , a . pxmi ( e [ 1 ] ) ] , p2 . RevoluteConstraint . call ( this , b , c , d , e , { maxForce : f } ) } , Phaser . Physics . P2 . RevoluteConstraint . prototype = Object . create ( p2 . RevoluteConstraint . prototype ) , Phaser . Physics . P2 . RevoluteConstraint . prototype . constructor = Phaser . Physics . P2 . RevoluteConstraint ;
2014-02-28 09:30:53 +00:00
//# sourceMappingURL=phaser.map