Javascript 第三阶段:一些动画突然停止播放

Javascript 第三阶段:一些动画突然停止播放,javascript,animation,phaser-framework,sprite-sheet,Javascript,Animation,Phaser Framework,Sprite Sheet,我用的是相位器3.11 我有我的精灵动画(行走动画)以及一个动画标题,显示该标题以提示玩家单击(只是一个技巧,以确保音频正常播放)。我还有一个猫摆动尾巴的动画 在整个项目期间,这三个人都工作得很好。但突然,在我添加了一个新的精灵后,上面的动画中有2/3停止了工作(行走循环和标题)。奇怪的是,猫的尾巴仍然活跃着。我当然把旧的雪碧放回去了,因为这是我唯一改变的东西,但不,这个错误似乎是永久的 代码如下: 预加载时: this.load.spritesheet('dude', 'assets/runn

我用的是相位器3.11

我有我的精灵动画(行走动画)以及一个动画标题,显示该标题以提示玩家单击(只是一个技巧,以确保音频正常播放)。我还有一个猫摆动尾巴的动画

在整个项目期间,这三个人都工作得很好。但突然,在我添加了一个新的精灵后,上面的动画中有2/3停止了工作(行走循环和标题)。奇怪的是,猫的尾巴仍然活跃着。我当然把旧的雪碧放回去了,因为这是我唯一改变的东西,但不,这个错误似乎是永久的

代码如下:

预加载时:

this.load.spritesheet('dude', 'assets/runner/kel2.png', {
    frameWidth: 16,
    frameHeight: 28,
  });
  this.load.spritesheet('buffy', 'assets/runner/buffy.png', {
    frameWidth: 43,
    frameHeight: 32,
  });
  this.load.spritesheet('startText', 'assets/runner/clickToStart2.png', {
    frameWidth: 351,
    frameHeight: 250,
  });
在创建中:

player = this.physics.add.sprite(playerStart, 260, 'dude').setScale(1.3)

this.anims.create({
    //animations created are available globally, belonging to the game objects themselves!
    key: 'left',
    frames: this.anims.generateFrameNumbers('dude', { start: 0, end: 3 }),
    frameRate: 10,
    repeat: -1,
    //use frames 0,1,2,3 at 10 fps, and -1 repeat tells it to loop
  });

  this.anims.create({
    key: 'turn',
    frames: [{ key: 'dude', frame: 4 }],
    frameRate: 20,
  });

  this.anims.create({
    key: 'right',
    frames: this.anims.generateFrameNumbers('dude', { start: 5, end: 8 }),
    frameRate: 10,
    repeat: -1,
  });


buffy = this.physics.add.sprite(3170, 270, 'buffy');
  this.anims.create({
    key: 'curl',
    frames: this.anims.generateFrameNumbers('buffy', { start: 0, end: 1 }),
    frameRate: 2,
    repeat: -1,
  });


startText = this.physics.add.staticSprite(240, 150, 'startText');
  this.anims.create({
    key: 'clickToStart',
    frames: this.anims.generateFrameNumbers('startText', { start: 0, end: 1 }),
    frameRate: 2,
    repeat: -1,
  });
更新中:

if (cursors.left.isDown) {
      player.setVelocityX(-100);
      player.anims.play('left', true);
    } else if (cursors.right.isDown) {
      player.setVelocityX(100);
      player.anims.play('right', true);
    } else {
      player.setVelocityX(0);
      player.anims.play('turn');
    }

    buffy.anims.play('curl', true);
    startText.anims.play('clickToStart', true);
同样,更新中倒数第二个(buffy.anims.play)工作正常 然而,其他一切都被固定在一个框架上。以前有人遇到过这样的事情吗?我已经在谷歌上搜索了一个多小时,结果一无所获

编辑以添加:

我修复了标题屏幕精灵。这不是一个小故障,我只是意外地将它包含在一个if块中,该块取决于游戏是否已经开始。把它拿出来,一切都好了。但是精灵行走动画仍然不起作用。还是没有主意

编辑2:

在使用console.logs进行了一些挖掘之后,我诊断出:

a) 程序确实没有在其帧数组中的帧之间循环(向左或向右旋转,当前帧仅为0或5,但如果我在其工作的位置签出前一个提交,它将分别变为0,1,2,3和5,6,7,8)

b) 程序可以访问帧阵列。aka generateFrameNumbers正在工作。如果我将console.log转到精灵上的getTotalFrames(),然后向左或向右移动,则分别为每一个提供4个(应该是向前的,为1个)


c) 如果我手动设置起始帧,它将更改。它仍然会被冻结,但它会在直腿和步行腿上冻结,这取决于我在anims.play中将哪个帧设置为起点。同样,它有所有的帧,只是没有循环。

如果是GitHub中Phaser repo上的错误,你应该报告这个错误如果是GitHub中Phaser repo上的错误,你应该报告这个错误