如何在Phaser 3中使用pause()在特定帧处停止?

时间:2018-10-05 13:52:33

标签: phaser-framework

我有一个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 :(得分:1)

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]);