diff --git a/examples/sprite2.php b/examples/sprite2.php
index f9dffc4d..79244eb2 100644
--- a/examples/sprite2.php
+++ b/examples/sprite2.php
@@ -25,21 +25,26 @@
function create() {
- bunny = game.add.sprite(-40, 100, 'ms');
+ bunny = game.add.sprite(40, 100, 'ms');
bunny.animations.add('walk');
bunny.animations.play('walk', 50, true);
- // bunny.scale.x = 8;
- // bunny.scale.y = 8;
-
game.add.tween(bunny).to({ x: game.width }, 10000, Phaser.Easing.Linear.None, true);
}
+ // update isn't called until 'create' has completed. If you need to process stuff before that point (i.e. while the preload is still happening)
+ // then create a function called loadUpdate() and use that
function update() {
- bunny.postUpdate();
+
+ if (bunny.x >= 300)
+ {
+ bunny.scale.x += 0.01;
+ bunny.scale.y += 0.01;
+ }
+
}
})();
diff --git a/examples/sprite3.php b/examples/sprite3.php
new file mode 100644
index 00000000..4287cc4f
--- /dev/null
+++ b/examples/sprite3.php
@@ -0,0 +1,61 @@
+
+
+
+ phaser.js - a new beginning
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/core/Game.js b/src/core/Game.js
index e5d4c07b..70da520b 100644
--- a/src/core/Game.js
+++ b/src/core/Game.js
@@ -243,7 +243,8 @@ Phaser.Game.prototype = {
return;
}
- if (!document.body) {
+ if (!document.body)
+ {
window.setTimeout(this._onBoot, 20);
}
else
@@ -351,42 +352,13 @@ Phaser.Game.prototype = {
// this.stage.update();
// this.sound.update();
// this.physics.update();
- // this.world.update();
-
+ this.world.update();
+ this.state.update();
this.plugins.update();
- if (this._loadComplete)
- {
- this.state.update();
-
- // this.world.postUpdate();
- this.plugins.postUpdate();
- this.plugins.preRender();
+ this.renderer.render(this.world._stage);
- this.state.preRender();
-
- this.renderer.render(this.world._stage);
-
- this.plugins.render();
-
- this.state.render();
-
- this.plugins.postRender();
- }
- else
- {
- // Still loading assets
- this.state.loadUpdate();
-
- // this.world.postUpdate();
- this.plugins.postUpdate();
-
- this.plugins.preRender();
- this.renderer.render(this.world._stage);
- this.plugins.render();
- this.state.loadRender();
- this.plugins.postRender();
- }
+ this.plugins.postRender();
},
diff --git a/src/core/StateManager.js b/src/core/StateManager.js
index d30a752f..fae9fef9 100644
--- a/src/core/StateManager.js
+++ b/src/core/StateManager.js
@@ -24,6 +24,12 @@ Phaser.StateManager.prototype = {
*/
_pendingState: null,
+ /**
+ * Flag that sets if the State has been created or not.
+ * @type {Boolean}
+ */
+ _created: false,
+
/**
* The state to be switched to in the next frame.
* @type {Object}
@@ -257,6 +263,8 @@ Phaser.StateManager.prototype = {
{
this.onCreateCallback.call(this.callbackContext);
}
+
+ this._created = true;
}
else
{
@@ -275,6 +283,8 @@ Phaser.StateManager.prototype = {
this.onCreateCallback.call(this.callbackContext);
}
+ this._created = true;
+
this.game.loadComplete();
}
@@ -336,6 +346,7 @@ Phaser.StateManager.prototype = {
this.onShutDownCallback = this.states[key]['shutdown'] || this.dummy;
this.current = key;
+ this._created = false;
this.onInitCallback.call(this.callbackContext);
@@ -345,22 +356,15 @@ Phaser.StateManager.prototype = {
// console.log('Phaser.StateManager.loadComplete');
- if (this.onCreateCallback) {
+ if (this._created == false && this.onCreateCallback)
+ {
// console.log('Create callback found');
this.onCreateCallback.call(this.callbackContext);
+ this._created = true;
}
},
- loadUpdate: function () {
-
- if (this.onLoadUpdateCallback)
- {
- this.onLoadUpdateCallback.call(this.callbackContext);
- }
-
- },
-
loadRender: function () {
if (this.onLoadRenderCallback)
@@ -372,9 +376,16 @@ Phaser.StateManager.prototype = {
update: function () {
- if (this.onUpdateCallback)
- {
- this.onUpdateCallback.call(this.callbackContext);
+ if (this._created && this.onUpdateCallback)
+ {
+ this.onUpdateCallback.call(this.callbackContext);
+ }
+ else
+ {
+ if (this.onLoadUpdateCallback)
+ {
+ this.onLoadUpdateCallback.call(this.callbackContext);
+ }
}
},
diff --git a/src/core/World.js b/src/core/World.js
index 4171910f..cc8bf05a 100644
--- a/src/core/World.js
+++ b/src/core/World.js
@@ -16,6 +16,7 @@ Phaser.World.prototype = {
_stage: null,
_container: null,
+ _length: 0,
bounds: null,
@@ -38,6 +39,15 @@ Phaser.World.prototype = {
return gameobject;
},
+ update: function () {
+
+ for (var child in this._container.children)
+ {
+ this._container.children[child].update();
+ }
+
+ },
+
/**
* Updates the size of this world.
*
diff --git a/src/gameobjects/Sprite.js b/src/gameobjects/Sprite.js
index 792f4342..48a7ffa1 100644
--- a/src/gameobjects/Sprite.js
+++ b/src/gameobjects/Sprite.js
@@ -109,7 +109,7 @@ Phaser.Sprite.prototype.constructor = Phaser.Sprite;
/**
* Automatically called after update() by the game loop for all 'alive' objects.
*/
-Phaser.Sprite.prototype.postUpdate = function() {
+Phaser.Sprite.prototype.update = function() {
this.animations.update();
// this.checkBounds();