彈跳

這是 Gamedev Phaser 教程 的 16 個步驟中的第 6 步。現在我們已經介紹了物理引擎,可以開始在遊戲中實現碰撞檢測了——首先我們來看牆壁。

從世界邊界反彈

讓我們的球從牆壁反彈的最簡單方法是告訴框架,我們將 <canvas> 元素的邊界視為牆壁,不允許球越過它們。在 Phaser 中,這可以透過 `setCollideWorldBounds()` 方法輕鬆實現。將此行新增到現有的 `this.ball.body.setVelocity()` 方法呼叫之後。

js
this.ball.body.setCollideWorldBounds(true, 1, 1);

第一個 `true` 引數告訴 Phaser 啟用與世界邊界的碰撞檢測,而後面的兩個 `1` 分別是 x 軸和 y 軸的彈力系數。這意味著當球碰到牆壁時,它會以撞擊前的速度反彈回來。嘗試再次重新載入 index.html — 現在您應該能看到球在所有牆壁之間反彈,並在畫布區域內移動。

Compare your code

這是您到目前為止應該看到的效果,即時執行。要檢視其原始碼,請單擊“播放”按鈕。

後續步驟

現在這看起來有點像個遊戲了,但我們還無法控制它——是時候引入 玩家擋板和控制 了。