2016-11-23 00:59:32 +00:00
/* Phaser v2.7.0 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */
2016-11-22 01:36:48 +00:00
2016-11-23 00:59:32 +00:00
( function ( ) { function a ( a , b , c , e ) { var f = a . createTexture ( ) ; return a . bindTexture ( a . TEXTURE _2D , f ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _WRAP _S , a . CLAMP _TO _EDGE ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _WRAP _T , a . CLAMP _TO _EDGE ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _MAG _FILTER , e === d . scaleModes . LINEAR ? a . LINEAR : a . NEAREST ) , a . texParameteri ( a . TEXTURE _2D , a . TEXTURE _MIN _FILTER , e === d . scaleModes . LINEAR ? a . LINEAR : a . NEAREST ) , a . texImage2D ( a . TEXTURE _2D , 0 , a . RGBA , b , c , 0 , a . RGBA , a . UNSIGNED _BYTE , null ) , f } function b ( b , c , d , f , g ) { var h = b . createFramebuffer ( ) , i = b . createRenderbuffer ( ) , j = null , k = 0 ; return b . activeTexture ( b . TEXTURE0 + g ) , b . bindFramebuffer ( b . FRAMEBUFFER , h ) , b . bindRenderbuffer ( b . RENDERBUFFER , i ) , b . framebufferRenderbuffer ( b . FRAMEBUFFER , b . DEPTH _STENCIL _ATTACHMENT , b . RENDERBUFFER , this . renderBuffer ) , j = a ( b , c , d , f ) , b . framebufferTexture2D ( b . FRAMEBUFFER , b . COLOR _ATTACHMENT0 , b . TEXTURE _2D , j , 0 ) , k = b . checkFramebufferStatus ( b . FRAMEBUFFER ) , k !== b . FRAMEBUFFER _COMPLETE && console . error ( "Incomplete GL framebuffer. " , e [ k ] ) , h . width = c , h . height = d , h . targetTexture = j , h . renderBuffer = i , h } var c = this , d = d || { } ; d . DisplayObject = function ( ) { this . position = new d . Point ( 0 , 0 ) , this . scale = new d . Point ( 1 , 1 ) , this . pivot = new d . Point ( 0 , 0 ) , this . rotation = 0 , this . alpha = 1 , this . visible = ! 0 , this . hitArea = null , this . renderable = ! 1 , this . parent = null , this . worldAlpha = 1 , this . worldTransform = new d . Matrix , this . worldPosition = new d . Point ( 0 , 0 ) , this . worldScale = new d . Point ( 1 , 1 ) , this . worldRotation = 0 , this . filterArea = null , this . _sr = 0 , this . _cr = 1 , this . _bounds = new d . Rectangle ( 0 , 0 , 0 , 0 ) , this . _currentBounds = null , this . _mask = null , this . _cacheAsBitmap = ! 1 , this . _cacheIsDirty = ! 1 } , d . DisplayObject . prototype . constructor = d . DisplayObject , d . 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 . worldTransform = null , this . filterArea = null , this . renderable = ! 1 , this . _bounds = null , this . _currentBounds = null , this . _mask = null , this . _destroyCachedSprite ( ) } , updateTransform : function ( a ) { if ( ! a && ! this . parent && ! this . game ) return this ; var b = this . parent ; a ? b = a : this . parent || ( b = this . game . world ) ; var c , d , e , f , g , h , i = b . worldTransform , j = this . worldTransform ; return this . rotation % Phaser . Math . PI2 ? ( this . rotation !== this . rotationCache && ( this . rotationCache = this . rotation , this . _sr = Math . sin ( this . rotation ) , this . _cr = Math . cos ( this . rotation ) ) , c = this . _cr * this . scale . x , d = this . _sr * this . scale . x , e = - this . _sr * this . scale . y , f = this . _cr * this . scale . y , g = this . position . x , h = this . position . y , ( this . pivot . x || this . pivot . y ) && ( g -= this . pivot . x * c + this . pivot . y * e , h -= this . pivot . x * d + this . pivot . y * f ) , j . a = c * i . a + d * i . c , j . b = c * i . b + d * i . d , j . c = e * i . a + f * i . c , j . d = e * i . b + f * i . d , j . tx = g * i . a + h * i . c + i . tx , j . ty = g * i . b + h * i . d + i . ty ) : ( c = this . scale . x , f = this . scale . y , g = this . position . x - this . pivot . x * c , h = this . position . y - this . pivot . y * f , j . a = c * i . a , j . b = c * i . b , j . c = f * i . c , j . d = f * i . d , j . tx = g * i . a + h * i . c + i . tx , j . ty = g * i . b + h * i . d + i . ty ) , this . worldAlpha = this . alpha * b . worldAlpha , this . worldPosition . set ( j . tx , j . ty ) , this . worldScale . set ( this . scale . x * Math . sqrt ( j . a * j . a + j . c * j . c ) , this . scale . y * Math . sqrt ( j . b * j . b + j . d * j . d ) ) , this . worldRotation = Math . atan2 ( - j . c , j . d ) , this . _currentBounds = null , this . transformCallback && this . transformCallback . call ( this . transformCallbackContext , j , i ) , this } , preUpdate : function ( ) { } , generateTexture : function ( a , b , c ) { var e = this . getLocalBounds ( ) , f = new Phaser . RenderTexture ( 0 | e . width , 0 | e . height , c , b , a ) ; return d . DisplayObject . _tempMatrix . tx = - e . x , d . DisplayObject . _tempMatrix . ty = - e . y , f . render ( this , d . DisplayObject . _tempMatrix ) , f } , updateCache : function ( ) { return this . _generateCachedSprite ( ) , this } , toGlobal : function ( a ) { return this . updateTransform ( ) , this . worldTransform . apply ( a ) } , toLocal : function ( a , b ) { return b && ( a = b . toGlobal ( a ) ) , this . updateTransform ( ) , this . worldTransform . applyInverse ( a ) } , _renderCachedSprite : function ( a ) { this . _cachedSprite . worldAlpha = this . worldAlpha , a . gl ? d . Sprite . prototype . _renderWebGL . call ( this . _cachedSprite , a ) : d . Sprite . prototype . _renderCanvas . call ( this . _cachedSprite , a ) } , _generateCachedSprite : function ( ) { this . _cacheAsBitmap = ! 1 ; var a = this . getLocalBounds ( ) ; if ( a . width = Math . max ( 1 , Math . ceil ( a . width ) ) , a . height = Math . max ( 1 , Math . ceil ( a . height ) ) , this . updateTransform ( )
this . vertexSrc = [ "attribute vec2 aVertexPosition;" , "uniform mat3 translationMatrix;" , "uniform vec2 projectionVector;" , "uniform vec2 offsetVector;" , "uniform vec3 tint;" , "uniform float alpha;" , "uniform vec3 color;" , "uniform float flipY;" , "varying vec4 vColor;" , "void main(void) {" , " vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);" , " v -= offsetVector.xyx;" , " gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);" , " vColor = vec4(color * alpha * tint, alpha);" , "}" ] , this . init ( ) } , d . ComplexPrimitiveShader . prototype . constructor = d . ComplexPrimitiveShader , d . ComplexPrimitiveShader . prototype . init = function ( ) { var a = this . gl , b = d . compileProgram ( a , this . vertexSrc , this . fragmentSrc ) ; a . useProgram ( b ) , this . projectionVector = a . getUniformLocation ( b , "projectionVector" ) , this . offsetVector = a . getUniformLocation ( b , "offsetVector" ) , this . tintColor = a . getUniformLocation ( b , "tint" ) , this . color = a . getUniformLocation ( b , "color" ) , this . flipY = a . getUniformLocation ( b , "flipY" ) , this . aVertexPosition = a . getAttribLocation ( b , "aVertexPosition" ) , this . attributes = [ this . aVertexPosition , this . colorAttribute ] , this . translationMatrix = a . getUniformLocation ( b , "translationMatrix" ) , this . alpha = a . getUniformLocation ( b , "alpha" ) , this . program = b } , d . ComplexPrimitiveShader . prototype . destroy = function ( ) { this . gl . deleteProgram ( this . program ) , this . uniforms = null , this . gl = null , this . attribute = null } , d . glContexts = [ ] , d . instances = [ ] , d . _enableMultiTextureToggle = ! 1 , d . WebGLRenderer = function ( a ) { this . game = a , d . defaultRenderer || ( d . defaultRenderer = this ) , this . extensions = { } , this . type = Phaser . WEBGL , this . resolution = a . resolution , this . transparent = a . transparent , this . autoResize = ! 1 , this . preserveDrawingBuffer = a . preserveDrawingBuffer , this . clearBeforeRender = a . clearBeforeRender , this . width = a . width , this . height = a . height , this . view = a . canvas , this . _contextOptions = { alpha : this . transparent , antialias : a . antialias , premultipliedAlpha : this . transparent && "notMultiplied" !== this . transparent , stencil : ! 0 , preserveDrawingBuffer : this . preserveDrawingBuffer } , this . projection = new d . Point , this . offset = new d . Point , this . shaderManager = new d . WebGLShaderManager , this . spriteBatch = new d . WebGLSpriteBatch ( a ) , this . maskManager = new d . WebGLMaskManager , this . filterManager = new d . WebGLFilterManager , this . stencilManager = new d . WebGLStencilManager , this . blendModeManager = new d . WebGLBlendModeManager , this . renderSession = { } , this . currentBatchedTextures = [ ] , 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 ( ) } , d . WebGLRenderer . prototype . constructor = d . WebGLRenderer , d . 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 . maxTextures = a . getParameter ( a . MAX _TEXTURE _IMAGE _UNITS ) , this . glContextId = a . id = d . WebGLRenderer . glContextId ++ , d . glContexts [ this . glContextId ] = a , d . 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 ) , this . extensions . compression = { } , etc1 = a . getExtension ( "WEBGL_compressed_texture_etc1" ) || a . getExtension ( "WEBKIT_WEBGL_compressed_texture_etc1" ) , pvrtc = a . getExtension ( "WEBGL_compressed_texture_pvrtc" ) || a . getExtension ( "WEBKIT_WEBGL_compressed_texture_pvrtc" ) , s3tc = a . getExtension ( "WEBGL_compressed_texture_s3tc" ) || a . getExtension ( " WEBKIT _WEBGL _compre
if ( 0 === this . filterStack . length ) a . colorMask ( ! 0 , ! 0 , ! 0 , ! 0 ) ; else { var s = this . filterStack [ this . filterStack . length - 1 ] ; c = s . _filterArea , n = c . width , o = c . height , p = c . x , q = c . y , r = s . _glFilterTexture . frameBuffer } f . x = n / 2 , f . y = - o / 2 , g . x = p , g . y = q , c = b . _filterArea ; var t = c . x - p , u = c . y - q ; a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , this . vertexArray [ 0 ] = t , this . vertexArray [ 1 ] = u + c . height , this . vertexArray [ 2 ] = t + c . width , this . vertexArray [ 3 ] = u + c . height , this . vertexArray [ 4 ] = t , this . vertexArray [ 5 ] = u , this . vertexArray [ 6 ] = t + c . width , this . vertexArray [ 7 ] = u , a . bufferSubData ( a . ARRAY _BUFFER , 0 , this . vertexArray ) , a . bindBuffer ( a . ARRAY _BUFFER , this . uvBuffer ) , this . uvArray [ 2 ] = c . width / this . width , this . uvArray [ 5 ] = c . height / this . height , this . uvArray [ 6 ] = c . width / this . width , this . uvArray [ 7 ] = c . height / this . height , a . bufferSubData ( a . ARRAY _BUFFER , 0 , this . uvArray ) , a . viewport ( 0 , 0 , n * this . renderSession . resolution , o * this . renderSession . resolution ) , a . bindFramebuffer ( a . FRAMEBUFFER , r ) , a . activeTexture ( a . TEXTURE0 ) , a . bindTexture ( a . TEXTURE _2D , e . texture ) , this . renderSession . stencilManager && this . renderSession . stencilManager . destroy ( ) , this . renderSession . stencilManager = b . _previous _stencil _mgr , b . _previous _stencil _mgr = null , this . renderSession . stencilManager . count > 0 ? a . enable ( a . STENCIL _TEST ) : a . disable ( a . STENCIL _TEST ) , this . applyFilterPass ( m , c , n , o ) , this . texturePool . push ( e ) , b . _glFilterTexture = null } , d . WebGLFilterManager . prototype . applyFilterPass = function ( a , b , c , e ) { var f = this . gl , g = a . shaders [ f . id ] ; g || ( g = new d . PixiShader ( f ) , g . fragmentSrc = a . fragmentSrc , g . uniforms = a . uniforms , g . init ( ! 0 ) , a . shaders [ f . id ] = g ) , this . renderSession . shaderManager . setShader ( g ) , f . uniform2f ( g . projectionVector , c / 2 , - e / 2 ) , f . uniform2f ( g . offsetVector , 0 , 0 ) , a . uniforms . dimensions && ( a . uniforms . dimensions . value [ 0 ] = this . width , a . uniforms . dimensions . value [ 1 ] = this . height , a . uniforms . dimensions . value [ 2 ] = this . vertexArray [ 0 ] , a . uniforms . dimensions . value [ 3 ] = this . vertexArray [ 5 ] ) , g . syncUniforms ( ) , f . bindBuffer ( f . ARRAY _BUFFER , this . vertexBuffer ) , f . vertexAttribPointer ( g . aVertexPosition , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . uvBuffer ) , f . vertexAttribPointer ( g . aTextureCoord , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ARRAY _BUFFER , this . colorBuffer ) , f . vertexAttribPointer ( g . colorAttribute , 2 , f . FLOAT , ! 1 , 0 , 0 ) , f . bindBuffer ( f . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , f . drawElements ( f . TRIANGLES , 6 , f . UNSIGNED _SHORT , 0 ) , this . renderSession . drawCount ++ } , d . WebGLFilterManager . prototype . initShaderBuffers = function ( ) { var a = this . gl ; this . vertexBuffer = a . createBuffer ( ) , this . uvBuffer = a . createBuffer ( ) , this . colorBuffer = a . createBuffer ( ) , this . indexBuffer = a . createBuffer ( ) , this . vertexArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . vertexBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . vertexArray , a . STATIC _DRAW ) , this . uvArray = new Float32Array ( [ 0 , 0 , 1 , 0 , 0 , 1 , 1 , 1 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . uvBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . uvArray , a . STATIC _DRAW ) , this . colorArray = new Float32Array ( [ 1 , 16777215 , 1 , 16777215 , 1 , 16777215 , 1 , 16777215 ] ) , a . bindBuffer ( a . ARRAY _BUFFER , this . colorBuffer ) , a . bufferData ( a . ARRAY _BUFFER , this . colorArray , a . STATIC _DRAW ) , a . bindBuffer ( a . ELEMENT _ARRAY _BUFFER , this . indexBuffer ) , a . bufferData ( a . ELEMENT _ARRAY _BUFFER , new Uint16Array ( [ 0 , 1 , 2 , 1 , 3 , 2 ] ) , a . STATIC _DRAW ) } , d . WebGLFilterManager . prototype . destroy = function ( ) { var a = this . gl ; this . filterStack = null , this . offsetX = 0 , this . offsetY = 0 ; for ( var b = 0 ; b < this . texturePool . length ; b ++ ) this . texturePool [ b ] . destroy ( ) ; this . texturePool = null , a . deleteBuffer ( this . vertexBuffer ) , a . deleteBuffer ( this . uvBuffer ) , a . deleteBuffer ( this . colorBuffer ) , a . deleteBuffer ( this . indexBuffer ) } ; var e = { 36054 : "Incomplete attachment" , 36055 : "Missing attachment" , 36057 : "Incomplete dimensions" , 36061 : "Framebuffer unsupported" } ; return d . FilterTexture = function ( a , c , e , f , g ) { g = "number" == typeof g ? g : 0 , this . gl = a , this . frameBuffer = b ( a , c , e , f || d . scaleModes . DEFAULT , g ) , this . texture = this . frameBuffer . targetTexture , this . width = c , this . height = e , this . renderBuffer = this . frameBuffer . renderBuffer } , d . FilterTexture . prototype . constructor = d . FilterTexture , d . FilterTexture . prototype . clear = function ( ) { var a = this . gl ; a . clearColor ( 0 , 0 , 0 , 0 ) , a . clear ( a . COLOR _BUFFER _BIT ) } , d . FilterTexture . prototype . resize = function ( a , b ) { if ( this . width !== a
this } , clone : function ( a ) { return void 0 === a || null === a ? a = new c . Point ( this . x , this . y ) : a . setTo ( this . x , this . y ) , a } , copyTo : function ( a ) { return a . x = this . x , a . y = this . y , a } , distance : function ( a , b ) { return c . Point . distance ( this , a , b ) } , equals : function ( a ) { return a . x === this . x && a . y === this . y } , angle : function ( a , b ) { return void 0 === b && ( b = ! 1 ) , b ? c . Math . radToDeg ( Math . atan2 ( a . y - this . y , a . x - this . x ) ) : Math . atan2 ( a . y - this . y , a . x - this . x ) } , rotate : function ( a , b , d , e , f ) { return c . Point . rotate ( this , a , b , d , e , f ) } , getMagnitude : function ( ) { return Math . sqrt ( this . x * this . x + this . y * this . y ) } , getMagnitudeSq : function ( ) { return this . x * this . x + this . y * this . y } , setMagnitude : function ( a ) { return this . normalize ( ) . multiply ( a , a ) } , normalize : function ( ) { if ( ! this . isZero ( ) ) { var a = this . getMagnitude ( ) ; this . x /= a , this . y /= a } return this } , isZero : function ( ) { return 0 === this . x && 0 === this . y } , dot : function ( a ) { return this . x * a . x + this . y * a . y } , cross : function ( a ) { return this . x * a . y - this . y * a . x } , perp : function ( ) { return this . setTo ( - this . y , this . x ) } , rperp : function ( ) { return this . setTo ( this . y , - this . x ) } , normalRightHand : function ( ) { return this . setTo ( this . y * - 1 , this . x ) } , floor : function ( ) { return this . setTo ( Math . floor ( this . x ) , Math . floor ( this . y ) ) } , ceil : function ( ) { return this . setTo ( Math . ceil ( this . x ) , Math . ceil ( this . y ) ) } , toString : function ( ) { return "[{Point (x=" + this . x + " y=" + this . y + ")}]" } } , c . Point . prototype . constructor = c . Point , c . Point . add = function ( a , b , d ) { return 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 ( a . y * - 1 , 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 ( d < 1 ) 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 ; e < d ; 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 . flattened = ! 1 , 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 . _po
null != d && ( this . context = d ) , this . _signal = a , e && ( this . _priority = e ) , f && f . length && ( this . _args = f ) } , c . SignalBinding . prototype = { context : null , _isOnce : ! 1 , _priority : 0 , _args : null , callCount : 0 , active : ! 0 , params : null , execute : function ( a ) { var b , c ; return this . active && this . _listener && ( c = this . params ? this . params . concat ( a ) : a , this . _args && ( c = c . concat ( this . _args ) ) , b = this . _listener . apply ( this . context , c ) , this . callCount ++ , this . _isOnce && this . detach ( ) ) , b } , detach : function ( ) { return this . isBound ( ) ? this . _signal . remove ( this . _listener , this . context ) : null } , isBound : function ( ) { return ! ! this . _signal && ! ! this . _listener } , isOnce : function ( ) { return this . _isOnce } , getListener : function ( ) { return this . _listener } , getSignal : function ( ) { return this . _signal } , _destroy : function ( ) { delete this . _signal , delete this . _listener , delete this . context } , toString : function ( ) { return "[Phaser.SignalBinding isOnce:" + this . _isOnce + ", isBound:" + this . isBound ( ) + ", active:" + this . active + "]" } } , c . SignalBinding . prototype . constructor = c . SignalBinding , c . Filter = function ( a , b , d ) { this . game = a , this . type = c . WEBGL _FILTER , this . passes = [ this ] , this . shaders = [ ] , this . dirty = ! 0 , this . padding = 0 , this . prevPoint = new c . Point ; var e = new Date ; if ( this . uniforms = { resolution : { type : "2f" , value : { x : 256 , y : 256 } } , time : { type : "1f" , value : 0 } , mouse : { type : "2f" , value : { x : 0 , y : 0 } } , date : { type : "4fv" , value : [ e . getFullYear ( ) , e . getMonth ( ) , e . getDate ( ) , 60 * e . getHours ( ) * 60 + 60 * e . getMinutes ( ) + e . getSeconds ( ) ] } , sampleRate : { type : "1f" , value : 44100 } , iChannel0 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel1 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel2 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } , iChannel3 : { type : "sampler2D" , value : null , textureData : { repeat : ! 0 } } } , b ) for ( var f in b ) this . uniforms [ f ] = b [ f ] ; "string" == typeof d && ( d = d . split ( "\n" ) ) , this . fragmentSrc = d || [ ] } , c . Filter . prototype = { init : function ( ) { } , setResolution : function ( a , b ) { this . uniforms . resolution . value . x = a , this . uniforms . resolution . value . y = b } , update : function ( a ) { if ( a ) { var b = a . x / this . game . width , c = 1 - a . y / this . game . height ; b === this . prevPoint . x && c === this . prevPoint . y || ( this . uniforms . mouse . value . x = b . toFixed ( 2 ) , this . uniforms . mouse . value . y = c . toFixed ( 2 ) , this . prevPoint . set ( b , c ) ) } this . uniforms . time . value = this . game . time . totalElapsedSeconds ( ) } , addToWorld : function ( a , b , c , d , e , f ) { void 0 === e && ( e = 0 ) , void 0 === f && ( f = 0 ) , 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 } , syncUniforms : function ( ) { for ( var a = 0 ; a < this . shaders . length ; a ++ ) this . shaders [ a ] . dirty = ! 0 } , destroy : function ( ) { this . passes . length = 0 , this . shaders . length = 0 , this . fragmentSrc . length = 0 , this . game = null , this . uniforms = null , this . prevPoint = 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 . act
this . create = new c . Create ( this ) , this . plugins = new c . PluginManager ( this ) , this . net = new c . Net ( this ) , this . time . boot ( ) , this . stage . boot ( ) , this . world . boot ( ) , this . scale . boot ( ) , this . input . boot ( ) , this . sound . boot ( ) , this . state . boot ( ) , this . config . enableDebug ? ( this . debug = new c . Utils . Debug ( this ) , this . debug . boot ( ) ) : this . debug = { preUpdate : function ( ) { } , update : function ( ) { } , reset : function ( ) { } } , this . showDebugHeader ( ) , this . isRunning = ! 0 , this . config && this . config . forceSetTimeOut ? this . raf = new c . RequestAnimationFrame ( this , this . config . forceSetTimeOut ) : this . raf = new c . RequestAnimationFrame ( this , ! 1 ) , this . _kickstart = ! 0 , window . focus && ( ! window . PhaserGlobal || window . PhaserGlobal && ! window . PhaserGlobal . stopFocus ) && window . focus ( ) , this . raf . start ( ) ) } , showDebugHeader : function ( ) { if ( ! window . PhaserGlobal || ! window . PhaserGlobal . hideBanner ) { var a = c . VERSION , b = "Canvas" , d = "HTML Audio" , e = 1 ; if ( this . renderType === c . WEBGL ? ( b = "WebGL" , e ++ ) : this . renderType === c . HEADLESS && ( b = "Headless" ) , this . device . webAudio && ( d = "WebAudio" , e ++ ) , this . device . chrome ) { for ( var f = [ "%c %c %c Phaser CE v" + a + " | Pixi.js | " + b + " | " + d + " %c %c %c http://phaser.io %c♥%c♥%c♥" , "background: #fb8cb3" , "background: #d44a52" , "color: #ffffff; background: #871905;" , "background: #d44a52" , "background: #fb8cb3" , "background: #ffffff" ] , g = 0 ; g < 3 ; g ++ ) g < e ? f . push ( "color: #ff2424; background: #fff" ) : f . push ( "color: #959595; background: #fff" ) ; console . log . apply ( console , f ) } else window . console && console . log ( "Phaser v" + a + " | Pixi.js | " + b + " | " + d + " | http://phaser.io" ) } } , setUpRenderer : function ( ) { if ( this . config . canvas ? this . canvas = this . config . canvas : this . canvas = c . Canvas . create ( this , this . width , this . height , this . config . canvasID , ! 0 ) , this . config . canvasStyle ? this . canvas . style = this . config . canvasStyle : this . canvas . style [ "-webkit-full-screen" ] = "width: 100%; height: 100%" , this . renderType === c . HEADLESS || this . renderType === c . CANVAS || this . renderType === c . AUTO && ! this . device . webGL ) { if ( ! this . device . canvas ) throw new Error ( "Phaser.Game - Cannot create Canvas or WebGL context, aborting." ) ; this . renderType = c . CANVAS , this . renderer = new PIXI . CanvasRenderer ( this ) , this . context = this . renderer . context } else ( this . multiTexture || this . renderType === c . WEBGL _MULTI ) && PIXI . enableMultiTexture ( ) , this . renderType = c . WEBGL , this . renderer = new PIXI . WebGLRenderer ( this ) , this . context = null , this . canvas . addEventListener ( "webglcontextlost" , this . contextLost . bind ( this ) , ! 1 ) , this . canvas . addEventListener ( "webglcontextrestored" , this . contextRestored . bind ( this ) , ! 1 ) ; this . device . cocoonJS && ( this . canvas . screencanvas = this . renderType === c . CANVAS ) , this . renderType !== c . HEADLESS && ( this . stage . smoothed = this . antialias , c . Canvas . addToDOM ( this . canvas , this . parent , ! 1 ) , c . Canvas . setTouchAction ( this . canvas ) ) } , contextLost : function ( a ) { a . preventDefault ( ) , this . renderer . contextLost = ! 0 } , contextRestored : function ( ) { this . renderer . initContext ( ) , this . cache . clearGLTextures ( ) , this . renderer . contextLost = ! 1 } , update : function ( a ) { if ( this . time . update ( a ) , this . _kickstart ) return this . updateLogic ( this . time . desiredFpsMult ) , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) , void ( this . _kickstart = ! 1 ) ; if ( this . _spiraling > 1 && ! this . forceSingleUpdate ) this . time . time > this . _nextFpsNotification && ( this . _nextFpsNotification = this . time . time + 1e4 , this . fpsProblemNotifier . dispatch ( ) ) , this . _deltaTime = 0 , this . _spiraling = 0 , this . updateRender ( this . time . slowMotion * this . time . desiredFps ) ; else { var b = 1e3 * this . time . slowMotion / this . time . desiredFps ; this . _deltaTime += Math . max ( Math . min ( 3 * b , this . time . elapsed ) , 0 ) ; var c = 0 ; for ( this . updatesThisFrame = Math . floor ( this . _deltaTime / b ) , this . forceSingleUpdate && ( this . updatesThisFrame = Math . min ( 1 , this . updatesThisFrame ) ) ; this . _deltaTime >= b && ( this . _deltaTime -= b , this . currentUpdateID = c , this . updateLogic ( this . time . desiredFpsMult ) , c ++ , ! this . forceSingleUpdate || 1 !== c ) ; ) this . time . refresh ( ) ; c > this . _lastCount ? this . _spiraling ++ : c < this . _lastCount && ( this . _spiraling = 0 ) , this . _lastCount = c , this . updateRender ( this . _deltaTime / b ) } } , updateLogic : function ( a ) { this . _paused || this . pendingStep ? ( this . scale . pauseUpdate ( ) , this . state . pauseUpdate ( ) , this . debug . preUpdate ( ) ) : ( this . stepping && ( this . pendingStep = ! 0 ) , this . scale . preUpdate ( ) , this . debug . preUpdate ( ) , this . camera . preUpd
this . position . setTo ( this . x , this . y ) , this . circle . x = this . x , this . circle . y = this . y , ( d . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || d . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || d . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === d . totalActivePointers ) && ( d . activePointer = this , d . x = this . x , d . y = this . y , d . position . setTo ( d . x , d . y ) , d . circle . x = d . x , d . circle . y = d . y ) , this . withinGame = this . game . scale . bounds . contains ( this . pageX , this . pageY ) , this . game . paused ) return this ; for ( var e = d . moveCallbacks . length ; e -- ; ) d . moveCallbacks [ e ] . callback . call ( d . moveCallbacks [ e ] . context , this , this . x , this . y , b ) ; return null !== this . targetObject && this . targetObject . isDragged === ! 0 ? this . targetObject . update ( this ) === ! 1 && ( this . targetObject = null ) : d . interactiveItems . total > 0 && this . processInteractiveObjects ( b ) , this } } , processInteractiveObjects : function ( a ) { var b = 0 , c = - 1 , d = null , e = this . game . input . interactiveItems . first ; for ( this . interactiveCandidates = [ ] ; e ; ) e . checked = ! 1 , e . validForInput ( c , b , ! 1 ) && ( e . checked = ! 0 , ( a && e . checkPointerDown ( this , ! 0 ) || ! a && e . checkPointerOver ( this , ! 0 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e , this . interactiveCandidates . push ( e ) ) ) , e = this . game . input . interactiveItems . next ; for ( e = this . game . input . interactiveItems . first ; e ; ) ! e . checked && e . validForInput ( c , b , ! 0 ) && ( a && e . checkPointerDown ( this , ! 1 ) || ! a && e . checkPointerOver ( this , ! 1 ) ) && ( b = e . sprite . renderOrderID , c = e . priorityID , d = e , this . interactiveCandidates . push ( e ) ) , e = this . game . input . interactiveItems . next ; return this . game . input . customCandidateHandler && ( d = this . game . input . customCandidateHandler . call ( this . game . input . customCandidateHandlerContext , this , this . interactiveCandidates , d ) ) , this . swapTarget ( d , ! 1 ) , null !== this . targetObject } , swapTarget : function ( a , b ) { void 0 === b && ( b = ! 1 ) , null === a ? this . targetObject && ( this . targetObject . _pointerOutHandler ( this , b ) , this . targetObject = null ) : null === this . targetObject ? ( this . targetObject = a , a . _pointerOverHandler ( this , b ) ) : this . targetObject === a ? a . update ( this ) === ! 1 && ( this . targetObject = null ) : ( this . targetObject . _pointerOutHandler ( this , b ) , this . targetObject = a , this . targetObject . _pointerOverHandler ( this , b ) ) } , leave : function ( a ) { this . withinGame = ! 1 , this . move ( a , ! 1 ) } , stop : function ( a ) { var b = this . game . input ; return this . _stateReset && this . withinGame ? void a . preventDefault ( ) : ( this . timeUp = this . game . time . time , ( b . multiInputOverride === c . Input . MOUSE _OVERRIDES _TOUCH || b . multiInputOverride === c . Input . MOUSE _TOUCH _COMBINE || b . multiInputOverride === c . Input . TOUCH _OVERRIDES _MOUSE && 0 === b . totalActivePointers ) && ( b . onUp . dispatch ( this , a ) , this . duration >= 0 && this . duration <= b . tapRate && ( this . timeUp - this . previousTapTime < b . doubleTapRate ? b . onTap . dispatch ( this , ! 0 ) : b . onTap . dispatch ( this , ! 1 ) , this . previousTapTime = this . timeUp ) ) , this . isMouse ? this . updateButtons ( a ) : ( this . isDown = ! 1 , this . isUp = ! 0 ) , this . id > 0 && ( this . active = ! 1 ) , this . withinGame = this . game . scale . bounds . contains ( a . pageX , a . pageY ) , this . pointerId = null , this . identifier = null , this . positionUp . setTo ( this . x , this . y ) , this . isMouse === ! 1 && b . currentPointers -- , b . interactiveItems . callAll ( "_releasedHandler" , this ) , this . _clickTrampolines && ( this . _trampolineTargetObject = this . targetObject ) , this . targetObject = null , this ) } , justPressed : function ( a ) { return a = a || this . game . input . justPressedRate , this . isDown === ! 0 && this . timeDown + a > this . game . time . time } , justReleased : function ( a ) { return a = a || this . game . input . justReleasedRate , this . isUp && this . timeUp + a > this . game . time . time } , addClickTrampoline : function ( a , b , c , d ) { if ( this . isDown ) { for ( var e = this . _clickTrampolines = this . _clickTrampolines || [ ] , f = 0 ; f < e . length ; f ++ ) if ( e [ f ] . name === a ) { e . splice ( f , 1 ) ; break } e . push ( { name : a , targetObject : this . targetObject , callback : b , callbackContext : c , callbackArgs : d } ) } } , processClickTrampolines : function ( ) { var a = this . _clickTrampolines ; if ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] ; c . targetObject === this . _trampolineTargetObject && c . callback . apply ( c . callbackContext , c . callbackArgs ) } this . _clickTrampolines = null , this . _trampolineTargetObject = null } } , reset : function ( ) { this . isMouse === ! 1 && ( this . active = ! 1 ) , this . pointerId = null , this . identifier = null , this . dirty = ! 1 , this . totalTouches = 0 , this . _holdSent = ! 1 , this . _history . length = 0 , this . _stateReset = ! 0 , this . resetButtons ( ) , this . targetObject && this . targetObject .
this . texture . frame . height = Math . min ( i , this . cropRect . height ) , this . texture . width = this . texture . frame . width , this . texture . height = this . texture . frame . height , this . texture . _updateUvs ( ) , 16777215 === this . tint || a === f && b === g && d === h && e === i || ( this . texture . requiresReTint = ! 0 ) } } } , c . Component . Delta = function ( ) { } , c . Component . Delta . prototype = { deltaX : { get : function ( ) { return this . world . x - this . previousPosition . x } } , deltaY : { get : function ( ) { return this . world . y - this . previousPosition . y } } , deltaZ : { get : function ( ) { return this . rotation - this . previousRotation } } } , c . Component . Destroy = function ( ) { } , c . Component . Destroy . prototype = { destroyPhase : ! 1 , destroy : function ( a , b ) { if ( null !== this . game && ! this . destroyPhase ) { void 0 === a && ( a = ! 0 ) , void 0 === b && ( b = ! 1 ) , this . destroyPhase = ! 0 , this . events && this . events . onDestroy$dispatch ( this ) , this . parent && ( this . parent instanceof c . Group ? this . parent . remove ( this ) : this . parent . removeChild ( this ) ) , this . input && this . input . destroy ( ) , this . animations && this . animations . destroy ( ) , this . body && this . body . destroy ( ) , this . events && this . events . destroy ( ) , this . game . tweens . removeFrom ( this ) ; var d = this . children . length ; if ( a ) for ( ; d -- ; ) this . children [ d ] . destroy ( a ) ; else for ( ; d -- ; ) this . removeChild ( this . children [ d ] ) ; this . _crop && ( this . _crop = null , this . cropRect = null ) , this . _frame && ( this . _frame = null ) , c . Video && this . key instanceof c . Video && this . key . onChangeSource . remove ( this . resizeFrame , this ) , c . BitmapText && this . _glyphs && ( this . _glyphs = [ ] ) , this . alive = ! 1 , this . exists = ! 1 , this . visible = ! 1 , this . filters = null , this . mask = null , this . game = null , this . data = { } , this . renderable = ! 1 , this . transformCallback && ( this . transformCallback = null , this . transformCallbackContext = null ) , this . hitArea = null , this . parent = null , this . stage = null , this . worldTransform = null , this . filterArea = null , this . _bounds = null , this . _currentBounds = null , this . _mask = null , this . _destroyCachedSprite ( ) , b && this . texture . destroy ( ! 0 ) , this . destroyPhase = ! 1 , this . pendingDestroy = ! 1 } } } , c . Events = function ( a ) { this . parent = a } , c . Events . prototype = { destroy : function ( ) { this . _parent = null , this . _onDestroy && this . _onDestroy . dispose ( ) , this . _onAddedToGroup && this . _onAddedToGroup . dispose ( ) , this . _onRemovedFromGroup && this . _onRemovedFromGroup . dispose ( ) , this . _onRemovedFromWorld && this . _onRemovedFromWorld . dispose ( ) , this . _onKilled && this . _onKilled . dispose ( ) , this . _onRevived && this . _onRevived . dispose ( ) , this . _onEnterBounds && this . _onEnterBounds . dispose ( ) , this . _onOutOfBounds && this . _onOutOfBounds . dispose ( ) , this . _onInputOver && this . _onInputOver . dispose ( ) , this . _onInputOut && this . _onInputOut . dispose ( ) , this . _onInputDown && this . _onInputDown . dispose ( ) , this . _onInputUp && this . _onInputUp . dispose ( ) , this . _onDragStart && this . _onDragStart . dispose ( ) , this . _onDragUpdate && this . _onDragUpdate . dispose ( ) , this . _onDragStop && this . _onDragStop . dispose ( ) , this . _onAnimationStart && this . _onAnimationStart . dispose ( ) , this . _onAnimationComplete && this . _onAnimationComplete . dispose ( ) , this . _onAnimationLoop && this . _onAnimationLoop . dispose ( ) } , onAddedToGroup : null , onRemovedFromGroup : null , onRemovedFromWorld : null , onDestroy : null , onKilled : null , onRevived : null , onOutOfBounds : null , onEnterBounds : null , onInputOver : null , onInputOut : null , onInputDown : null , onInputUp : null , onDragStart : null , onDragUpdate : null , onDragStop : null , onAnimationStart : null , onAnimationComplete : null , onAnimationLoop : null } , c . Events . prototype . constructor = c . Events ; for ( var e in c . Events . prototype ) c . Events . prototype . hasOwnProperty ( e ) && 0 === e . indexOf ( "on" ) && null === c . Events . prototype [ e ] && ! function ( a , b ) { "use strict" ; Object . defineProperty ( c . Events . prototype , a , { get : function ( ) { return this [ b ] || ( this [ b ] = new c . Signal ) } } ) , c . Events . prototype [ a + "$dispatch" ] = function ( ) { return this [ b ] ? this [ b ] . dispatch . apply ( this [ b ] , arguments ) : null } } ( e , "_" + e ) ; c . Component . FixedToCamera = function ( ) { } , c . Component . FixedToCamera . postUpdate = function ( ) { this . fixedToCamera && ( this . position . x = ( this . game . camera . view . x + this . cameraOffset . x ) / this . game . camera . scale . x , this . position . y = ( this . game . camera . view . y + this . cameraOffset . y ) / this . game . camera . scale . y ) } , c . Component . FixedToCamera . prototype = { _fixedToCamera : ! 1 , fixedToCamera : { get : function ( ) { return this . _fixedToCamera } , set : function ( a ) { a ? ( this . _fixedToCamera = ! 0 , this . cameraOffset . set ( this . x , this . y ) ) : this . _fixe
} function h ( ) { var a = document . createElement ( "video" ) , b = ! 1 ; try { ( b = ! ! a . canPlayType ) && ( a . canPlayType ( 'video/ogg; codecs="theora"' ) . replace ( /^no$/ , "" ) && ( n . oggVideo = ! 0 ) , a . canPlayType ( 'video/mp4; codecs="avc1.42E01E"' ) . replace ( /^no$/ , "" ) && ( n . h264Video = ! 0 , n . mp4Video = ! 0 ) , a . canPlayType ( 'video/webm; codecs="vp8, vorbis"' ) . replace ( /^no$/ , "" ) && ( n . webmVideo = ! 0 ) , a . canPlayType ( 'video/webm; codecs="vp9"' ) . replace ( /^no$/ , "" ) && ( n . vp9Video = ! 0 ) , a . canPlayType ( 'application/x-mpegURL; codecs="avc1.42E01E"' ) . replace ( /^no$/ , "" ) && ( n . hlsVideo = ! 0 ) ) } catch ( a ) { } } function i ( ) { n . audioData = ! ! window . Audio , n . webAudio = ! ( ! window . AudioContext && ! window . webkitAudioContext ) ; var a = document . createElement ( "audio" ) , b = ! 1 ; try { if ( ( b = ! ! a . canPlayType ) && ( a . canPlayType ( 'audio/ogg; codecs="vorbis"' ) . replace ( /^no$/ , "" ) && ( n . ogg = ! 0 ) , ( a . canPlayType ( 'audio/ogg; codecs="opus"' ) . replace ( /^no$/ , "" ) || a . canPlayType ( "audio/opus;" ) . replace ( /^no$/ , "" ) ) && ( n . opus = ! 0 ) , a . canPlayType ( "audio/mpeg;" ) . replace ( /^no$/ , "" ) && ( n . mp3 = ! 0 ) , a . canPlayType ( 'audio/wav; codecs="1"' ) . replace ( /^no$/ , "" ) && ( n . wav = ! 0 ) , ( a . canPlayType ( "audio/x-m4a;" ) || a . canPlayType ( "audio/aac;" ) . replace ( /^no$/ , "" ) ) && ( n . m4a = ! 0 ) , a . canPlayType ( 'audio/webm; codecs="vorbis"' ) . replace ( /^no$/ , "" ) && ( n . webm = ! 0 ) , "" !== a . canPlayType ( 'audio/mp4;codecs="ec-3"' ) ) ) if ( n . edge ) n . dolby = ! 0 ; else if ( n . safari && n . safariVersion >= 9 && /Mac OS X (\d+)_(\d+)/ . test ( navigator . userAgent ) ) { var c = parseInt ( RegExp . $1 , 10 ) , d = parseInt ( RegExp . $2 , 10 ) ; ( 10 === c && d >= 11 || c > 10 ) && ( n . dolby = ! 0 ) } } catch ( a ) { } } function j ( ) { 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 ] || 2712847316 !== c [ 0 ] && null } function k ( ) { if ( void 0 === Uint8ClampedArray ) return ! 1 ; var a = c . CanvasPool . create ( this , 1 , 1 ) , b = a . getContext ( "2d" ) ; if ( ! b ) return ! 1 ; var d = b . createImageData ( 1 , 1 ) ; return c . CanvasPool . remove ( this ) , d . data instanceof Uint8ClampedArray } function l ( ) { n . pixelRatio = window . devicePixelRatio || 1 , n . iPhone = navigator . userAgent . toLowerCase ( ) . indexOf ( "iphone" ) !== - 1 , n . iPhone4 = 2 === n . pixelRatio && n . iPhone , n . iPad = navigator . userAgent . toLowerCase ( ) . indexOf ( "ipad" ) !== - 1 , "undefined" != typeof Int8Array ? n . typedArray = ! 0 : n . typedArray = ! 1 , "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && "undefined" != typeof Uint32Array && ( n . littleEndian = j ( ) , n . LITTLE _ENDIAN = n . littleEndian ) , n . support32bit = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8ClampedArray && "undefined" != typeof Int32Array && null !== n . littleEndian && k ( ) , navigator . vibrate = navigator . vibrate || navigator . webkitVibrate || navigator . mozVibrate || navigator . msVibrate , navigator . vibrate && ( n . vibration = ! 0 ) } function m ( ) { 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 ) , n . css3D = void 0 !== a && a . length > 0 && "none" !== a } var n = this ; a ( ) , g ( ) , i ( ) , h ( ) , m ( ) , l ( ) , d ( ) , b ( ) , f ( ) , e ( ) } , c . Device . canPlayAudio = function ( a ) { return ! ( "mp3" !== a || ! this . mp3 ) || ( ! ( "ogg" !== a || ! this . ogg && ! this . opus ) || ( ! ( "m4a" !== a || ! this . m4a ) || ( ! ( "opus" !== a || ! this . opus ) || ( ! ( "wav" !== a || ! this . wav ) || ( ! ( "webm" !== a || ! this . webm ) || ! ( "mp4" !== a || ! this . dolby ) ) ) ) ) ) } , c . Device . canPlayVideo = function ( a ) { return ! ( "webm" !== a || ! this . webmVideo && ! this . vp9Video ) || ( ! ( "mp4" !== a || ! this . mp4Video && ! this . h264Video ) || ( ! ( "ogg" !== a && "ogv" !== a || ! this . oggVideo ) || ! ( "mpeg" !== a || ! this . hlsVideo ) ) ) } , c . Device . isConsoleOpen = function ( ) { return ! ( ! window . console || ! window . console . firebug ) || ! ( ! window . console || ( console . profile ( ) , console . profileEnd ( ) , console . clear && console . clear ( ) , ! console . profiles ) ) && console . profiles . length > 0 } , c . Device . isAndroidStockBrowser = function ( ) { var a = window . navigator . userAgent . match ( /Android.*AppleWebKit\/([\d.]+)/ ) ; return a && a [ 1 ] < 537 } , c . Canvas = { create : function ( a , b , d , e , f ) { b = b || 256 , d = d || 256 ; var g = f ? document . createElement ( "canvas" ) : c . CanvasPool . create ( a , b , d ) ; return "string" == typeof e && "" !== e && ( g . id = e ) , g . width = b , g . height = d , g . style . display = "block" , g } , setBackgroundCo
this . _frameDiff = this . game . time . time - this . _timeNextFrame , this . _timeLastFrame = this . game . time . time , this . _frameDiff > this . delay && ( this . _frameSkip = Math . floor ( this . _frameDiff / this . delay ) , this . _frameDiff -= this . _frameSkip * this . delay ) , this . _timeNextFrame = this . game . time . time + ( this . delay - this . _frameDiff ) , this . isReversed ? this . _frameIndex -= this . _frameSkip : this . _frameIndex += this . _frameSkip , ! this . isReversed && this . _frameIndex >= this . _frames . length || this . isReversed && this . _frameIndex <= - 1 ? this . loop ? ( this . _frameIndex = Math . abs ( this . _frameIndex ) % this . _frames . length , this . isReversed && ( this . _frameIndex = this . _frames . length - 1 - this . _frameIndex ) , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . currentFrame && this . _parent . setFrame ( this . currentFrame ) , this . loopCount ++ , this . _parent . events . onAnimationLoop$dispatch ( this . _parent , this ) , this . onLoop . dispatch ( this . _parent , this ) , ! this . onUpdate || ( this . onUpdate . dispatch ( this , this . currentFrame ) , ! ! this . _frameData ) ) : ( this . complete ( ) , ! 1 ) : this . updateCurrentFrame ( ! 0 ) ) ) } , updateCurrentFrame : function ( a , b ) { if ( void 0 === b && ( b = ! 1 ) , ! this . _frameData ) return ! 1 ; var c = this . currentFrame . index ; return this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . currentFrame && ( b || ! b && c !== this . currentFrame . index ) && this . _parent . setFrame ( this . currentFrame ) , ! this . onUpdate || ! a || ( this . onUpdate . dispatch ( this , this . currentFrame ) , ! ! this . _frameData ) } , next : function ( a ) { void 0 === a && ( a = 1 ) ; var b = this . _frameIndex + a ; b >= this . _frames . length && ( this . loop ? b %= this . _frames . length : b = this . _frames . length - 1 ) , b !== this . _frameIndex && ( this . _frameIndex = b , this . updateCurrentFrame ( ! 0 ) ) } , previous : function ( a ) { void 0 === a && ( a = 1 ) ; var b = this . _frameIndex - a ; b < 0 && ( this . loop ? b = this . _frames . length + b : b ++ ) , b !== this . _frameIndex && ( this . _frameIndex = b , this . updateCurrentFrame ( ! 0 ) ) } , updateFrameData : function ( a ) { this . _frameData = a , this . currentFrame = this . _frameData ? this . _frameData . getFrame ( this . _frames [ this . _frameIndex % this . _frames . length ] ) : null } , destroy : function ( ) { this . _frameData && ( this . game . onPause . remove ( this . onPause , this ) , this . game . onResume . remove ( this . onResume , this ) , this . game = null , this . _parent = null , this . _frames = null , this . _frameData = null , this . currentFrame = null , this . isPlaying = ! 1 , this . onStart . dispose ( ) , this . onLoop . dispose ( ) , this . onComplete . dispose ( ) , this . onUpdate && this . onUpdate . dispose ( ) ) } , complete : function ( ) { this . _frameIndex = this . _frames . length - 1 , this . currentFrame = this . _frameData . getFrame ( this . _frames [ this . _frameIndex ] ) , this . isPlaying = ! 1 , this . isFinished = ! 0 , this . paused = ! 1 , this . _parent . events . onAnimationComplete$dispatch ( this . _parent , this ) , this . onComplete . dispatch ( this . _parent , this ) , this . killOnComplete && this . _parent . kill ( ) } } , c . Animation . prototype . constructor = c . Animation , Object . defineProperty ( c . Animation . prototype , "paused" , { get : function ( ) { return this . isPaused } , set : function ( a ) { this . isPaused = a , a ? this . _pauseStartTime = this . game . time . time : this . isPlaying && ( this . _timeNextFrame = this . game . time . time + this . delay ) } } ) , Object . defineProperty ( c . Animation . prototype , "reversed" , { get : function ( ) { return this . isReversed } , set : function ( a ) { this . isReversed = a } } ) , Object . defineProperty ( c . Animation . prototype , "frameTotal" , { get : function ( ) { return this . _frames . length } } ) , Object . defineProperty ( c . Animation . prototype , "frame" , { get : function ( ) { return null !== this . currentFrame ? this . currentFrame . index : this . _frameIndex } , set : function ( a ) { this . currentFrame = this . _frameData . getFrame ( this . _frames [ a ] ) , null !== this . currentFrame && ( this . _frameIndex = a , this . _parent . setFrame ( this . currentFrame ) , this . onUpdate && this . onUpdate . dispatch ( this , this . currentFrame ) ) } } ) , Object . defineProperty ( c . Animation . prototype , "speed" , { get : function ( ) { return 1e3 / this . delay } , set : function ( a ) { a > 0 && ( this . delay = 1e3 / a ) } } ) , Object . defineProperty ( c . Animation . prototype , "enableUpdate" , { get : function ( ) { return null !== this . onUpdate } , set : function ( a ) { a && null === this . onUpdate ? this . onUpdate = new c . Signal : a || null === this . onUpdate || ( this . onUpdate . dispose ( ) , this . onUpdate = null ) } } ) , c . Animation . generateFrameNames = function ( a , b , d , e , f ) { void 0 === e && ( e = "" ) ; var g = [ ] , h = "" ; if ( b < d ) for ( var i = b ; i <= d ; i ++ ) h = "number" == typeof f ? c . Utils . pad ( i . toString ( ) , f , "0" , 1 ) : i . toString ( ) , h
var b = this . _fileList [ a ] ; if ( "packfile" === b . type && ! b . error && b . loaded && a === this . _processingHead && ( this . processPack ( b ) , this . _loadedPackCount ++ , this . onPackComplete . dispatch ( b . key , ! b . error , this . _loadedPackCount , this . _totalPackCount ) ) , b . loaded || b . error ? a === this . _processingHead && ( this . _processingHead = a + 1 ) : ! b . loading && this . _flightQueue . length < e && ( "packfile" !== b . type || b . data ? d || ( this . _fileLoadStarted || ( this . _fileLoadStarted = ! 0 , this . onLoadStart . dispatch ( ) ) , this . _flightQueue . push ( b ) , b . loading = ! 0 , this . onFileStart . dispatch ( this . progress , b . key , b . url ) , this . loadFile ( b ) ) : ( this . _flightQueue . push ( b ) , b . loading = ! 0 , this . loadFile ( b ) ) ) , ! b . loaded && b . syncPoint && ( d = ! 0 ) , this . _flightQueue . length >= e || d && this . _loadedPackCount === this . _totalPackCount ) break } if ( this . updateProgress ( ) , this . _processingHead >= this . _fileList . length ) this . finishedLoading ( ) ; else if ( ! this . _flightQueue . length ) { console . warn ( "Phaser.Loader - aborting: processing queue empty, loading may have stalled" ) ; var f = this ; setTimeout ( function ( ) { f . finishedLoading ( ! 0 ) } , 2e3 ) } } , finishedLoading : function ( a ) { this . hasLoaded || ( this . hasLoaded = ! 0 , this . isLoading = ! 1 , a || this . _fileLoadStarted || ( this . _fileLoadStarted = ! 0 , this . onLoadStart . dispatch ( ) ) , this . onLoadComplete . dispatch ( ) , this . game . state . loadComplete ( ) , this . reset ( ) ) } , asyncComplete : function ( a , b ) { void 0 === b && ( b = "" ) , a . loaded = ! 0 , a . error = ! ! b , b && ( a . errorMessage = b , console . warn ( "Phaser.Loader - " + a . type + "[" + a . key + "]: " + b ) ) , this . processLoadQueue ( ) } , processPack : function ( a ) { var b = a . data [ a . key ] ; if ( ! b ) return void console . warn ( "Phaser.Loader - " + a . key + ": pack has data, but not for pack key" ) ; for ( var d = 0 ; d < b . length ; d ++ ) { var e = b [ d ] ; switch ( e . type ) { case "image" : this . image ( e . key , e . url , e . overwrite ) ; break ; case "text" : this . text ( e . key , e . url , e . overwrite ) ; break ; case "json" : this . json ( e . key , e . url , e . overwrite ) ; break ; case "xml" : this . xml ( e . key , e . url , e . overwrite ) ; break ; case "script" : this . script ( e . key , e . url , e . callback , a . callbackContext || this ) ; break ; case "binary" : this . binary ( e . key , e . url , e . callback , a . callbackContext || this ) ; break ; case "spritesheet" : this . spritesheet ( e . key , e . url , e . frameWidth , e . frameHeight , e . frameMax , e . margin , e . spacing , e . skipFrames ) ; break ; case "video" : this . video ( e . key , e . urls ) ; break ; case "audio" : this . audio ( e . key , e . urls , e . autoDecode ) ; break ; case "audiosprite" : this . audiosprite ( e . key , e . urls , e . jsonURL , e . jsonData , e . autoDecode ) ; break ; case "tilemap" : this . tilemap ( e . key , e . url , e . data , c . Tilemap [ e . format ] ) ; break ; case "physics" : this . physics ( e . key , e . url , e . data , c . Loader [ e . format ] ) ; break ; case "bitmapFont" : this . bitmapFont ( e . key , e . textureURL , e . atlasURL , e . atlasData , e . xSpacing , e . ySpacing ) ; break ; case "atlasJSONArray" : this . atlasJSONArray ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlasJSONHash" : this . atlasJSONHash ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlasXML" : this . atlasXML ( e . key , e . textureURL , e . atlasURL , e . atlasData ) ; break ; case "atlas" : this . atlas ( e . key , e . textureURL , e . atlasURL , e . atlasData , c . Loader [ e . format ] ) ; break ; case "shader" : this . shader ( e . key , e . url , e . overwrite ) } } } , transformUrl : function ( a , b ) { return ! ! a && ( a . match ( /^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/ ) ? a : this . baseURL + b . path + a ) } , loadFile : function ( a ) { switch ( a . type ) { case "packfile" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . fileComplete ) ; break ; case "image" : case "spritesheet" : case "textureatlas" : case "bitmapfont" : this . loadImageTag ( a ) ; break ; case "audio" : a . url = this . getAudioURL ( a . url ) , a . url ? this . game . sound . usingWebAudio ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "arraybuffer" , this . fileComplete ) : this . game . sound . usingAudioTag && this . loadAudioTag ( a ) : this . fileError ( a , null , "No supported audio URL specified or device does not have audio playback support" ) ; break ; case "video" : a . url = this . getVideoURL ( a . url ) , a . url ? a . asBlob ? this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "blob" , this . fileComplete ) : this . loadVideoTag ( a ) : this . fileError ( a , null , "No supported video URL specified or device does not have video playback support" ) ; break ; case "json" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . jsonLoadComplete ) ; break ; case "xml" : this . xhrLoad ( a , this . transformUrl ( a . url , a ) , "text" , this . xmlLoadComplete ) ; break ; case "tilemap" : a . format === c . Tilemap . TILED _JSON ? this . xhrLoad
} void 0 !== a && this . game . renderType === c . CANVAS && ( this . game . stage . smoothed = a ) ; var f = this . fullScreenTarget ; f || ( this . cleanupCreatedTarget ( ) , this . _createdFullScreenTarget = this . createFullScreenTarget ( ) , f = this . _createdFullScreenTarget ) ; var g = { targetElement : f } ; if ( this . hasPhaserSetFullScreen = ! 0 , this . onFullScreenInit . dispatch ( this , g ) , this . _createdFullScreenTarget ) { var h = this . game . canvas , i = h . parentNode ; i . insertBefore ( f , h ) , f . appendChild ( h ) } return this . game . device . fullscreenKeyboard ? f [ this . game . device . requestFullscreen ] ( Element . ALLOW _KEYBOARD _INPUT ) : f [ this . game . device . requestFullscreen ] ( ) , ! 0 } , stopFullScreen : function ( ) { return ! ( ! this . isFullScreen || ! this . compatibility . supportsFullScreen ) && ( this . hasPhaserSetFullScreen = ! 1 , document [ this . game . device . cancelFullscreen ] ( ) , ! 0 ) } , cleanupCreatedTarget : function ( ) { var a = this . _createdFullScreenTarget ; if ( a && a . parentNode ) { var b = a . parentNode ; b . insertBefore ( this . game . canvas , a ) , b . removeChild ( a ) } this . _createdFullScreenTarget = null } , prepScreenMode : function ( a ) { var b = ! ! this . _createdFullScreenTarget , d = this . _createdFullScreenTarget || this . fullScreenTarget ; a ? ( b || this . fullScreenScaleMode === c . ScaleManager . EXACT _FIT ) && d !== this . game . canvas && ( this . _fullScreenRestore = { targetWidth : d . style . width , targetHeight : d . style . height } , d . style . width = "100%" , d . style . height = "100%" ) : ( this . _fullScreenRestore && ( d . style . width = this . _fullScreenRestore . targetWidth , d . style . height = this . _fullScreenRestore . targetHeight , this . _fullScreenRestore = null ) , this . updateDimensions ( this . _gameSize . width , this . _gameSize . height , ! 0 ) , this . resetCanvas ( ) ) } , fullScreenChange : function ( a ) { this . event = a , this . isFullScreen ? ( this . prepScreenMode ( ! 0 ) , this . updateLayout ( ) , this . queueUpdate ( ! 0 ) ) : ( this . prepScreenMode ( ! 1 ) , this . cleanupCreatedTarget ( ) , this . updateLayout ( ) , this . queueUpdate ( ! 0 ) ) , this . onFullScreenChange . dispatch ( this , this . width , this . height ) } , fullScreenError : function ( a ) { this . event = a , this . cleanupCreatedTarget ( ) , console . warn ( "Phaser.ScaleManager: requestFullscreen failed or device does not support the Fullscreen API" ) , this . onFullScreenError . dispatch ( this ) } , scaleSprite : function ( a , b , c , d ) { if ( void 0 === b && ( b = this . width ) , void 0 === c && ( c = this . height ) , void 0 === d && ( d = ! 1 ) , ! a || ! a . scale ) return a ; if ( a . scale . x = 1 , a . scale . y = 1 , a . width <= 0 || a . height <= 0 || b <= 0 || c <= 0 ) return a ; var e = b , f = a . height * b / a . width , g = a . width * c / a . height , h = c , i = g > b ; return i = i ? d : ! d , i ? ( a . width = Math . floor ( e ) , a . height = Math . floor ( f ) ) : ( a . width = Math . floor ( g ) , a . height = Math . floor ( h ) ) , a } , destroy : function ( ) { this . game . onResume . remove ( this . _gameResumed , this ) , window . removeEventListener ( "orientationchange" , this . _orientationChange , ! 1 ) , window . removeEventListener ( "resize" , this . _windowResize , ! 1 ) , this . compatibility . supportsFullScreen && ( document . removeEventListener ( "webkitfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "mozfullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "MSFullscreenChange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "fullscreenchange" , this . _fullScreenChange , ! 1 ) , document . removeEventListener ( "webkitfullscreenerror" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "mozfullscreenerror" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "MSFullscreenError" , this . _fullScreenError , ! 1 ) , document . removeEventListener ( "fullscreenerror" , this . _fullScreenError , ! 1 ) ) } } , c . ScaleManager . prototype . constructor = c . ScaleManager , Object . defineProperty ( c . ScaleManager . prototype , "boundingParent" , { get : function ( ) { if ( this . parentIsWindow || this . isFullScreen && this . hasPhaserSetFullScreen && ! this . _createdFullScreenTarget ) return null ; var a = this . game . canvas && this . game . canvas . parentNode ; return a || null } } ) , Object . defineProperty ( c . ScaleManager . prototype , "scaleMode" , { get : function ( ) { return this . _scaleMode } , set : function ( a ) { return a !== this . _scaleMode && ( this . isFullScreen || ( this . updateDimensions ( this . _gameSize . width , this . _gameSize . height , ! 0 ) , this . queueUpdate ( ! 0 ) ) , this . _scaleMode = a ) , this . _scaleMode } } ) , Object . defineProperty ( c . ScaleManager . prototype , "fullScreenScaleMode" , { get : function ( ) { return this . _fullScreenScaleMode } , set : function ( a ) { return a !== this . _fullScreenScaleMode && ( this . isFullScreen ? ( this . prepScreenMode (
2016-11-22 01:36:48 +00:00
//# sourceMappingURL=phaser-minimum.map