Hey everyone,
My question is quite basic. We have a game with lots of animations. One animation has a quite large spritesheet. When we play the animation for the first time the whole game lags for a couple of ms. Afterwards, there is absolutely no lag when we play the animation.
Is there any way to preload/prerender/preplay the animation? Below is the relevant code:
- Loading the spritesheet in the Boot Scene’s preload method:
this.load.spritesheet('some-anim', /some-anim.png', {
frameWidth: 160,
frameHeight: 546,
startFrame: 0,
endFrame: 29
});
- Creating an animation in the Boot Scene’s create method:
this.anims.create({
key: 'some-anim-key',
frames: this.anims.generateFrameNames('some-anim'),
frameRate: 30,
repeat: -1
});
- The Sprite class
export class MyAnim extends Phaser.GameObjects.Sprite {
scene: Phaser.Scene;
constructor(scene: Phaser.Scene) {
super(scene, -1500, -1500, null);
this.scene = scene;
this.anims.load('anticipation');
this.setAlpha(0);
this.scene.add.existing(this);
}
}
- Playing the animation in the game state:
this.myAnim = new MyAnim(this); //this points to the game scene.
this.myAnim.setAlpha(1);
this.myAnim.play('some-anim-key');
Thank you in advance for your help !