Phaser 3 如何 运行 spritesheet 动画和移动

Phaser 3 How to run a spritesheet animation AND move

我有一个“玩家”的 spritesheet。当您按下箭头键时,它会四处移动。但是,我只能在移动后得到 运行 动画,或者只能移动或 运行 动画的类似内容。我需要它来移动和 运行 动画。这是到目前为止的相关代码-

var cursors;
var player;
class Scene1 extends Phaser.Scene {
  constructor() {
    super("bootGame");
  }
  preload() {
    this.load.spritesheet(
    "player",
    "https://cdn.glitch.com/34a2793c-cdda-4b47-b469-f0357b9fc0f1%2FAH_SpriteSheet_People2.png? 
    v=1595522143234",
      { frameWidth: 16, frameHeight: 16 }
    );
  }
  create() {        
    player = this.add.sprite(30, 30, "player");
    this.anims.create({
      key: "left",
      frames: this.anims.generateFrameNumbers("player", { start: 12, end: 14 }),
      frameRate: 10,
      repeat: 1
    });
    cursors = this.input.keyboard.createCursorKeys();
    update() {
      if (cursors.left.isDown) {
        player.anims.play("left");
        player.x -= 1;
      }
    }
  }

尝试:(第二个参数用于ignoreIfPlaying

player.anims.play("left",true);

我认为正在发生的事情是第二个参数的默认值 false 正在重新启动动画。这将使它看起来好像没有在播放,因为它只有在您释放左键后才会完成。 true 将允许它在尝试重新启动之前播放(同时按住左侧)