2016-05-23 12:18:30 +00:00
/* Phaser v2.4.9 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2015-02-25 02:59:00 +00:00
2016-06-09 16:13:31 +00:00
( function ( ) { var a = this , b = b || { } ; return b . game = null , b . WEBGL _RENDERER = 0 , b . CANVAS _RENDERER = 1 , b . VERSION = "v2.2.9" , b . _UID = 0 , "undefined" != typeof Float32Array ? ( b . Float32Array = Float32Array , b . Uint16Array = Uint16Array , b . Uint32Array = Uint32Array , b . ArrayBuffer = ArrayBuffer ) : ( b . Float32Array = Array , b . Uint16Array = Array ) , b . PI _2 = 2 * Math . PI , b . RAD _TO _DEG = 180 / Math . PI , b . DEG _TO _RAD = Math . PI / 180 , b . RETINA _PREFIX = "@2x" , b . DisplayObject = function ( ) { this . position = new b . Point ( 0 , 0 ) , this . scale = new b . Point ( 1 , 1 ) , this . pivot = new b . Point ( 0 , 0 ) , this . rotation = 0 , this . alpha = 1 , this . visible = ! 0 , this . hitArea = null , this . renderable = ! 1 , this . parent = null , this . stage = null , this . worldAlpha = 1 , this . worldTransform = new b . Matrix , this . worldPosition = new b . Point ( 0 , 0 ) , this . worldScale = new b . Point ( 1 , 1 ) , this . worldRotation = 0 , this . _sr = 0 , this . _cr = 1 , this . filterArea = null , this . _bounds = new b . Rectangle ( 0 , 0 , 1 , 1 ) , this . _currentBounds = null , this . _mask = null , this . _cacheAsBitmap = ! 1 , this . _cacheIsDirty = ! 1 } , b . DisplayObject . prototype . constructor = b . DisplayObject , b . DisplayObject . prototype . destroy = function ( ) { if ( this . children ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . destroy ( ) ; this . children = [ ] } this . hitArea = null , this . parent = null , this . stage = null , this . worldTransform = null , this . filterArea = null , this . _bounds = null , this . _currentBounds = null , this . _mask = null , this . renderable = ! 1 , this . _destroyCachedSprite ( ) } , Object . defineProperty ( b . DisplayObject . prototype , "worldVisible" , { get : function ( ) { var a = this ; do { if ( ! a . visible ) return ! 1 ; a = a . parent } while ( a ) ; return ! 0 } } ) , Object . defineProperty ( b . DisplayObject . prototype , "mask" , { get : function ( ) { return this . _mask } , set : function ( a ) { this . _mask && ( this . _mask . isMask = ! 1 ) , this . _mask = a , this . _mask && ( this . _mask . isMask = ! 0 ) } } ) , Object . defineProperty ( b . DisplayObject . prototype , "filters" , { get : function ( ) { return this . _filters } , set : function ( a ) { if ( a ) { for ( var c = [ ] , d = 0 ; d < a . length ; d ++ ) for ( var e = a [ d ] . passes , f = 0 ; f < e . length ; f ++ ) c . push ( e [ f ] ) ; this . _filterBlock = { target : this , filterPasses : c } } this . _filters = a , this . blendMode && this . blendMode === b . blendModes . MULTIPLY && ( this . blendMode = b . blendModes . NORMAL ) } } ) , Object . defineProperty ( b . DisplayObject . prototype , "cacheAsBitmap" , { get : function ( ) { return this . _cacheAsBitmap } , set : function ( a ) { this . _cacheAsBitmap !== a && ( a ? this . _generateCachedSprite ( ) : this . _destroyCachedSprite ( ) , this . _cacheAsBitmap = a ) } } ) , b . DisplayObject . prototype . updateTransform = function ( a ) { if ( a || this . parent || this . game ) { var c = this . parent ; a ? c = a : this . parent || ( c = this . game . world ) ; var d , e , f , g , h , i , j = c . worldTransform , k = this . worldTransform ; this . rotation % b . PI _2 ? ( this . rotation !== this . rotationCache && ( this . rotationCache = this . rotation , this . _sr = Math . sin ( this . rotation ) , this . _cr = Math . cos ( this . rotation ) ) , d = this . _cr * this . scale . x , e = this . _sr * this . scale . x , f = - this . _sr * this . scale . y , g = this . _cr * this . scale . y , h = this . position . x , i = this . position . y , ( this . pivot . x || this . pivot . y ) && ( h -= this . pivot . x * d + this . pivot . y * f , i -= this . pivot . x * e + this . pivot . y * g ) , k . a = d * j . a + e * j . c , k . b = d * j . b + e * j . d , k . c = f * j . a + g * j . c , k . d = f * j . b + g * j . d , k . tx = h * j . a + i * j . c + j . tx , k . ty = h * j . b + i * j . d + j . ty ) : ( d = this . scale . x , g = this . scale . y , h = this . position . x - this . pivot . x * d , i = this . position . y - this . pivot . y * g , k . a = d * j . a , k . b = d * j . b , k . c = g * j . c , k . d = g * j . d , k . tx = h * j . a + i * j . c + j . tx , k . ty = h * j . b + i * j . d + j . ty ) , this . worldAlpha = this . alpha * c . worldAlpha , this . worldPosition . set ( k . tx , k . ty ) , this . worldScale . set ( Math . sqrt ( k . a * k . a + k . b * k . b ) , Math . sqrt ( k . c * k . c + k . d * k . d ) ) , this . worldRotation = Math . atan2 ( k . c , k . d ) , this . _currentBounds = null , this . transformCallback && this . transformCallback . call ( this . transformCallbackContext , k , j ) } } , b . DisplayObject . prototype . displayObjectUpdateTransform = b . DisplayObject . prototype . updateTransform , b . DisplayObject . prototype . getBounds = function ( a ) { return a = a , b . EmptyRectangle } , b . DisplayObject . prototype . getLocalBounds = function ( ) { return this . getBounds ( b . identityMatrix ) } , b . DisplayObject . prototype . setStageReference = function ( a ) { this . stage = a } , b . DisplayObject . prototype . preUpdate = function ( ) { } , b . DisplayObject . prototype . generateTexture = function ( a , c , d ) { var e = this . getLocalBounds ( ) , f = new b . RenderTexture ( 0 | e . width , 0 | e . height , d , c , a ) ; return b . DisplayObject . _tempMatrix . tx = - e . x , b . DisplayObject . _tempMatrix . ty = - e . y , f . render ( this , b . DisplayObject . _tempMatrix ) , f } ,
2016-06-02 15:40:04 +00:00
this . blendModeManager = new b . WebGLBlendModeManager , this . renderSession = { } , this . renderSession . game = this . game , this . renderSession . gl = this . gl , this . renderSession . drawCount = 0 , this . renderSession . shaderManager = this . shaderManager , this . renderSession . maskManager = this . maskManager , this . renderSession . filterManager = this . filterManager , this . renderSession . blendModeManager = this . blendModeManager , this . renderSession . spriteBatch = this . spriteBatch , this . renderSession . stencilManager = this . stencilManager , this . renderSession . renderer = this , this . renderSession . resolution = this . resolution , this . initContext ( ) , this . mapBlendModes ( ) } , b . WebGLRenderer . prototype . constructor = b . WebGLRenderer , b . WebGLRenderer . prototype . initContext = function ( ) { var a = this . view . getContext ( "webgl" , this . _contextOptions ) || this . view . getContext ( "experimental-webgl" , this . _contextOptions ) ; if ( this . gl = a , ! a ) throw new Error ( "This browser does not support webGL. Try using the canvas renderer" ) ; this . glContextId = a . id = b . WebGLRenderer . glContextId ++ , b . glContexts [ this . glContextId ] = a , b . instances [ this . glContextId ] = this , a . disable ( a . DEPTH _TEST ) , a . disable ( a . CULL _FACE ) , a . enable ( a . BLEND ) , this . shaderManager . setContext ( a ) , this . spriteBatch . setContext ( a ) , this . maskManager . setContext ( a ) , this . filterManager . setContext ( a ) , this . blendModeManager . setContext ( a ) , this . stencilManager . setContext ( a ) , this . renderSession . gl = this . gl , this . resize ( this . width , this . height ) } , b . WebGLRenderer . prototype . render = function ( a ) { if ( ! this . contextLost ) { var b = this . gl ; b . viewport ( 0 , 0 , this . width , this . height ) , b . bindFramebuffer ( b . FRAMEBUFFER , null ) , this . game . clearBeforeRender && ( b . clearColor ( a . _bgColor . r , a . _bgColor . g , a . _bgColor . b , a . _bgColor . a ) , b . clear ( b . COLOR _BUFFER _BIT ) ) , this . offset . x = this . game . camera . _shake . x , this . offset . y = this . game . camera . _shake . y , this . renderDisplayObject ( a , this . projection ) } } , b . WebGLRenderer . prototype . renderDisplayObject = function ( a , c , d , e ) { this . renderSession . blendModeManager . setBlendMode ( b . blendModes . NORMAL ) , this . renderSession . drawCount = 0 , this . renderSession . flipY = d ? - 1 : 1 , this . renderSession . projection = c , this . renderSession . offset = this . offset , this . spriteBatch . begin ( this . renderSession ) , this . filterManager . begin ( this . renderSession , d ) , a . _renderWebGL ( this . renderSession , e ) , this . spriteBatch . end ( ) } , b . WebGLRenderer . prototype . resize = function ( a , b ) { this . width = a * this . resolution , this . height = b * this . resolution , this . view . width = this . width , this . view . height = this . height , this . autoResize && ( this . view . style . width = this . width / this . resolution + "px" , this . view . style . height = this . height / this . resolution + "px" ) , this . gl . viewport ( 0 , 0 , this . width , this . height ) , this . projection . x = this . width / 2 / this . resolution , this . projection . y = - this . height / 2 / this . resolution } , b . WebGLRenderer . prototype . updateTexture = function ( a ) { if ( ! a . hasLoaded ) return ! 1 ; var c = this . gl ; return a . _glTextures [ c . id ] || ( a . _glTextures [ c . id ] = c . createTexture ( ) ) , c . bindTexture ( c . TEXTURE _2D , a . _glTextures [ c . id ] ) , c . pixelStorei ( c . UNPACK _PREMULTIPLY _ALPHA _WEBGL , a . premultipliedAlpha ) , c . texImage2D ( c . TEXTURE _2D , 0 , c . RGBA , c . RGBA , c . UNSIGNED _BYTE , a . source ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MAG _FILTER , a . scaleMode === b . scaleModes . LINEAR ? c . LINEAR : c . NEAREST ) , a . mipmap && b . isPowerOfTwo ( a . width , a . height ) ? ( c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MIN _FILTER , a . scaleMode === b . scaleModes . LINEAR ? c . LINEAR _MIPMAP _LINEAR : c . NEAREST _MIPMAP _NEAREST ) , c . generateMipmap ( c . TEXTURE _2D ) ) : c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MIN _FILTER , a . scaleMode === b . scaleModes . LINEAR ? c . LINEAR : c . NEAREST ) , a . _powerOf2 ? ( c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _S , c . REPEAT ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _T , c . REPEAT ) ) : ( c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _S , c . CLAMP _TO _EDGE ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _T , c . CLAMP _TO _EDGE ) ) , a . _dirty [ c . id ] = ! 1 , ! 0 } , b . WebGLRenderer . prototype . destroy = function ( ) { b . glContexts [ this . glContextId ] = null , this . projection = null , this . offset = null , this . shaderManager . destroy ( ) , this . spriteBatch . destroy ( ) , this . maskManager . destroy ( ) , this . filterManager . destroy ( ) , this . shaderManager = null , this . spriteBatch = null , this . maskManager = null , this . filterManager = null , this . gl = null , this . renderSession = null , b . CanvasPool . remove ( this ) , b . instances [ this . glContextId ] = null , b
2016-06-09 16:13:31 +00:00
for ( var g = b . hex2rgb ( c ) , h = g [ 0 ] , i = g [ 1 ] , j = g [ 2 ] , k = e . getImageData ( 0 , 0 , f . width , f . height ) , l = k . data , m = 0 ; m < l . length ; m += 4 ) if ( l [ m + 0 ] *= h , l [ m + 1 ] *= i , l [ m + 2 ] *= j , ! b . CanvasTinter . canHandleAlpha ) { var n = l [ m + 3 ] ; l [ m + 0 ] /= 255 / n , l [ m + 1 ] /= 255 / n , l [ m + 2 ] /= 255 / n } e . putImageData ( k , 0 , 0 ) } , b . CanvasTinter . checkInverseAlpha = function ( ) { var a = new b . CanvasBuffer ( 2 , 1 ) ; a . context . fillStyle = "rgba(10, 20, 30, 0.5)" , a . context . fillRect ( 0 , 0 , 1 , 1 ) ; var c = a . context . getImageData ( 0 , 0 , 1 , 1 ) ; if ( null === c ) return ! 1 ; a . context . putImageData ( c , 1 , 0 ) ; var d = a . context . getImageData ( 1 , 0 , 1 , 1 ) ; return d . data [ 0 ] === c . data [ 0 ] && d . data [ 1 ] === c . data [ 1 ] && d . data [ 2 ] === c . data [ 2 ] && d . data [ 3 ] === c . data [ 3 ] } , b . CanvasTinter . canHandleAlpha = b . CanvasTinter . checkInverseAlpha ( ) , b . CanvasTinter . canUseMultiply = b . canUseNewCanvasBlendModes ( ) , b . CanvasTinter . tintMethod = b . CanvasTinter . canUseMultiply ? b . CanvasTinter . tintWithMultiply : b . CanvasTinter . tintWithPerPixel , b . CanvasRenderer = function ( a ) { this . game = a , b . defaultRenderer || ( b . defaultRenderer = this ) , this . type = b . CANVAS _RENDERER , this . resolution = a . resolution , this . clearBeforeRender = a . clearBeforeRender , this . transparent = a . transparent , this . autoResize = ! 1 , this . width = a . width * this . resolution , this . height = a . height * this . resolution , this . view = a . canvas , this . context = this . view . getContext ( "2d" , { alpha : this . transparent } ) , this . refresh = ! 0 , this . count = 0 , this . maskManager = new b . CanvasMaskManager , this . renderSession = { context : this . context , maskManager : this . maskManager , scaleMode : null , smoothProperty : Phaser . Canvas . getSmoothingPrefix ( this . context ) , roundPixels : ! 1 } , this . mapBlendModes ( ) , this . resize ( this . width , this . height ) } , b . CanvasRenderer . prototype . constructor = b . CanvasRenderer , b . CanvasRenderer . prototype . render = function ( a ) { this . context . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , this . context . globalAlpha = 1 , this . renderSession . currentBlendMode = 0 , this . renderSession . shakeX = this . game . camera . _shake . x , this . renderSession . shakeY = this . game . camera . _shake . y , this . context . globalCompositeOperation = "source-over" , navigator . isCocoonJS && this . view . screencanvas && ( this . context . fillStyle = "black" , this . context . clear ( ) ) , this . clearBeforeRender && ( this . transparent ? this . context . clearRect ( 0 , 0 , this . width , this . height ) : ( this . context . fillStyle = a . _bgColor . rgba , this . context . fillRect ( 0 , 0 , this . width , this . height ) ) ) , this . renderDisplayObject ( a ) } , b . CanvasRenderer . prototype . destroy = function ( a ) { void 0 === a && ( a = ! 0 ) , a && this . view . parent && this . view . parent . removeChild ( this . view ) , this . view = null , this . context = null , this . maskManager = null , this . renderSession = null } , b . CanvasRenderer . prototype . resize = function ( a , c ) { this . width = a * this . resolution , this . height = c * this . resolution , this . view . width = this . width , this . view . height = this . height , this . autoResize && ( this . view . style . width = this . width / this . resolution + "px" , this . view . style . height = this . height / this . resolution + "px" ) , this . renderSession . smoothProperty && ( this . context [ this . renderSession . smoothProperty ] = this . renderSession . scaleMode === b . scaleModes . LINEAR ) } , b . CanvasRenderer . prototype . renderDisplayObject = function ( a , b , c ) { this . renderSession . context = b || this . context , this . renderSession . resolution = this . resolution , a . _renderCanvas ( this . renderSession , c ) } , b . CanvasRenderer . prototype . mapBlendModes = function ( ) { if ( ! b . blendModesCanvas ) { var a = [ ] , c = b . blendModes , d = b . canUseNewCanvasBlendModes ( ) ; a [ c . NORMAL ] = "source-over" , a [ c . ADD ] = "lighter" , a [ c . MULTIPLY ] = d ? "multiply" : "source-over" , a [ c . SCREEN ] = d ? "screen" : "source-over" , a [ c . OVERLAY ] = d ? "overlay" : "source-over" , a [ c . DARKEN ] = d ? "darken" : "source-over" , a [ c . LIGHTEN ] = d ? "lighten" : "source-over" , a [ c . COLOR _DODGE ] = d ? "color-dodge" : "source-over" , a [ c . COLOR _BURN ] = d ? "color-burn" : "source-over" , a [ c . HARD _LIGHT ] = d ? "hard-light" : "source-over" , a [ c . SOFT _LIGHT ] = d ? "soft-light" : "source-over" , a [ c . DIFFERENCE ] = d ? "difference" : "source-over" , a [ c . EXCLUSION ] = d ? "exclusion" : "source-over" , a [ c . HUE ] = d ? "hue" : "source-over" , a [ c . SATURATION ] = d ? "saturation" : "source-over" , a [ c . COLOR ] = d ? "color" : "source-over" , a [ c . LUMINOSITY ] = d ? "luminosity" : "source-over" , b . blendModesCanvas = a } } , b . BaseTextureCache = { } , b . BaseTextureCacheIdGenerator = 0 , b . BaseTexture = function ( a , c ) { this . resolution = 1 , this . width = 100 , this . height = 100 , this . scaleMode = c || b . scaleModes . DEFAULT , this . hasLoaded = ! 1 , this . source = a , this . _UID = b . _UID +
return void 0 === d && ( d = new c . Point ) , d . x = a . x + b . x , d . y = a . y + b . y , d } , c . Point . subtract = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x - b . x , d . y = a . y - b . y , d } , c . Point . multiply = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x * b . x , d . y = a . y * b . y , d } , c . Point . divide = function ( a , b , d ) { return void 0 === d && ( d = new c . Point ) , d . x = a . x / b . x , d . y = a . y / b . y , d } , c . Point . equals = function ( a , b ) { return a . x === b . x && a . y === b . y } , c . Point . angle = function ( a , b ) { return Math . atan2 ( a . y - b . y , a . x - b . x ) } , c . Point . negative = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - a . x , - a . y ) } , c . Point . multiplyAdd = function ( a , b , d , e ) { return void 0 === e && ( e = new c . Point ) , e . setTo ( a . x + b . x * d , a . y + b . y * d ) } , c . Point . interpolate = function ( a , b , d , e ) { return void 0 === e && ( e = new c . Point ) , e . setTo ( a . x + ( b . x - a . x ) * d , a . y + ( b . y - a . y ) * d ) } , c . Point . perp = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - a . y , a . x ) } , c . Point . rperp = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( a . y , - a . x ) } , c . Point . distance = function ( a , b , d ) { var e = c . Math . distance ( a . x , a . y , b . x , b . y ) ; return d ? Math . round ( e ) : e } , c . Point . project = function ( a , b , d ) { void 0 === d && ( d = new c . Point ) ; var e = a . dot ( b ) / b . getMagnitudeSq ( ) ; return 0 !== e && d . setTo ( e * b . x , e * b . y ) , d } , c . Point . projectUnit = function ( a , b , d ) { void 0 === d && ( d = new c . Point ) ; var e = a . dot ( b ) ; return 0 !== e && d . setTo ( e * b . x , e * b . y ) , d } , c . Point . normalRightHand = function ( a , b ) { return void 0 === b && ( b = new c . Point ) , b . setTo ( - 1 * a . y , a . x ) } , c . Point . normalize = function ( a , b ) { void 0 === b && ( b = new c . Point ) ; var d = a . getMagnitude ( ) ; return 0 !== d && b . setTo ( a . x / d , a . y / d ) , b } , c . Point . rotate = function ( a , b , d , e , f , g ) { if ( f && ( e = c . Math . degToRad ( e ) ) , void 0 === g ) { a . subtract ( b , d ) ; var h = Math . sin ( e ) , i = Math . cos ( e ) , j = i * a . x - h * a . y , k = h * a . x + i * a . y ; a . x = j + b , a . y = k + d } else { var l = e + Math . atan2 ( a . y - d , a . x - b ) ; a . x = b + g * Math . cos ( l ) , a . y = d + g * Math . sin ( l ) } return a } , c . Point . centroid = function ( a , b ) { if ( void 0 === b && ( b = new c . Point ) , "[object Array]" !== Object . prototype . toString . call ( a ) ) throw new Error ( "Phaser.Point. Parameter 'points' must be an array" ) ; var d = a . length ; if ( 1 > d ) throw new Error ( "Phaser.Point. Parameter 'points' array must not be empty" ) ; if ( 1 === d ) return b . copyFrom ( a [ 0 ] ) , b ; for ( var e = 0 ; d > e ; e ++ ) c . Point . add ( b , a [ e ] , b ) ; return b . divide ( d , d ) , b } , c . Point . parse = function ( a , b , d ) { b = b || "x" , d = d || "y" ; var e = new c . Point ; return a [ b ] && ( e . x = parseInt ( a [ b ] , 10 ) ) , a [ d ] && ( e . y = parseInt ( a [ d ] , 10 ) ) , e } , PIXI . Point = c . Point , c . Polygon = function ( ) { this . area = 0 , this . _points = [ ] , arguments . length > 0 && this . setTo . apply ( this , arguments ) , this . closed = ! 0 , this . type = c . POLYGON } , c . Polygon . prototype = { toNumberArray : function ( a ) { void 0 === a && ( a = [ ] ) ; for ( var b = 0 ; b < this . _points . length ; b ++ ) "number" == typeof this . _points [ b ] ? ( a . push ( this . _points [ b ] ) , a . push ( this . _points [ b + 1 ] ) , b ++ ) : ( a . push ( this . _points [ b ] . x ) , a . push ( this . _points [ b ] . y ) ) ; return a } , flatten : function ( ) { return this . _points = this . toNumberArray ( ) , this } , clone : function ( a ) { var b = this . _points . slice ( ) ; return void 0 === a || null === a ? a = new c . Polygon ( b ) : a . setTo ( b ) , a } , contains : function ( a , b ) { for ( var c = this . _points . length , d = ! 1 , e = - 1 , f = c - 1 ; ++ e < c ; f = e ) { var g = this . _points [ e ] . x , h = this . _points [ e ] . y , i = this . _points [ f ] . x , j = this . _points [ f ] . y ; ( b >= h && j > b || b >= j && h > b ) && ( i - g ) * ( b - h ) / ( j - h ) + g > a && ( d = ! d ) } return d } , setTo : function ( a ) { if ( this . area = 0 , this . _points = [ ] , arguments . length > 0 ) { Array . isArray ( a ) || ( a = Array . prototype . slice . call ( arguments ) ) ; for ( var b = Number . MAX _VALUE , c = 0 , d = a . length ; d > c ; c ++ ) { if ( "number" == typeof a [ c ] ) { var e = new PIXI . Point ( a [ c ] , a [ c + 1 ] ) ; c ++ } else if ( Array . isArray ( a [ c ] ) ) var e = new PIXI . Point ( a [ c ] [ 0 ] , a [ c ] [ 1 ] ) ; else var e = new PIXI . Point ( a [ c ] . x , a [ c ] . y ) ; this . _points . push ( e ) , e . y < b && ( b = e . y ) } this . calculateArea ( b ) } return this } , calculateArea : function ( a ) { for ( var b , c , d , e , f = 0 , g = this . _points . length ; g > f ; f ++ ) b = this . _points [ f ] , c = f === g - 1 ? this . _points [ 0 ] : this . _points [ f + 1 ] , d = ( b . y - a + ( c . y - a ) ) / 2 , e = b . x - c . x , this . area += d * e ; return this . area } } , c . Polygon . prototype . constructor = c . Polygon , Object . defineProperty ( c . Polygon . prototype , "points" , { get : function ( ) { return this . _points } , set : function ( a ) { null != a ? this . setTo ( a ) : this . setTo ( ) } } ) , PIXI . Polygon = c . Polygon , c . Rectangle = function ( a , b , d , e ) { a = a || 0 , b = b || 0 , d = d || 0 , e = e || 0 , this . x = a , this . y = b , this . width = d , this . height = e , this . type = c . RECTANGLE } , c . Rectangle . prototype = { offset : function ( a , b ) { return t
void 0 !== c && null !== c ? this . width = c : c = this . width , void 0 !== d && null !== d ? this . height = d : d = this . height ; var g = this . game . add . image ( a , b , "__default" ) ; return g . width = c , g . height = d , g . anchor . set ( e , f ) , g . filters = [ this ] , g } , destroy : function ( ) { this . game = null } } , c . Filter . prototype . constructor = c . Filter , Object . defineProperty ( c . Filter . prototype , "width" , { get : function ( ) { return this . uniforms . resolution . value . x } , set : function ( a ) { this . uniforms . resolution . value . x = a } } ) , Object . defineProperty ( c . Filter . prototype , "height" , { get : function ( ) { return this . uniforms . resolution . value . y } , set : function ( a ) { this . uniforms . resolution . value . y = a } } ) , c . Plugin = function ( a , b ) { void 0 === b && ( b = null ) , this . game = a , this . parent = b , this . active = ! 1 , this . visible = ! 1 , this . hasPreUpdate = ! 1 , this . hasUpdate = ! 1 , this . hasPostUpdate = ! 1 , this . hasRender = ! 1 , this . hasPostRender = ! 1 } , c . Plugin . prototype = { preUpdate : function ( ) { } , update : function ( ) { } , render : function ( ) { } , postRender : function ( ) { } , destroy : function ( ) { this . game = null , this . parent = null , this . active = ! 1 , this . visible = ! 1 } } , c . Plugin . prototype . constructor = c . Plugin , c . PluginManager = function ( a ) { this . game = a , this . plugins = [ ] , this . _len = 0 , this . _i = 0 } , c . PluginManager . prototype = { add : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) , c = ! 1 ; return "function" == typeof a ? a = new a ( this . game , this ) : ( a . game = this . game , a . parent = this ) , "function" == typeof a . preUpdate && ( a . hasPreUpdate = ! 0 , c = ! 0 ) , "function" == typeof a . update && ( a . hasUpdate = ! 0 , c = ! 0 ) , "function" == typeof a . postUpdate && ( a . hasPostUpdate = ! 0 , c = ! 0 ) , "function" == typeof a . render && ( a . hasRender = ! 0 , c = ! 0 ) , "function" == typeof a . postRender && ( a . hasPostRender = ! 0 , c = ! 0 ) , c ? ( ( a . hasPreUpdate || a . hasUpdate || a . hasPostUpdate ) && ( a . active = ! 0 ) , ( a . hasRender || a . hasPostRender ) && ( a . visible = ! 0 ) , this . _len = this . plugins . push ( a ) , "function" == typeof a . init && a . init . apply ( a , b ) , a ) : null } , remove : function ( a , b ) { for ( void 0 === b && ( b = ! 0 ) , this . _i = this . _len ; this . _i -- ; ) if ( this . plugins [ this . _i ] === a ) return b && a . destroy ( ) , this . plugins . splice ( this . _i , 1 ) , void this . _len -- } , removeAll : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . destroy ( ) ; this . plugins . length = 0 , this . _len = 0 } , preUpdate : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . active && this . plugins [ this . _i ] . hasPreUpdate && this . plugins [ this . _i ] . preUpdate ( ) } , update : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . active && this . plugins [ this . _i ] . hasUpdate && this . plugins [ this . _i ] . update ( ) } , postUpdate : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . active && this . plugins [ this . _i ] . hasPostUpdate && this . plugins [ this . _i ] . postUpdate ( ) } , render : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . visible && this . plugins [ this . _i ] . hasRender && this . plugins [ this . _i ] . render ( ) } , postRender : function ( ) { for ( this . _i = this . _len ; this . _i -- ; ) this . plugins [ this . _i ] . visible && this . plugins [ this . _i ] . hasPostRender && this . plugins [ this . _i ] . postRender ( ) } , destroy : function ( ) { this . removeAll ( ) , this . game = null } } , c . PluginManager . prototype . constructor = c . PluginManager , c . Stage = function ( a ) { this . game = a , PIXI . DisplayObjectContainer . call ( this ) , this . name = "_stage_root" , this . disableVisibilityChange = ! 1 , this . exists = ! 0 , this . worldTransform = new PIXI . Matrix , this . stage = this , this . currentRenderOrderID = 0 , this . _hiddenVar = "hidden" , this . _onChange = null , this . _bgColor = { r : 0 , g : 0 , b : 0 , a : 0 , color : 0 , rgba : "#000000" } , this . game . transparent || ( this . _bgColor . a = 1 ) , a . config && this . parseConfig ( a . config ) } , c . Stage . prototype = Object . create ( PIXI . DisplayObjectContainer . prototype ) , c . Stage . prototype . constructor = c . Stage , c . Stage . prototype . parseConfig = function ( a ) { a . disableVisibilityChange && ( this . disableVisibilityChange = a . disableVisibilityChange ) , a . backgroundColor && this . setBackgroundColor ( a . backgroundColor ) } , c . Stage . prototype . boot = function ( ) { c . DOM . getOffset ( this . game . canvas , this . offset ) , c . Canvas . setUserSelect ( this . game . canvas , "none" ) , c . Canvas . setTouchAction ( this . game . canvas , "none" ) , this . checkVisibility ( ) } , c . Stage . prototype . preUpdate = function ( ) { this . currentRenderOrderID = 0 ; for ( var a = 0 ; a < this . children . length ; a ++ ) this . children [ a ] . preUpdate ( ) } , c . Stage . prototype . update = function ( ) { for ( var a = this . children . length ; a -- ; ) this . children [ a ] . update ( ) } , c . Stage . prototype . postUpd
this . scale . destroy ( ) , this . stage . destroy ( ) , this . input . destroy ( ) , this . physics . destroy ( ) , this . plugins . destroy ( ) , this . state = null , this . sound = null , this . scale = null , this . stage = null , this . input = null , this . physics = null , this . plugins = null , this . cache = null , this . load = null , this . time = null , this . world = null , this . isBooted = ! 1 , this . renderer . destroy ( ! 1 ) , c . Canvas . removeFromDOM ( this . canvas ) , PIXI . defaultRenderer = null , c . GAMES [ this . id ] = null } , gamePaused : function ( a ) { this . _paused || ( this . _paused = ! 0 , this . time . gamePaused ( ) , this . sound . muteOnPause && this . sound . setMute ( ) , this . onPause . dispatch ( a ) , this . device . cordova && this . device . iOS && ( this . lockRender = ! 0 ) ) } , gameResumed : function ( a ) { this . _paused && ! this . _codePaused && ( this . _paused = ! 1 , this . time . gameResumed ( ) , this . input . reset ( ) , this . sound . muteOnPause && this . sound . unsetMute ( ) , this . onResume . dispatch ( a ) , this . device . cordova && this . device . iOS && ( this . lockRender = ! 1 ) ) } , focusLoss : function ( a ) { this . onBlur . dispatch ( a ) , this . stage . disableVisibilityChange || this . gamePaused ( a ) } , focusGain : function ( a ) { this . onFocus . dispatch ( a ) , this . stage . disableVisibilityChange || this . gameResumed ( a ) } } , c . Game . prototype . constructor = c . Game , Object . defineProperty ( c . Game . prototype , "paused" , { get : function ( ) { return this . _paused } , set : function ( a ) { a === ! 0 ? ( this . _paused === ! 1 && ( this . _paused = ! 0 , this . sound . setMute ( ) , this . time . gamePaused ( ) , this . onPause . dispatch ( this ) ) , this . _codePaused = ! 0 ) : ( this . _paused && ( this . _paused = ! 1 , this . input . reset ( ) , this . sound . unsetMute ( ) , this . time . gameResumed ( ) , this . onResume . dispatch ( this ) ) , this . _codePaused = ! 1 ) } } ) , c . Input = function ( a ) { this . game = a , this . hitCanvas = null , this . hitContext = null , this . moveCallbacks = [ ] , this . customCandidateHandler = null , this . customCandidateHandlerContext = null , this . pollRate = 0 , this . enabled = ! 0 , this . multiInputOverride = c . Input . MOUSE _TOUCH _COMBINE , this . position = null , this . speed = null , this . circle = null , this . scale = null , this . maxPointers = - 1 , 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 . pointers = [ ] , 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 c . ArraySet , this . _localPoint = new c . Point , this . _pollCounter = 0 , this . _oldPosition = null , this . _x = 0 , this . _y = 0 } , c . Input . MOUSE _OVERRIDES _TOUCH = 0 , c . Input . TOUCH _OVERRIDES _MOUSE = 1 , c . Input . MOUSE _TOUCH _COMBINE = 2 , c . Input . MAX _POINTERS = 10 , c . Input . prototype = { boot : function ( ) { this . mousePointer = new c . Pointer ( this . game , 0 , c . PointerMode . CURSOR ) , this . addPointer ( ) , this . addPointer ( ) , this . mouse = new c . Mouse ( this . game ) , this . touch = new c . Touch ( this . game ) , this . mspointer = new c . MSPointer ( this . game ) , c . Keyboard && ( this . keyboard = new c . Keyboard ( this . game ) ) , c . Gamepad && ( this . gamepad = new c . Gamepad ( this . game ) ) , this . onDown = new c . Signal , this . onUp = new c . Signal , this . onTap = new c . Signal , this . onHold = new c . Signal , this . scale = new c . Point ( 1 , 1 ) , this . speed = new c . Point , this . position = new c . Point , this . _oldPosition = new c . Point , this . circle = new c . Circle ( 0 , 0 , 44 ) , this . activePointer = this . mousePointer , this . hitCanvas = PIXI . CanvasPool . create ( this , 1 , 1 ) , this . hitContext = this . hitCanvas . getContext ( "2d" ) , this . mouse . start ( ) , this . touch . start ( ) , this . mspointer . start ( ) , this . mousePointer . active = ! 0 , this . keyboard && this . keyboard . start ( ) ; var a = this ; this . _onClickTrampoline = function ( b ) { a . onClickTrampoline ( b ) } , this . game . canvas . addEventListener ( "click" , this . _onClickTrampoline , ! 1 ) } , destroy : function ( ) { this . mouse . stop ( ) , this . touch . stop ( ) , this . mspointer . stop ( ) , this . keyboard && this . keyboard . stop ( ) , this . gamepad && this . gamepad . stop ( ) , this . moveCallbacks = [ ] , PIXI . CanvasPool . remove ( this ) , this . game . canvas . removeEventListener ( "click" , this . _onClickTrampoline ) } , setInteractiveCandidateHandler : function ( a , b ) { this . customCandidateHandler = a , this . customCandidateHandlerContext = b
this . touchCancelCallback = null , this . preventDefault = ! 0 , this . event = null , this . _onTouchStart = null , this . _onTouchMove = null , this . _onTouchEnd = null , this . _onTouchEnter = null , this . _onTouchLeave = null , this . _onTouchCancel = null , this . _onTouchMove = null } , c . Touch . prototype = { start : function ( ) { if ( null === this . _onTouchStart ) { var a = this ; this . game . device . touch && ( this . _onTouchStart = function ( b ) { return a . onTouchStart ( b ) } , this . _onTouchMove = function ( b ) { return a . onTouchMove ( b ) } , this . _onTouchEnd = function ( b ) { return a . onTouchEnd ( b ) } , this . _onTouchEnter = function ( b ) { return a . onTouchEnter ( b ) } , this . _onTouchLeave = function ( b ) { return a . onTouchLeave ( b ) } , this . _onTouchCancel = function ( b ) { return a . onTouchCancel ( b ) } , this . game . canvas . addEventListener ( "touchstart" , this . _onTouchStart , ! 1 ) , this . game . canvas . addEventListener ( "touchmove" , this . _onTouchMove , ! 1 ) , this . game . canvas . addEventListener ( "touchend" , this . _onTouchEnd , ! 1 ) , this . game . canvas . addEventListener ( "touchcancel" , this . _onTouchCancel , ! 1 ) , this . game . device . cocoonJS || ( this . game . canvas . addEventListener ( "touchenter" , this . _onTouchEnter , ! 1 ) , this . game . canvas . addEventListener ( "touchleave" , this . _onTouchLeave , ! 1 ) ) ) } } , consumeDocumentTouches : function ( ) { this . _documentTouchMove = function ( a ) { a . preventDefault ( ) } , document . addEventListener ( "touchmove" , this . _documentTouchMove , ! 1 ) } , addTouchLockCallback : function ( a , b , c ) { void 0 === c && ( c = ! 1 ) , this . touchLockCallbacks . push ( { callback : a , context : b , onEnd : c } ) } , removeTouchLockCallback : function ( a , b ) { for ( var c = this . touchLockCallbacks . length ; c -- ; ) if ( this . touchLockCallbacks [ c ] . callback === a && this . touchLockCallbacks [ c ] . context === b ) return this . touchLockCallbacks . splice ( c , 1 ) , ! 0 ; return ! 1 } , onTouchStart : function ( a ) { for ( var b = this . touchLockCallbacks . length ; b -- ; ) { var c = this . touchLockCallbacks [ b ] ; ! c . onEnd && c . callback . call ( c . context , this , a ) && this . touchLockCallbacks . splice ( b , 1 ) } if ( this . event = a , this . game . input . enabled && this . enabled ) { this . touchStartCallback && this . touchStartCallback . call ( this . callbackContext , a ) , this . preventDefault && a . preventDefault ( ) ; for ( var b = 0 ; b < a . changedTouches . length ; b ++ ) this . game . input . startPointer ( a . changedTouches [ b ] ) } } , onTouchCancel : function ( a ) { if ( this . event = a , this . touchCancelCallback && this . touchCancelCallback . call ( this . callbackContext , a ) , this . game . input . enabled && this . enabled ) { this . preventDefault && a . preventDefault ( ) ; for ( var b = 0 ; b < a . changedTouches . length ; b ++ ) this . game . input . stopPointer ( a . changedTouches [ b ] ) } } , onTouchEnter : function ( a ) { this . event = a , this . touchEnterCallback && this . touchEnterCallback . call ( this . callbackContext , a ) , this . game . input . enabled && this . enabled && this . preventDefault && a . preventDefault ( ) } , onTouchLeave : function ( a ) { this . event = a , this . touchLeaveCallback && this . touchLeaveCallback . call ( this . callbackContext , a ) , this . preventDefault && a . preventDefault ( ) } , onTouchMove : function ( a ) { this . event = a , this . touchMoveCallback && this . touchMoveCallback . call ( this . callbackContext , a ) , this . preventDefault && a . preventDefault ( ) ; for ( var b = 0 ; b < a . changedTouches . length ; b ++ ) this . game . input . updatePointer ( a . changedTouches [ b ] ) } , onTouchEnd : function ( a ) { for ( var b = this . touchLockCallbacks . length ; b -- ; ) { var c = this . touchLockCallbacks [ b ] ; c . onEnd && c . callback . call ( c . context , this , a ) && this . touchLockCallbacks . splice ( b , 1 ) } this . event = a , this . touchEndCallback && this . touchEndCallback . call ( this . callbackContext , a ) , this . preventDefault && a . preventDefault ( ) ; 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 ) ) } } , c . Touch . prototype . constructor = c . Touch , c . InputHandler = function ( a ) { this . sprite = a , this . game = a . game , this . enabled = ! 1 , this . checked = ! 1 , this . priorityID = 0 , this . useHandCursor = ! 1 , this . _setHandCursor = ! 1 , this . isDragged = ! 1 , this . allowHorizontalDrag = ! 0 , this . allowVerticalDrag = ! 0 , th
this . customRender = ! 0 ; var h = a . texture . valid ; this . setTexture ( a . texture ) , this . setFrame ( a . texture . frame . clone ( ) ) , a . onChangeSource . add ( this . resizeFrame , this ) , this . texture . valid = h } else if ( c . Tilemap && a instanceof c . TilemapLayer ) this . setTexture ( PIXI . Texture . fromCanvas ( a . canvas ) ) ; else if ( a instanceof PIXI . Texture ) this . setTexture ( a ) ; else { var i = e . getImage ( a , ! 0 ) ; this . key = i . key , this . setTexture ( new PIXI . Texture ( i . base ) ) , "__default" === a ? this . texture . baseTexture . skipRender = ! 0 : this . texture . baseTexture . skipRender = ! 1 , f = ! this . animations . loadFrameData ( i . frameData , b ) } f && ( this . _frame = c . Rectangle . clone ( this . texture . frame ) ) , g || ( this . texture . baseTexture . scaleMode = 1 ) } , setFrame : function ( a ) { this . _frame = a , this . texture . frame . x = a . x , this . texture . frame . y = a . y , this . texture . frame . width = a . width , this . texture . frame . height = a . height , this . texture . crop . x = a . x , this . texture . crop . y = a . y , this . texture . crop . width = a . width , this . texture . crop . height = a . height , a . trimmed ? ( this . texture . trim ? ( this . texture . trim . x = a . spriteSourceSizeX , this . texture . trim . y = a . spriteSourceSizeY , this . texture . trim . width = a . sourceSizeW , this . texture . trim . height = a . sourceSizeH ) : this . texture . trim = { x : a . spriteSourceSizeX , y : a . spriteSourceSizeY , width : a . sourceSizeW , height : a . sourceSizeH } , this . texture . width = a . sourceSizeW , this . texture . height = a . sourceSizeH , this . texture . frame . width = a . sourceSizeW , this . texture . frame . height = a . sourceSizeH ) : ! a . trimmed && this . texture . trim && ( this . texture . trim = null ) , this . cropRect && this . updateCrop ( ) , this . texture . requiresReTint = ! 0 , this . texture . _updateUvs ( ) , this . tilingTexture && ( this . refreshTexture = ! 0 ) } , resizeFrame : function ( a , b , c ) { this . texture . frame . resize ( b , c ) , this . texture . setFrame ( this . texture . frame ) } , resetFrame : function ( ) { this . _frame && this . setFrame ( this . _frame ) } , frame : { get : function ( ) { return this . animations . frame } , set : function ( a ) { this . animations . frame = a } } , frameName : { get : function ( ) { return this . animations . frameName } , set : function ( a ) { this . animations . frameName = a } } } , c . Component . Overlap = function ( ) { } , c . Component . Overlap . prototype = { overlap : function ( a ) { return c . Rectangle . intersects ( this . getBounds ( ) , a . getBounds ( ) ) } } , c . Component . PhysicsBody = function ( ) { } , c . Component . PhysicsBody . preUpdate = function ( ) { return this . fresh && this . exists ? ( this . world . setTo ( this . parent . position . x + this . position . x , this . parent . position . y + this . position . y ) , this . worldTransform . tx = this . world . x , this . worldTransform . ty = this . world . y , this . previousPosition . set ( this . world . x , this . world . y ) , this . previousRotation = this . rotation , this . body && this . body . preUpdate ( ) , this . fresh = ! 1 , ! 1 ) : ( this . previousPosition . set ( this . world . x , this . world . y ) , this . previousRotation = this . rotation , this . _exists && this . parent . exists ? ! 0 : ( this . renderOrderID = - 1 , ! 1 ) ) } , c . Component . PhysicsBody . postUpdate = function ( ) { this . exists && this . body && this . body . postUpdate ( ) } , c . Component . PhysicsBody . prototype = { body : null , x : { get : function ( ) { return this . position . x } , set : function ( a ) { this . position . x = a , this . body && ! this . body . dirty && ( this . body . _reset = ! 0 ) } } , y : { get : function ( ) { return this . position . y } , set : function ( a ) { this . position . y = a , this . body && ! this . body . dirty && ( this . body . _reset = ! 0 ) } } } , c . Component . Reset = function ( ) { } , c . Component . Reset . prototype . reset = function ( a , b , c ) { return void 0 === c && ( c = 1 ) , this . world . set ( a , b ) , this . position . set ( a , b ) , this . fresh = ! 0 , this . exists = ! 0 , this . visible = ! 0 , this . renderable = ! 0 , this . components . InWorld && ( this . _outOfBoundsFired = ! 1 ) , this . components . LifeSpan && ( this . alive = ! 0 , this . health = c ) , this . components . PhysicsBody && this . body && this . body . reset ( a , b , ! 1 , ! 1 ) , this } , c . Component . ScaleMinMax = function ( ) { } , c . Component . ScaleMinMax . prototype = { transformCallback : null , transformCallbackContext : this , scaleMin : null , scaleMax : null , checkTransform : function ( a ) { this . scaleMin && ( a . a < this . scaleMin . x && ( a . a = this . scaleMin . x ) , a . d < this . scaleMin . y && ( a . d = this . scaleMin . y ) ) , this . scaleMax && ( a . a > this . scaleMax . x && ( a . a = this . scaleMax . x ) , a . d > this . scaleMax . y && ( a . d = this . scaleMax . y ) ) } , setScaleMinMax : function ( a , b , d , e ) { void 0 === b ? b = d = e = a : void 0 === d && ( d = e = b , b = a ) , null === a ? this . scaleMin = null : this . scaleMin ? this . scaleMin . set ( a , b ) : this . scaleMin = new c . Point ( a , b ) , null === d ? this . scaleMax = null : this . scaleMax ? this . scaleMax . set ( d , e ) : this . scaleMax = new c . Point ( d , e ) , null ===
} , factorial : function ( a ) { if ( 0 === a ) return 1 ; for ( var b = a ; -- a ; ) b *= a ; return b } , catmullRom : function ( a , b , c , d , e ) { var f = . 5 * ( c - a ) , g = . 5 * ( d - b ) , h = e * e , i = e * h ; return ( 2 * b - 2 * c + f + g ) * i + ( - 3 * b + 3 * c - 2 * f - g ) * h + f * e + b } , difference : function ( a , b ) { return Math . abs ( a - b ) } , roundAwayFromZero : function ( a ) { return a > 0 ? Math . ceil ( a ) : Math . floor ( a ) } , sinCosGenerator : function ( a , b , c , d ) { void 0 === b && ( b = 1 ) , void 0 === c && ( c = 1 ) , void 0 === d && ( d = 1 ) ; for ( var e = b , f = c , g = d * Math . PI / a , h = [ ] , i = [ ] , j = 0 ; a > j ; j ++ ) f -= e * g , e += f * g , h [ j ] = f , i [ j ] = e ; return { sin : i , cos : h , length : a } } , distance : function ( a , b , c , d ) { var e = a - c , f = b - d ; return Math . sqrt ( e * e + f * f ) } , distanceSq : function ( a , b , c , d ) { var e = a - c , f = b - d ; return e * e + f * f } , distancePow : function ( a , b , c , d , e ) { return void 0 === e && ( e = 2 ) , Math . sqrt ( Math . pow ( c - a , e ) + Math . pow ( d - b , e ) ) } , clamp : function ( a , b , c ) { return b > a ? b : a > c ? c : a } , clampBottom : function ( a , b ) { return b > a ? b : a } , within : function ( a , b , c ) { return Math . abs ( a - b ) <= c } , mapLinear : function ( a , b , c , d , e ) { return d + ( a - b ) * ( e - d ) / ( c - b ) } , smoothstep : function ( a , b , c ) { return a = Math . max ( 0 , Math . min ( 1 , ( a - b ) / ( c - b ) ) ) , a * a * ( 3 - 2 * a ) } , smootherstep : function ( a , b , c ) { return a = Math . max ( 0 , Math . min ( 1 , ( a - b ) / ( c - b ) ) ) , a * a * a * ( a * ( 6 * a - 15 ) + 10 ) } , sign : function ( a ) { return 0 > a ? - 1 : a > 0 ? 1 : 0 } , percent : function ( a , b , c ) { return void 0 === c && ( c = 0 ) , a > b || c > b ? 1 : c > a || c > a ? 0 : ( a - c ) / b } } ; var j = Math . PI / 180 , k = 180 / Math . PI ; c . Math . degToRad = function ( a ) { return a * j } , c . Math . radToDeg = function ( a ) { return a * k } , c . RandomDataGenerator = function ( a ) { void 0 === a && ( a = [ ] ) , this . c = 1 , this . s0 = 0 , this . s1 = 0 , this . s2 = 0 , "string" == typeof a ? this . state ( a ) : this . sow ( a ) } , c . RandomDataGenerator . prototype = { rnd : function ( ) { var a = 2091639 * this . s0 + 2.3283064365386963 e - 10 * this . c ; return this . c = 0 | a , this . s0 = this . s1 , this . s1 = this . s2 , this . s2 = a - this . c , this . s2 } , sow : function ( a ) { if ( this . s0 = this . hash ( " " ) , this . s1 = this . hash ( this . s0 ) , this . s2 = this . hash ( this . s1 ) , this . c = 1 , a ) for ( var b = 0 ; b < a . length && null != a [ b ] ; b ++ ) { var c = a [ b ] ; this . s0 -= this . hash ( c ) , this . s0 += ~ ~ ( this . s0 < 0 ) , this . s1 -= this . hash ( c ) , this . s1 += ~ ~ ( this . s1 < 0 ) , this . s2 -= this . hash ( c ) , this . s2 += ~ ~ ( this . s2 < 0 ) } } , hash : function ( a ) { var b , c , d ; for ( d = 4022871197 , a = a . toString ( ) , c = 0 ; c < a . length ; c ++ ) d += a . charCodeAt ( c ) , b = . 02519603282416938 * d , d = b >>> 0 , b -= d , b *= d , d = b >>> 0 , b -= d , d += 4294967296 * b ; return 2.3283064365386963 e - 10 * ( d >>> 0 ) } , integer : function ( ) { return 4294967296 * this . rnd . apply ( this ) } , frac : function ( ) { return this . rnd . apply ( this ) + 1.1102230246251565 e - 16 * ( 2097152 * this . rnd . apply ( this ) | 0 ) } , real : function ( ) { return this . integer ( ) + this . frac ( ) } , integerInRange : function ( a , b ) { return Math . floor ( this . realInRange ( 0 , b - a + 1 ) + a ) } , between : function ( a , b ) { return this . integerInRange ( a , b ) } , realInRange : function ( a , b ) { return this . frac ( ) * ( b - a ) + a } , normal : function ( ) { return 1 - 2 * this . frac ( ) } , uuid : function ( ) { var a = "" , b = "" ; for ( b = a = "" ; a ++ < 36 ; b += ~ a % 5 | 3 * a & 4 ? ( 15 ^ a ? 8 ^ this . frac ( ) * ( 20 ^ a ? 16 : 4 ) : 4 ) . toString ( 16 ) : "-" ) ; return b } , pick : function ( a ) { return a [ this . integerInRange ( 0 , a . length - 1 ) ] } , sign : function ( ) { return this . pick ( [ - 1 , 1 ] ) } , weightedPick : function ( a ) { return a [ ~ ~ ( Math . pow ( this . frac ( ) , 2 ) * ( a . length - 1 ) + . 5 ) ] } , timestamp : function ( a , b ) { return this . realInRange ( a || 9466848e5 , b || 1577862e6 ) } , angle : function ( ) { return this . integerInRange ( - 180 , 180 ) } , state : function ( a ) { return "string" == typeof a && a . match ( /^!rnd/ ) && ( a = a . split ( "," ) , this . c = parseFloat ( a [ 1 ] ) , this . s0 = parseFloat ( a [ 2 ] ) , this . s1 = parseFloat ( a [ 3 ] ) , this . s2 = parseFloat ( a [ 4 ] ) ) , [ "!rnd" , this . c , this . s0 , this . s1 , this . s2 ] . join ( "," ) } } , c . RandomDataGenerator . prototype . constructor = c . RandomDataGenerator , c . QuadTree = function ( a , b , c , d , e , f , g ) { this . maxObjects = 10 , this . maxLevels = 4 , this . level = 0 , this . bounds = { } , this . objects = [ ] , this . nodes = [ ] , this . _empty = [ ] , this . reset ( a , b , c , d , e , f , g ) } , c . QuadTree . prototype = { reset : function ( a , b , c , d , e , f , g ) { this . maxObjects = e || 10 , this . maxLevels = f || 4 , this . level = g || 0 , this . bounds = { x : Math . round ( a ) , y : Math . round ( b ) , width : c , height : d , subWidth : Math . floor ( c / 2 ) , subHeight : Math . floor ( d / 2 ) , right : Math . round ( a ) + Math . floor ( c / 2 ) , bottom : Math . round ( b ) + Math . floor ( d / 2 ) } , this . objects . length = 0 , this . nodes . length = 0 } , populate : function ( a ) { a . forEach ( this . populateHandler , this , ! 0 ) } , populateHandler : function ( a ) { a . body && a . exists && this . insert ( a . body ) } , split : function ( ) { this . nodes [ 0 ] = new c . QuadTree ( this . bounds . right , this . bounds . y , this . bounds . subWidth , this . bounds . subHeight ,
c . Cache . IMAGE = 2 , c . Cache . TEXTURE = 3 , c . Cache . SOUND = 4 , c . Cache . TEXT = 5 , c . Cache . PHYSICS = 6 , c . Cache . TILEMAP = 7 , c . Cache . BINARY = 8 , c . Cache . BITMAPDATA = 9 , c . Cache . BITMAPFONT = 10 , c . Cache . JSON = 11 , c . Cache . XML = 12 , c . Cache . VIDEO = 13 , c . Cache . SHADER = 14 , c . Cache . RENDER _TEXTURE = 15 , c . Cache . prototype = { addCanvas : function ( a , b , c ) { void 0 === c && ( c = b . getContext ( "2d" ) ) , this . _cache . canvas [ a ] = { canvas : b , context : c } } , addImage : function ( a , b , d ) { this . checkImageKey ( a ) && this . removeImage ( a ) ; var e = { key : a , url : b , data : d , base : new PIXI . BaseTexture ( d ) , frame : new c . Frame ( 0 , 0 , 0 , d . width , d . height , a ) , frameData : new c . FrameData } ; return e . frameData . addFrame ( new c . Frame ( 0 , 0 , 0 , d . width , d . height , b ) ) , this . _cache . image [ a ] = e , this . _resolveURL ( b , e ) , e } , addDefaultImage : function ( ) { var a = new Image ; a . src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==" ; var b = this . addImage ( "__default" , null , a ) ; b . base . skipRender = ! 0 , PIXI . TextureCache . _ _default = new PIXI . Texture ( b . base ) } , addMissingImage : function ( ) { var a = new Image ; a . src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg==" ; var b = this . addImage ( "__missing" , null , a ) ; PIXI . TextureCache . _ _missing = new PIXI . Texture ( b . base ) } , addSound : function ( a , b , c , d , e ) { void 0 === d && ( d = ! 0 , e = ! 1 ) , void 0 === e && ( d = ! 1 , e = ! 0 ) ; var f = ! 1 ; e && ( f = ! 0 ) , this . _cache . sound [ a ] = { url : b , data : c , isDecoding : ! 1 , decoded : f , webAudio : d , audioTag : e , locked : this . game . sound . touchLocked } , this . _resolveURL ( b , this . _cache . sound [ a ] ) } , addText : function ( a , b , c ) { this . _cache . text [ a ] = { url : b , data : c } , this . _resolveURL ( b , this . _cache . text [ a ] ) } , addPhysicsData : function ( a , b , c , d ) { this . _cache . physics [ a ] = { url : b , data : c , format : d } , this . _resolveURL ( b , this . _cache . physics [ a ] ) } , addTilemap : function ( a , b , c , d ) { this . _cache . tilemap [ a ] = { url : b , data : c , format : d } , this . _resolveURL ( b , this . _cache . tilemap [ a ] ) } , addBinary : function ( a , b ) { this . _cache . binary [ a ] = b } , addBitmapData : function ( a , b , d ) { return b . key = a , void 0 === d && ( d = new c . FrameData , d . addFrame ( b . textureFrame ) ) , this . _cache . bitmapData [ a ] = { data : b , frameData : d } , b } , addBitmapFont : function ( a , b , d , e , f , g , h ) { var i = { url : b , data : d , font : null , base : new PIXI . BaseTexture ( d ) } ; void 0 === g && ( g = 0 ) , void 0 === h && ( h = 0 ) , "json" === f ? i . font = c . LoaderParser . jsonBitmapFont ( e , i . base , g , h ) : i . font = c . LoaderParser . xmlBitmapFont ( e , i . base , g , h ) , this . _cache . bitmapFont [ a ] = i , this . _resolveURL ( b , i ) } , addJSON : function ( a , b , c ) { this . _cache . json [ a ] = { url : b , data : c } , this . _resolveURL ( b , this . _cache . json [ a ] ) } , addXML : function ( a , b , c ) { this . _cache . xml [ a ] = { url : b , data : c } , this . _resolveURL ( b , this . _cache . xml [ a ] ) } , addVideo : function ( a , b , c , d ) { this . _cache . video [ a ] = { url : b , data : c , isBlob : d , locked : ! 0 } , this . _resolveURL ( b , this . _cache . video [ a ] ) } , addShader : function ( a , b , c ) { this . _cache . shader [ a ] = { url : b , data : c } , this . _resolveURL ( b , this . _cache . shader [ a ] ) } , addRenderTexture : function ( a , b ) { this . _cache . renderTexture [ a ] = { texture : b , frame : new c . Frame ( 0 , 0 , 0 , b . width , b . height , "" , "" ) } } , addSpriteSheet : function ( a , b , d , e , f , g , h , i ) { void 0 === g && ( g = - 1 ) , void 0 === h && ( h = 0 ) , void 0 === i && ( i = 0 ) ; var j = { key : a , url : b , data : d , frameWidth : e , frameHeight : f , margin : h , spacing : i , base : new PIXI . BaseTexture ( d ) , frameData : c . AnimationParser . spriteSheet ( this . game , d , e , f , g , h , i ) } ; this . _cache . image [ a ] = j , this . _resolveURL ( b , j ) } , addTextureAtlas : function ( a , b , d , e , f ) { var g = { key : a , url : b , data : d , base : new PIXI . BaseTexture ( d ) } ; f === c . Loader . TEXTURE _ATLAS _XML _STARLING ? g . frameData = c . AnimationParser . XMLData ( this . game , e , a ) : f === c . Loader . TEXTURE _ATLAS _JSON _PYXEL ? g . frameData = c . AnimationParser . JSONDataPyxel ( this . game , e , a ) : Array . isArray ( e . frames ) ? g . frameData = c . AnimationParser . JSONData ( this . game , e , a ) : g . frameData = c . AnimationParser . JSONDataHash ( this . game , e , a ) , this . _cache . image [ a ] = g , this . _resolveURL ( b , g ) } , reloadSound : function ( a ) { var b = this , c = this . getSound ( a ) ; c && ( c . data . src = c . url , c . data . addEventListener ( "canplaythrough" , function ( ) { return b . reloadSoundCom
totalQueuedFiles : function ( ) { return this . _totalFileCount - this . _loadedFileCount } , totalLoadedPacks : function ( ) { return this . _totalPackCount } , totalQueuedPacks : function ( ) { return this . _totalPackCount - this . _loadedPackCount } } , Object . defineProperty ( c . Loader . prototype , "progressFloat" , { get : function ( ) { var a = this . _loadedFileCount / this . _totalFileCount * 100 ; return c . Math . clamp ( a || 0 , 0 , 100 ) } } ) , Object . defineProperty ( c . Loader . prototype , "progress" , { get : function ( ) { return Math . round ( this . progressFloat ) } } ) , c . Loader . prototype . constructor = c . Loader , c . LoaderParser = { bitmapFont : function ( a , b , c , d ) { return this . xmlBitmapFont ( a , b , c , d ) } , xmlBitmapFont : function ( a , b , c , d ) { var e = { } , f = a . getElementsByTagName ( "info" ) [ 0 ] , g = a . getElementsByTagName ( "common" ) [ 0 ] ; e . font = f . getAttribute ( "face" ) , e . size = parseInt ( f . getAttribute ( "size" ) , 10 ) , e . lineHeight = parseInt ( g . getAttribute ( "lineHeight" ) , 10 ) + d , e . chars = { } ; for ( var h = a . getElementsByTagName ( "char" ) , i = 0 ; i < h . length ; i ++ ) { var j = parseInt ( h [ i ] . getAttribute ( "id" ) , 10 ) ; e . chars [ j ] = { x : parseInt ( h [ i ] . getAttribute ( "x" ) , 10 ) , y : parseInt ( h [ i ] . getAttribute ( "y" ) , 10 ) , width : parseInt ( h [ i ] . getAttribute ( "width" ) , 10 ) , height : parseInt ( h [ i ] . getAttribute ( "height" ) , 10 ) , xOffset : parseInt ( h [ i ] . getAttribute ( "xoffset" ) , 10 ) , yOffset : parseInt ( h [ i ] . getAttribute ( "yoffset" ) , 10 ) , xAdvance : parseInt ( h [ i ] . getAttribute ( "xadvance" ) , 10 ) + c , kerning : { } } } var k = a . getElementsByTagName ( "kerning" ) ; for ( i = 0 ; i < k . length ; i ++ ) { var l = parseInt ( k [ i ] . getAttribute ( "first" ) , 10 ) , m = parseInt ( k [ i ] . getAttribute ( "second" ) , 10 ) , n = parseInt ( k [ i ] . getAttribute ( "amount" ) , 10 ) ; e . chars [ m ] . kerning [ l ] = n } return this . finalizeBitmapFont ( b , e ) } , jsonBitmapFont : function ( a , b , c , d ) { var e = { font : a . font . info . _face , size : parseInt ( a . font . info . _size , 10 ) , lineHeight : parseInt ( a . font . common . _lineHeight , 10 ) + d , chars : { } } ; return a . font . chars [ "char" ] . forEach ( function ( a ) { var b = parseInt ( a . _id , 10 ) ; e . chars [ b ] = { x : parseInt ( a . _x , 10 ) , y : parseInt ( a . _y , 10 ) , width : parseInt ( a . _width , 10 ) , height : parseInt ( a . _height , 10 ) , xOffset : parseInt ( a . _xoffset , 10 ) , yOffset : parseInt ( a . _yoffset , 10 ) , xAdvance : parseInt ( a . _xadvance , 10 ) + c , kerning : { } } } ) , a . font . kernings && a . font . kernings . kerning && a . font . kernings . kerning . forEach ( function ( a ) { e . chars [ a . _second ] . kerning [ a . _first ] = parseInt ( a . _amount , 10 ) } ) , this . finalizeBitmapFont ( b , e ) } , finalizeBitmapFont : function ( a , b ) { return Object . keys ( b . chars ) . forEach ( function ( d ) { var e = b . chars [ d ] ; e . texture = new PIXI . Texture ( a , new c . Rectangle ( e . x , e . y , e . width , e . height ) ) } ) , b } } , c . SoundManager = function ( ) { this . muteOnPause = ! 1 } , c . SoundManager . prototype . boot = function ( ) { } , c . SoundManager . prototype . update = function ( ) { } , c . SoundManager . prototype . destroy = function ( ) { } , c . SoundManager . prototype . setMute = function ( ) { } , c . SoundManager . prototype . unsetMute = function ( ) { } , c . SoundManager . prototype . constructor = c . SoundManager , c . ScaleManager = function ( a , b , d ) { this . game = a , this . dom = c . DOM , this . grid = null , this . width = 0 , this . height = 0 , this . minWidth = null , this . maxWidth = null , this . minHeight = null , this . maxHeight = null , this . offset = new c . Point , this . forceLandscape = ! 1 , this . forcePortrait = ! 1 , this . incorrectOrientation = ! 1 , this . _pageAlignHorizontally = ! 1 , this . _pageAlignVertically = ! 1 , this . onOrientationChange = new c . Signal , this . enterIncorrectOrientation = new c . Signal , this . leaveIncorrectOrientation = new c . Signal , this . fullScreenTarget = null , this . _createdFullScreenTarget = null , this . onFullScreenInit = new c . Signal , this . onFullScreenChange = new c . Signal , this . onFullScreenError = new c . Signal , this . screenOrientation = this . dom . getScreenOrientation ( ) , this . scaleFactor = new c . Point ( 1 , 1 ) , this . scaleFactorInversed = new c . Point ( 1 , 1 ) , this . margin = { left : 0 , top : 0 , right : 0 , bottom : 0 , x : 0 , y : 0 } , this . bounds = new c . Rectangle , this . aspectRatio = 0 , this . sourceAspectRatio = 0 , this . event = null , this . windowConstraints = { right : "layout" , bottom : "" } , this . compatibility = { supportsFullScreen : ! 1 , orientationFallback : null , noMargins : ! 1 , scrollTo : null , forceMinimumDocumentHeight : ! 1 , canExpandParent : ! 0 , clickTrampoline : "" } , this . _scaleMode = c . ScaleManager . NO _SCALE , this . _fullScreenScaleMode = c . ScaleManager . NO _SCALE , this . parentIsWindow = ! 1 , this . parentNode = null , this . parentScaleFactor = new c . Point ( 1 , 1 ) , this . trackParentInterval = 2e3 , this . onSizeChange = new c . Signal , this . onResize = null , this . onResizeCo
this . positionCustom = new c . Point ( 0 , 0 ) , this . positionFluid = new c . Point ( 0 , 0 ) , this . positionFull = new c . Point ( 0 , 0 ) , this . positionNone = new c . Point ( 0 , 0 ) , this . scaleCustom = new c . Point ( 1 , 1 ) , this . scaleFluid = new c . Point ( 1 , 1 ) , this . scaleFluidInversed = new c . Point ( 1 , 1 ) , this . scaleFull = new c . Point ( 1 , 1 ) , this . scaleNone = new c . Point ( 1 , 1 ) , this . customWidth = 0 , this . customHeight = 0 , this . customOffsetX = 0 , this . customOffsetY = 0 , this . ratioH = b / d , this . ratioV = d / b , this . multiplier = 0 , this . layers = [ ] } , c . FlexGrid . prototype = { setSize : function ( a , b ) { this . width = a , this . height = b , this . ratioH = a / b , this . ratioV = b / a , this . scaleNone = new c . Point ( 1 , 1 ) , this . boundsNone . width = this . width , this . boundsNone . height = this . height , this . refresh ( ) } , createCustomLayer : function ( a , b , d , e ) { void 0 === e && ( e = ! 0 ) , this . customWidth = a , this . customHeight = b , this . boundsCustom . width = a , this . boundsCustom . height = b ; var f = new c . FlexLayer ( this , this . positionCustom , this . boundsCustom , this . scaleCustom ) ; return e && this . game . world . add ( f ) , this . layers . push ( f ) , "undefined" != typeof d && null !== typeof d && f . addMultiple ( d ) , f } , createFluidLayer : function ( a , b ) { void 0 === b && ( b = ! 0 ) ; var d = new c . FlexLayer ( this , this . positionFluid , this . boundsFluid , this . scaleFluid ) ; return b && this . game . world . add ( d ) , this . layers . push ( d ) , "undefined" != typeof a && null !== typeof a && d . addMultiple ( a ) , d } , createFullLayer : function ( a ) { var b = new c . FlexLayer ( this , this . positionFull , this . boundsFull , this . scaleFluid ) ; return this . game . world . add ( b ) , this . layers . push ( b ) , "undefined" != typeof a && b . addMultiple ( a ) , b } , createFixedLayer : function ( a ) { var b = new c . FlexLayer ( this , this . positionNone , this . boundsNone , this . scaleNone ) ; return this . game . world . add ( b ) , this . layers . push ( b ) , "undefined" != typeof a && b . addMultiple ( a ) , b } , reset : function ( ) { for ( var a = this . layers . length ; a -- ; ) this . layers [ a ] . persist || ( this . layers [ a ] . position = null , this . layers [ a ] . scale = null , this . layers . slice ( a , 1 ) ) } , onResize : function ( a , b ) { this . ratioH = a / b , this . ratioV = b / a , this . refresh ( a , b ) } , refresh : function ( ) { this . multiplier = Math . min ( this . manager . height / this . height , this . manager . width / this . width ) , this . boundsFluid . width = Math . round ( this . width * this . multiplier ) , this . boundsFluid . height = Math . round ( this . height * this . multiplier ) , this . scaleFluid . set ( this . boundsFluid . width / this . width , this . boundsFluid . height / this . height ) , this . scaleFluidInversed . set ( this . width / this . boundsFluid . width , this . height / this . boundsFluid . height ) , this . scaleFull . set ( this . boundsFull . width / this . width , this . boundsFull . height / this . height ) , this . boundsFull . width = Math . round ( this . manager . width * this . scaleFluidInversed . x ) , this . boundsFull . height = Math . round ( this . manager . height * this . scaleFluidInversed . y ) , this . boundsFluid . centerOn ( this . manager . bounds . centerX , this . manager . bounds . centerY ) , this . boundsNone . centerOn ( this . manager . bounds . centerX , this . manager . bounds . centerY ) , this . positionFluid . set ( this . boundsFluid . x , this . boundsFluid . y ) , this . positionNone . set ( this . boundsNone . x , this . boundsNone . y ) } , fitSprite : function ( a ) { this . manager . scaleSprite ( a ) , a . x = this . manager . bounds . centerX , a . y = this . manager . bounds . centerY } , debug : function ( ) { this . game . debug . text ( this . boundsFluid . width + " x " + this . boundsFluid . height , this . boundsFluid . x + 4 , this . boundsFluid . y + 16 ) , this . game . debug . geom ( this . boundsFluid , "rgba(255,0,0,0.9" , ! 1 ) } } , c . FlexGrid . prototype . constructor = c . FlexGrid , c . FlexLayer = function ( a , b , d , e ) { c . Group . call ( this , a . game , null , "__flexLayer" + a . game . rnd . uuid ( ) , ! 1 ) , this . manager = a . manager , this . grid = a , this . persist = ! 1 , this . position = b , this . bounds = d , this . scale = e , this . topLeft = d . topLeft , this . topMiddle = new c . Point ( d . halfWidth , 0 ) , this . topRight = d . topRight , this . bottomLeft = d . bottomLeft , this . bottomMiddle = new c . Point ( d . halfWidth , d . bottom ) , this . bottomRight = d . bottomRight } , c . FlexLayer . prototype = Object . create ( c . Group . prototype ) , c . FlexLayer . prototype . constructor = c . FlexLayer , c . FlexLayer . prototype . resize = function ( ) { } , c . FlexLayer . prototype . debug = function ( ) { this . game . debug . text ( this . bounds . width + " x " + this . bounds . height , this . bounds . x + 4 , this . bounds . y + 16 ) , this . game . debug . geom ( this . bounds , "rgba(0,0,255,0.9" , ! 1 ) , this . game . debug . geom ( this . topLeft , "rgba(255,255,255,0.9" ) , this . game . debug . geom ( this . topMiddle , "rgba(255,255,255,0.9" ) , this . game . debug . geom ( this . topRight , " rg
2015-02-25 02:59:00 +00:00
//# sourceMappingURL=phaser-minimum.map