如何仅在 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");
我想做的是在每次按下一个键时在精灵上播放 运行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");