Phaser now running on iOS. Also fixed a legacy bug where a pending sound wouldn't play once it was touch unlocked. Also fixed Input not working on WebGL contexts. Added WebGL texture updates to the Group/World swap functions.

This commit is contained in:
Richard Davey
2013-09-10 16:46:39 +01:00
parent 5da0e42be4
commit a486bf6b4a
17 changed files with 338 additions and 201 deletions
+3 -1
View File
@@ -312,9 +312,11 @@ Phaser.Game.prototype = {
this.load.onLoadComplete.add(this.loadComplete, this);
this.stage.boot();
this.world.boot();
this.state.boot();
this.input.boot();
this.sound.boot();
if (this.renderType == Phaser.CANVAS)
{
@@ -355,7 +357,7 @@ Phaser.Game.prototype = {
else
{
// They must have requested WebGL and their browser supports it
this.renderer = new PIXI.WebGLRenderer(this.width, this.height, null, this.transparent, this.antialias);
this.renderer = new PIXI.WebGLRenderer(this.width, this.height, this.stage.canvas, this.transparent, this.antialias);
this.canvas = this.renderer.view;
this.context = null;
}
+30
View File
@@ -132,6 +132,16 @@ Phaser.Group.prototype = {
if (child1Prev) { child1Prev._iNext = child2; }
if (child2Next) { child2Next._iPrev = child1; }
if (child1.__renderGroup)
{
child1.__renderGroup.updateTexture(child1);
}
if (child2.__renderGroup)
{
child2.__renderGroup.updateTexture(child2);
}
return true;
}
else if (child2._iNext == child1)
@@ -145,6 +155,16 @@ Phaser.Group.prototype = {
if (child2Prev) { child2Prev._iNext = child1; }
if (child1Next) { child2Next._iPrev = child2; }
if (child1.__renderGroup)
{
child1.__renderGroup.updateTexture(child1);
}
if (child2.__renderGroup)
{
child2.__renderGroup.updateTexture(child2);
}
return true;
}
else
@@ -160,6 +180,16 @@ Phaser.Group.prototype = {
if (child2Prev) { child2Prev._iNext = child1; }
if (child2Next) { child2Next._iPrev = child1; }
if (child1.__renderGroup)
{
child1.__renderGroup.updateTexture(child1);
}
if (child2.__renderGroup)
{
child2.__renderGroup.updateTexture(child2);
}
return true;
}
+23 -19
View File
@@ -27,29 +27,11 @@ Phaser.Stage = function (game, width, height) {
// The Pixi Stage which is hooked to the renderer
this._stage = new PIXI.Stage(0x000000, false);
this._stage.name = '_stage_root';
Phaser.Canvas.getOffset(this.canvas, this.offset);
this.bounds = new Phaser.Rectangle(this.offset.x, this.offset.y, this.game.width, this.game.height);
this.scaleMode = Phaser.StageScaleMode.NO_SCALE;
this.scale = new Phaser.StageScaleMode(this.game, width, height);
this.aspectRatio = width / height;
var _this = this;
this._onChange = function (event) {
return _this.visibilityChange(event);
}
document.addEventListener('visibilitychange', this._onChange, false);
document.addEventListener('webkitvisibilitychange', this._onChange, false);
document.addEventListener('pagehide', this._onChange, false);
document.addEventListener('pageshow', this._onChange, false);
window.onblur = this._onChange;
window.onfocus = this._onChange;
};
Phaser.Stage.prototype = {
@@ -60,6 +42,28 @@ Phaser.Stage.prototype = {
bounds: null,
offset: null,
boot: function () {
Phaser.Canvas.getOffset(this.canvas, this.offset);
this.bounds = new Phaser.Rectangle(this.offset.x, this.offset.y, this.game.width, this.game.height);
var _this = this;
this._onChange = function (event) {
return _this.visibilityChange(event);
}
document.addEventListener('visibilitychange', this._onChange, false);
document.addEventListener('webkitvisibilitychange', this._onChange, false);
document.addEventListener('pagehide', this._onChange, false);
document.addEventListener('pageshow', this._onChange, false);
window.onblur = this._onChange;
window.onfocus = this._onChange;
},
/**
* This method is called when the document visibility is changed.
*/
+30
View File
@@ -148,6 +148,16 @@ Phaser.World.prototype = {
if (child1Prev) { child1Prev._iNext = child2; }
if (child2Next) { child2Next._iPrev = child1; }
if (child1.__renderGroup)
{
child1.__renderGroup.updateTexture(child1);
}
if (child2.__renderGroup)
{
child2.__renderGroup.updateTexture(child2);
}
return true;
}
else if (child2._iNext == child1)
@@ -161,6 +171,16 @@ Phaser.World.prototype = {
if (child2Prev) { child2Prev._iNext = child1; }
if (child1Next) { child2Next._iPrev = child2; }
if (child1.__renderGroup)
{
child1.__renderGroup.updateTexture(child1);
}
if (child2.__renderGroup)
{
child2.__renderGroup.updateTexture(child2);
}
return true;
}
else
@@ -176,6 +196,16 @@ Phaser.World.prototype = {
if (child2Prev) { child2Prev._iNext = child1; }
if (child2Next) { child2Next._iPrev = child1; }
if (child1.__renderGroup)
{
child1.__renderGroup.updateTexture(child1);
}
if (child2.__renderGroup)
{
child2.__renderGroup.updateTexture(child2);
}
return true;
}