@@ -5088,7 +5088,7 @@ var Phaser;
50885088 if(this.enabled == false || this._parent.visible == false) {
50895089 return false;
50905090 } else {
5091- return Phaser.SpriteUtils.overlapsXY (this._parent, pointer.worldX, pointer.worldY );
5091+ return Phaser.SpriteUtils.overlapsPointer (this._parent, pointer);
50925092 }
50935093 };
50945094 InputHandler.prototype.update = function (pointer) {
@@ -5099,7 +5099,7 @@ var Phaser;
50995099 if(this.draggable && this._draggedPointerID == pointer.id) {
51005100 return this.updateDrag(pointer);
51015101 } else if(this._pointerData[pointer.id].isOver == true) {
5102- if(Phaser.SpriteUtils.overlapsXY (this._parent, pointer.worldX, pointer.worldY )) {
5102+ if(Phaser.SpriteUtils.overlapsPointer (this._parent, pointer)) {
51035103 this._pointerData[pointer.id].x = pointer.x - this._parent.x;
51045104 this._pointerData[pointer.id].y = pointer.y - this._parent.y;
51055105 return true;
@@ -5152,7 +5152,7 @@ var Phaser;
51525152 this._pointerData[pointer.id].isUp = true;
51535153 this._pointerData[pointer.id].timeUp = this.game.time.now;
51545154 this._pointerData[pointer.id].downDuration = this._pointerData[pointer.id].timeUp - this._pointerData[pointer.id].timeDown;
5155- if(Phaser.SpriteUtils.overlapsXY (this._parent, pointer.worldX, pointer.worldY )) {
5155+ if(Phaser.SpriteUtils.overlapsPointer (this._parent, pointer)) {
51565156 this._parent.events.onInputUp.dispatch(this._parent, pointer);
51575157 } else {
51585158 if(this.useHandCursor) {
@@ -6929,11 +6929,13 @@ var Phaser;
69296929 });
69306930 Animation.prototype.play = function (frameRate, loop) {
69316931 if (typeof frameRate === "undefined") { frameRate = null; }
6932- if (typeof loop === "undefined") { loop = false ; }
6932+ if (typeof loop === "undefined") { loop = null ; }
69336933 if(frameRate !== null) {
69346934 this.delay = 1000 / frameRate;
69356935 }
6936- this.looped = loop;
6936+ if(loop !== null) {
6937+ this.looped = loop;
6938+ }
69376939 this.isPlaying = true;
69386940 this.isFinished = false;
69396941 this._timeLastFrame = this.game.time.now;
@@ -7054,7 +7056,7 @@ var Phaser;
70547056 };
70557057 AnimationManager.prototype.play = function (name, frameRate, loop) {
70567058 if (typeof frameRate === "undefined") { frameRate = null; }
7057- if (typeof loop === "undefined") { loop = false ; }
7059+ if (typeof loop === "undefined") { loop = null ; }
70587060 if(this._anims[name]) {
70597061 if(this.currentAnim == this._anims[name]) {
70607062 if(this.currentAnim.isPlaying == false) {
@@ -10693,7 +10695,6 @@ var Phaser;
1069310695 this.worldView = new Phaser.Rectangle(x, y, this.width, this.height);
1069410696 this.cameraView = new Phaser.Rectangle(x, y, this.width, this.height);
1069510697 this.transform.setCache();
10696- this.body = new Phaser.Physics.Body(this, 0);
1069710698 this.outOfBounds = false;
1069810699 this.outOfBoundsAction = Phaser.Types.OUT_OF_BOUNDS_PERSIST;
1069910700 this.scale = this.transform.scale;
@@ -10791,7 +10792,6 @@ var Phaser;
1079110792 Sprite.prototype.postUpdate = function () {
1079210793 this.animations.update();
1079310794 this.checkBounds();
10794- this.transform.centerOn(this.body.aabb.pos.x, this.body.aabb.pos.y);
1079510795 if(this.modified == true && this.transform.scale.equals(1) && this.transform.skew.equals(0) && this.transform.rotation == 0 && this.transform.rotationOffset == 0 && this.texture.flippedX == false && this.texture.flippedY == false) {
1079610796 this.modified = false;
1079710797 }
@@ -11940,10 +11940,18 @@ var Phaser;
1194011940 out.push(new Phaser.Point(sprite.x, sprite.y + sprite.height));
1194111941 return out;
1194211942 };
11943- SpriteUtils.overlapsXY = function overlapsXY(sprite, x, y) {
11944- if(sprite.transform.rotation == 0) {
11945- return Phaser.RectangleUtils.contains(sprite.worldView, x, y);
11943+ SpriteUtils.overlapsPointer = function overlapsPointer(sprite, pointer) {
11944+ if(sprite.transform.scrollFactor.equals(1)) {
11945+ return Phaser.SpriteUtils.overlapsXY(sprite, pointer.worldX, pointer.worldY);
11946+ } else if(sprite.transform.scrollFactor.equals(0)) {
11947+ return Phaser.SpriteUtils.overlapsXY(sprite, pointer.x, pointer.y);
11948+ } else {
11949+ var px = pointer.worldX * sprite.transform.scrollFactor.x;
11950+ var py = pointer.worldY * sprite.transform.scrollFactor.y;
11951+ return Phaser.SpriteUtils.overlapsXY(sprite, px, py);
1194611952 }
11953+ };
11954+ SpriteUtils.overlapsXY = function overlapsXY(sprite, x, y) {
1194711955 if((x - sprite.transform.upperLeft.x) * (sprite.transform.upperRight.x - sprite.transform.upperLeft.x) + (y - sprite.transform.upperLeft.y) * (sprite.transform.upperRight.y - sprite.transform.upperLeft.y) < 0) {
1194811956 return false;
1194911957 }
@@ -14248,6 +14256,12 @@ var Phaser;
1424814256 this.onDestroyCallback = null;
1424914257 this.isBooted = false;
1425014258 this.isRunning = false;
14259+ if(window['PhaserGlobal'].singleInstance) {
14260+ if(Phaser.GAMES.length > 0) {
14261+ console.log('Phaser detected an instance of this game already running, aborting');
14262+ return;
14263+ }
14264+ }
1425114265 this.id = Phaser.GAMES.push(this) - 1;
1425214266 this.callbackContext = callbackContext;
1425314267 this.onPreloadCallback = preloadCallback;
0 commit comments