【问题标题】:How to play an animation only if there isn't one yet in Phaser?只有在 Phaser 中还没有动画的情况下,如何播放动画?
【发布时间】:2022-01-15 16:24:50
【问题描述】:

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

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


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 都会覆盖动画。

那么,只有在之前的动画还没有播放的情况下,我如何才能运行动画呢?

提前致谢

【问题讨论】:

  • keys["s"] 是别名 BTW

标签: javascript html animation phaser-framework


【解决方案1】:

我找到了使用avatar.anims.isPlaying的解决方案

所以我做的是:

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


【讨论】:

    猜你喜欢
    • 2016-12-24
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2018-04-06
    • 2022-10-06
    • 2014-03-08
    相关资源
    最近更新 更多