Phaser动画帮助 - 将动画链接在一起

时间:2017-02-05 14:48:03

标签: javascript phaser-framework

我正在尝试使用移相器链接动画。

当intro0完成时,我需要播放intro1中定义的动画。 但是,介绍1中的动画会保持循环。我需要一种方法来阻止现有动画启动新动画。

如果我在intro1中使用this.player.animations.stop,则所有动画都会停止。空闲动画无法运行

有人可以帮忙吗?

intro0: function() {
  this.player.animations.play("run", 9, true);
  var s = this.game.add.tween(this.player);
  s.to({ y: 300,x:192 }, 3000, null)
  s.start();
  s.onComplete.add(this.intro1, this); //Which uses the Signals retains scope

},

intro1: function() {
  this.player.animations.play("idle", 9, false);
},

1 个答案:

答案 0 :(得分:0)

我理解:有一个带有无限动画的精灵,但是当插值事件结束时,当前动画结束并开始另一个动画,在完成它之后,必须销毁精灵。如果新动画是另一个精灵,我想你可以使用 loadTexture()

s.onComplete.add(function() { 
                    //The third parameter indicates whether to stop the current animation
                    player.loadTexture('texture', 0, true);
                    player.animations.add('idle'); 
                    //The fourth parameter indicates whether the sprite should be killed after the animation is finished
                    player.animations.play('idle', 9, false, true); 
                 }, this);

如果要为特定数量的帧设置动画,可以执行以下操作:

   player.animations.add('run', [0,1,2,3]);
   player.animations.add('idle', [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]);
   player.animations.play('run', 10, true);

   var s = game.add.tween(player);
   s.to({ y: 300,x:192 }, 3000, null);
   s.start();
   s.onComplete.add(function() { 
                       player.animations.stop(); 
                       player.animations.play('idle', 9, false, true); 
                    }, this);