Version
- Operating system: Windows
Description
Since 3.88, my animations are all running at 24 FPS despite having no frameRate set. The duration in the framearray is ignored.
This is a direct regression of this change: a8f921b
When no frameRate is passed in animation config, it defaults to 24 FPS:
So state.msPerFrame || state.currentFrame.duration will never check currentFrame.duration because msPerFrame is set to 1000/24
Example Test Code
const durationArray = [10,20,30,40]
const frameArray = this.game.anims.generateFrameNames("test", { start: 0, end: durationArray.length - 1 })
for (let i = 0; i < durationArray.length; i++) {
frameArray[i]["duration"] = durationArray[i]
}
this.game.anims.create({ key: "test", frames: frameArray })
sprite.anims.play({ key: "test" }) // will run at 24 FPS, ignore durationArray
Additional Information
Version
Description
Since 3.88, my animations are all running at 24 FPS despite having no frameRate set. The
durationin the framearray is ignored.This is a direct regression of this change: a8f921b
When no frameRate is passed in animation config, it defaults to 24 FPS:
phaser/src/animations/Animation.js
Line 258 in 7d76259
So
state.msPerFrame || state.currentFrame.durationwill never check currentFrame.duration because msPerFrame is set to 1000/24Example Test Code
Additional Information