mirror of
https://github.com/wassname/phaser.git
synced 2026-08-11 11:23:06 +08:00
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:
+3
-1
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user