Phaser: 物理引擎
本篇文章是 Phaser 系列的一部分。點擊這裡查看系列的第一篇文章。
Phaser 提供了三種不同的內建物理引擎:
- Arcade 物理引擎
- Matter.js
- Impact (相容 Impact.js)
Arcade 物理引擎是其中最簡單的一種,現在我們就來介紹它。
在 Phaser.Game
初始化配置物件中,通過添加 physics
屬性來啟用 Arcade 物理引擎:
1 | const config = { |
你可以將物理引擎添加到一個單獨的遊戲對象中,如下所示:
1 | const dog = this.physics.add.sprite(20, 20, 'dog') |
你也可以創建一個物理組。
組對於設置一組物件的共同規則非常有用。
我們有兩種類型的組: 靜態組和動態組。靜態組包含不會移動的元素,例如平台遊戲中的地面:
1 | //在 preload() 方法中 |
注意: 可以從 https://github.com/photonstorm/phaser3-examples/tree/master/public/assets 下載該資源。
動態組包含可以移動的元素,並且具有速度和速度的屬性:
1 | const dogs = this.physics.add.group() |
你可以使用 items.add()
方法將物件添加到組中:
1 | const dogs = this.physics.add.group() |
組還提供了一個方便的 create()
方法,可以用來自動創建遊戲對象:
1 | platforms.create(200, 200, 'ground') |
一旦你設置好了物理對象,就可以開始處理碰撞了。
tags: [“phaser”, “physics”, “game development”]