make tweens chainable with .to

Allow successive .to calls to chain tweens, and an example using it.
This commit is contained in:
powerfear 2013-09-20 19:14:50 -04:00
parent 45426be0bc
commit f31d56584d
2 changed files with 69 additions and 8 deletions

View file

@ -0,0 +1,47 @@
<?php
$title = "Chained Tweens";
require('../head.php');
?>
<script type="text/javascript">
(function () {
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update, render: render });
var p;
var p2;
function preload() {
game.load.image('diamond', 'assets/sprites/diamond.png');
}
function create() {
game.stage.backgroundColor = 0x337799;
p = game.add.sprite(0, 0, 'diamond');
game.add.tween(p).to({ x: 700 }, 1000, Phaser.Easing.Linear.None, true)
.to({ y: 300 }, 1000, Phaser.Easing.Linear.None)
.to({ x: 0 }, 1000, Phaser.Easing.Linear.None)
.to({ y: 0 }, 1000, Phaser.Easing.Linear.None);
}
function update() {
// p.y = game.math.min(100, game.input.y);
}
function render() {
}
})();
</script>
<?php
require('../foot.php');
?>

View file

@ -35,6 +35,7 @@ Phaser.Tween = function (object, game) {
this._onCompleteCallback = null;
this._pausedTime = 0;
this._parent = null;
this.pendingDelete = false;
@ -71,26 +72,39 @@ Phaser.Tween.prototype = {
repeat = repeat || 0;
yoyo = yoyo || false;
this._repeat = repeat;
this._duration = duration;
this._valuesEnd = properties;
var self;
if (this._parent)
{
self = this._manager.create(this._object);
self._parent = this;
this.chain(self);
}
else
{
self = this;
self._parent = self;
}
self._repeat = repeat;
self._duration = duration;
self._valuesEnd = properties;
if (ease !== null)
{
this._easingFunction = ease;
self._easingFunction = ease;
}
if (delay > 0)
{
this._delayTime = delay;
self._delayTime = delay;
}
this._yoyo = yoyo;
self._yoyo = yoyo;
if (autoStart) {
return this.start();
return self.start();
} else {
return this;
return self;
}
},