Fixed the TweenManager and added support to GameObjectFactory, so you can create tweens easily now all hooked in to the internal game clock. Also added the AnimationManager into Sprite, so you can create and play animations directly from sprites nice and easily.

This commit is contained in:
Richard Davey
2013-08-30 17:09:43 +01:00
parent 936118bd91
commit e77f5da2cd
7 changed files with 55 additions and 26 deletions
+4 -4
View File
@@ -61,16 +61,17 @@ Phaser.AnimationManager.prototype = {
if (this._frameData == null)
{
console.warn('No frameData available for Phaser.Animation ' + name);
return;
}
// Create the signals the AnimationManager will emit
if (this._parent.events.onAnimationStart == null)
{
// if (this._parent.events.onAnimationStart == null)
// {
// this._parent.events.onAnimationStart = new Phaser.Signal();
// this._parent.events.onAnimationComplete = new Phaser.Signal();
// this._parent.events.onAnimationLoop = new Phaser.Signal();
}
// }
if (frames == null)
{
@@ -243,7 +244,6 @@ Object.defineProperty(Phaser.AnimationManager.prototype, "frame", {
{
this.currentFrame = this._frameData.getFrame(value);
this._frameIndex = value;
console.log('AM set frame', value, this.currentFrame);
this._parent.setTexture(PIXI.TextureCache[this.currentFrame.uuid]);
}
+3
View File
@@ -21,10 +21,12 @@ Phaser.World.prototype = {
add: function (gameobject) {
this._container.addChild(gameobject);
return gameobject;
},
addAt: function (gameobject, index) {
this._container.addChildAt(gameobject, index);
return gameobject;
},
getAt: function (index) {
@@ -33,6 +35,7 @@ Phaser.World.prototype = {
remove: function (gameobject) {
this._container.removeChild(gameobject);
return gameobject;
},
/**
+18 -3
View File
@@ -1,14 +1,14 @@
Phaser.GameObjectFactory = function (game) {
this.game = game;
this._world = this.game.world;
this.world = this.game.world;
};
Phaser.GameObjectFactory.prototype = {
_world: null,
game: null,
world: null,
/**
* Create a new Sprite with specific position and sprite sheet key.
@@ -24,8 +24,23 @@ Phaser.GameObjectFactory.prototype = {
if (typeof key === "undefined") { key = ''; }
if (typeof frame === "undefined") { frame = null; }
// return this._world.group.add(new Phaser.Sprite(this.game, x, y, key, frame));
return this.world.add(new Phaser.Sprite(this.game, x, y, key, frame));
},
/**
* Create a tween object for a specific object. The object can be any JavaScript object or Phaser object such as Sprite.
*
* @param obj {object} Object the tween will be run on.
* @param [localReference] {bool} If true the tween will be stored in the object.tween property so long as it exists. If already set it'll be over-written.
* @return {Phaser.Tween} The newly created tween object.
*/
tween: function (obj, localReference) {
if (typeof localReference === "undefined") { localReference = false; }
return this.game.tweens.create(obj, localReference);
}
};
+6 -1
View File
@@ -47,9 +47,14 @@ Phaser.Sprite = function (game, x, y, key, frame) {
*/
this.texture = PIXI.TextureCache[key];
if (this.game.cache.isSpriteSheet(key))
{
this.animations.loadFrameData(this.game.cache.getFrameData(key));
}
if (frame !== null)
{
if (typeof frame == 'string')
if (typeof frame === 'string')
{
this.frameName = frame;
}
+6 -10
View File
@@ -41,8 +41,7 @@ Phaser.Tween = function (object, game) {
this._valuesStart[ field ] = parseFloat(object[field], 10);
}
// this.onStart = new Phaser.Signal();
// this.onUpdate = new Phaser.Signal();
this.onStart = new Phaser.Signal();
this.onComplete = new Phaser.Signal();
this.isRunning = false;
@@ -93,12 +92,14 @@ Phaser.Tween.prototype = {
start: function ( time ) {
//TWEEN.add( this );
if (this.game === null || this._object === null) {
return;
}
this._manager.add(this);
this.onStart.dispatch(this._object);
this.isRunning = true;
this._onStartCallbackFired = false;
@@ -139,11 +140,7 @@ Phaser.Tween.prototype = {
stop: function () {
//TWEEN.remove( this );
if (this._manager !== null) {
this._manager.remove(this);
}
this._manager.remove(this);
this.isRunning = false;
return this;
@@ -171,7 +168,6 @@ Phaser.Tween.prototype = {
},
easing: function ( easing ) {
this._easingFunction = easing;
+5 -5
View File
@@ -26,7 +26,7 @@ Phaser.TweenManager.prototype = {
*/
getAll: function () {
return _tweens;
return this._tweens;
},
@@ -35,7 +35,7 @@ Phaser.TweenManager.prototype = {
*/
removeAll: function () {
_tweens = [];
this._tweens = [];
},
@@ -47,7 +47,7 @@ Phaser.TweenManager.prototype = {
*/
add: function ( tween ) {
_tweens.push( tween );
this._tweens.push( tween );
},
@@ -81,11 +81,11 @@ Phaser.TweenManager.prototype = {
*/
remove: function ( tween ) {
var i = _tweens.indexOf( tween );
var i = this._tweens.indexOf( tween );
if ( i !== -1 ) {
_tweens.splice( i, 1 );
this._tweens.splice( i, 1 );
}