本文章是 Phaser 系列文章的一部分。點擊這裡查看系列文章的第一篇。

在 Phaser 中,除了 preload()create() 這兩個場景外,我們還有第三個場景,被稱為 update()

在這裡,一切事情都會發生。

preload()create() 只會執行一次。

update() 會一直被呼叫,成為一個無窮迴圈,直到遊戲結束。

在這個例子中,我們創建了一個文字,它慢慢地移動到畫布的右下角:

let text

function create() {
 text = this.add.text(100, 100, 'test')
}

function update() {
 text.x += 1
 text.y += 1
}

const game = new Phaser.Game({
 width: 400,
 height: 400,
 scene: {
 create,
 update
 }
})

注意我在頂部添加了 let text,這樣我們可以在 create()update() 中引用它。

update() 中,我修改了 xy 屬性。您還可以修改其他屬性,例如可以修改 angle 以旋轉物體:

function update() {
 text.angle += 2
}

您可以使物體從特定的速度開始運動。

調用 setVelocity(),並傳遞一個數字作為 X 軸的速度,另外還可以選擇性地傳遞 Y 軸的速度:

text.setVelocity(20, 20)

或者使用 setVelocityX()setVelocityY() 只設置其中一個軸的速度。