縮放

這是 Phaser 遊戲開發教程 16 個步驟中的第 2 步。我們將學習如何進行縮放,縮放是指遊戲畫布在不同螢幕尺寸下如何適應。我們可以在初始化時配置 scale,讓遊戲適應任何螢幕尺寸,這樣以後就不必擔心了。

Phaser 縮放物件

config 物件中的 scale 屬性允許我們設定遊戲畫布的縮放方式。按如下方式更新您的 config 物件:

js
const config = {
  // ...
  scale: {
    mode: Phaser.Scale.FIT,
    autoCenter: Phaser.Scale.CENTER_BOTH,
  },
};

scale 中的 mode 屬性提供了幾種不同的畫布縮放方式選項:

  • NO_SCALE—不進行任何縮放(預設值)。
  • ENVELOP—自動調整寬度和高度以覆蓋整個目標區域,同時保持縱橫比。它可能會超出目標尺寸。
  • FIT—將畫布縮放到適應可用空間,同時保持縱橫比不變。根據縱橫比,可能無法覆蓋整個空間。
  • HEIGHT_CONTROLS_WIDTH—根據高度調整畫布的寬度。
  • WIDTH_CONTROLS_HEIGHT—根據寬度調整畫布的高度。
  • RESIZE—調整畫布的可見區域,使其適應所有可用的父容器空間,而不考慮縱橫比。
  • EXPAND—調整畫布的可見區域,使其適應所有可用的父容器空間,類似於 RESIZE 模式,並像 FIT 模式一樣縮放畫布尺寸以適應可見區域。

另一個屬性 autoCenter 負責水平和垂直對齊畫布元素,因此無論尺寸如何,它始終將畫布居中顯示在螢幕上。

為畫布新增自定義背景色

我們還可以為畫布新增自定義背景色,這樣它就不會一直是黑色的。配置物件有一個 backgroundColor 屬性來實現此目的,我們可以使用 CSS 顏色定義語法進行設定。將以下行新增到您的 config 物件中:

js
const config = {
  // ...
  backgroundColor: "#eeeeee",
};

Compare your code

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

後續步驟

現在我們已經設定好了遊戲的縮放,讓我們繼續學習第三課,學習如何 載入資源並在螢幕上顯示它們