Fixed issue where loadTexture would sometimes incorrectly try to apply the texture update twice. Also fixed bug in Math.angleBetween.

This commit is contained in:
photonstorm 2014-02-11 04:08:32 +00:00
parent 5b64b01068
commit 43d9fc4f52
3 changed files with 26 additions and 1 deletions

View file

@ -178,16 +178,19 @@ Phaser.Image.prototype.loadTexture = function (key, frame) {
{ {
this.key = key.key; this.key = key.key;
this.setTexture(key); this.setTexture(key);
return;
} }
else if (key instanceof Phaser.BitmapData) else if (key instanceof Phaser.BitmapData)
{ {
this.key = key.key; this.key = key.key;
this.setTexture(key.texture); this.setTexture(key.texture);
return;
} }
else if (key instanceof PIXI.Texture) else if (key instanceof PIXI.Texture)
{ {
this.key = key; this.key = key;
this.setTexture(key); this.setTexture(key);
return;
} }
else else
{ {
@ -195,11 +198,13 @@ Phaser.Image.prototype.loadTexture = function (key, frame) {
{ {
this.key = '__default'; this.key = '__default';
this.setTexture(PIXI.TextureCache[this.key]); this.setTexture(PIXI.TextureCache[this.key]);
return;
} }
else if (typeof key === 'string' && !this.game.cache.checkImageKey(key)) else if (typeof key === 'string' && !this.game.cache.checkImageKey(key))
{ {
this.key = '__missing'; this.key = '__missing';
this.setTexture(PIXI.TextureCache[this.key]); this.setTexture(PIXI.TextureCache[this.key]);
return;
} }
if (this.game.cache.isSpriteSheet(key)) if (this.game.cache.isSpriteSheet(key))
@ -213,18 +218,21 @@ Phaser.Image.prototype.loadTexture = function (key, frame) {
this._frame = 0; this._frame = 0;
this._frameName = frame; this._frameName = frame;
this.setTexture(PIXI.TextureCache[frameData.getFrameByName(frame).uuid]); this.setTexture(PIXI.TextureCache[frameData.getFrameByName(frame).uuid]);
return;
} }
else else
{ {
this._frame = frame; this._frame = frame;
this._frameName = ''; this._frameName = '';
this.setTexture(PIXI.TextureCache[frameData.getFrame(frame).uuid]); this.setTexture(PIXI.TextureCache[frameData.getFrame(frame).uuid]);
return;
} }
} }
else else
{ {
this.key = key; this.key = key;
this.setTexture(PIXI.TextureCache[key]); this.setTexture(PIXI.TextureCache[key]);
return;
} }
} }

View file

@ -323,16 +323,19 @@ Phaser.Sprite.prototype.loadTexture = function (key, frame) {
{ {
this.key = key.key; this.key = key.key;
this.setTexture(key); this.setTexture(key);
return;
} }
else if (key instanceof Phaser.BitmapData) else if (key instanceof Phaser.BitmapData)
{ {
this.key = key.key; this.key = key.key;
this.setTexture(key.texture); this.setTexture(key.texture);
return;
} }
else if (key instanceof PIXI.Texture) else if (key instanceof PIXI.Texture)
{ {
this.key = key; this.key = key;
this.setTexture(key); this.setTexture(key);
return;
} }
else else
{ {
@ -340,11 +343,13 @@ Phaser.Sprite.prototype.loadTexture = function (key, frame) {
{ {
this.key = '__default'; this.key = '__default';
this.setTexture(PIXI.TextureCache[this.key]); this.setTexture(PIXI.TextureCache[this.key]);
return;
} }
else if (typeof key === 'string' && !this.game.cache.checkImageKey(key)) else if (typeof key === 'string' && !this.game.cache.checkImageKey(key))
{ {
this.key = '__missing'; this.key = '__missing';
this.setTexture(PIXI.TextureCache[this.key]); this.setTexture(PIXI.TextureCache[this.key]);
return;
} }
if (this.game.cache.isSpriteSheet(key)) if (this.game.cache.isSpriteSheet(key))
@ -367,6 +372,7 @@ Phaser.Sprite.prototype.loadTexture = function (key, frame) {
{ {
this.key = key; this.key = key;
this.setTexture(PIXI.TextureCache[key]); this.setTexture(PIXI.TextureCache[key]);
return;
} }
} }

View file

@ -336,7 +336,18 @@ Phaser.Math = {
* @return {number} * @return {number}
*/ */
angleBetween: function (x1, y1, x2, y2) { angleBetween: function (x1, y1, x2, y2) {
return Math.atan2(y2 - y1, x2 - x1); return Math.atan2(x2 - x1, y2 - y1);
},
/**
* Find the angle of a segment from (point1.x, point1.y) -> (point2.x, point2.y).
* @method Phaser.Math#angleBetweenPoints
* @param {Phaser.Point} point1
* @param {Phaser.Point} point2
* @return {number}
*/
angleBetweenPoints: function (point1, point2) {
return Math.atan2(point2.x - point1.x, point2.y - point1.y);
}, },
/** /**