Как использовать pause () в Phaser 3, чтобы остановиться на определенном кадре? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть спрайт с 6 кадрами, и когда я нажимаю на кнопку, я хочу показать кадр 3, например.Я пытаюсь этот код, но он все еще останавливается в кадре 1.

function preload (){
    this.load.spritesheet('info', 'images/info.png', { frameWidth: 550, frameHeight: 400 });
}

function create (){
    var infos = this.add.sprite(275,200,"info")
    this.anims.create({
    key: "informations",
    frames: this.anims.generateFrameNumbers("info", { start: 0, end: 6 }),
    frameRate: 10,
    repeat: -1
    });

    // I'm try to show the frame 3 here.
    informations.pause(3);

    // When I play, the animation work!
    //infos.anims.play("informations", true);

}

Я нашел документацию для pause ([atFrame]) , но этоне работает.

1 Ответ

0 голосов
/ 05 октября 2018

atFrame на самом деле имеет тип Phaser.Animations.AnimationFrame.Поэтому вам нужно передать один из них.

Вы можете получить один из этих типов, например, вызвав infos.anims.currentAnim.frames[0], где 0 - это индекс нужного вам фрейма.

// Assuming you want the third actual frame:
infos.anims.pause(infos.anims.currentAnim.frames[2]);
...