如何仅在 Phaser 中还没有动画时才播放动画?

How to play an animation only if there isn't one yet in Phaser?

我想做的是在每次按下一个键时在精灵上播放 运行ning 动画

我的代码(摘录)如下所示:


function update() {
  if (keys["w"].isDown) {
    avatar.setVelocityY(-250);
  }
  if (keys["d"].isDown) {
    avatar.setVelocityX(250);
  }
  if (keys["a"].isDown) {
    avatar.setVelocityX(-250);
  }
  if (keys["s"].isDown) {
    avatar.setVelocityY(250);
    avatar.play("run_front");
  }
}

问题:当我按下s时,只播放动画的第一帧,当我停止按下时动画才会结束。

我认为这是因为每次按下 s 时动画都会被覆盖。

那么我怎样才能 运行 只有前一个动画还没有播放时才播放?

提前致谢

我找到了使用 avatar.anims.isPlaying

的解决方案

所以我做的是:

    if (!avatar.anims.isPlaying) avatar.anims.play("lazy");