跳到主內容
版本:v8.x

精靈

精靈是 PixiJS 中最簡單且最常見的可渲染物件。它們代表要顯示在螢幕上的單一影像。每個 精靈 都包含要繪製的 紋理,以及在場景圖形中運作所需的所有轉換和顯示狀態。

建立精靈

要建立精靈,您只需要一個紋理(查看紋理指南)。使用 Assets 類別載入 PNG 的 URL,然後呼叫 Sprite.from(url),這樣就大功告成了。不同於 v7,您現在必須在使用紋理之前先載入,這是為了確保最佳做法。

查看 精靈範例程式碼

使用精靈

在我們的 容器指南 內,我們瞭解 Container 類別和它定義的各種屬性。由於 Sprite 物件也是容器,您可以移動精靈、旋轉精靈,並更新任何其他顯示屬性。

Alpha、Tint 和混合模式

Alpha 是標準的顯示物件屬性。您可以透過在一段時間內讓每個精靈的 Alpha 從 0.0 動畫到 1.0,來使其漸入場景。

色調允許您使用單一顏色來乘上每個畫素的顏色值。例如,如果您有一個地下城遊戲,您可能會透過設定 obj.tint = 0x00FF00 來顯示角色的中毒狀態,這會讓角色呈現綠色色調。

混合模式會改變在渲染時畫素顏色新增至畫面中的方式。三個主要模式為**加法**,會將每個畫素的 RGB 通道新增到精靈下方存在的任何事物(適用於發光和光照),**反白**如同 色調 但以每個畫素為基礎,以及**螢幕**,會將畫素疊加,照亮它們下方存在的任何事物。

縮放相對於寬度和高度

在使用精靈時,一個常見的混淆領域在於縮放和尺寸。容器類別讓你可以為任何物件設定 x 和 y 的縮放。精靈是容器,也支援縮放。然而,精靈還支援明確的 widthheight 屬性,可以使用它們來達成相同的成效,但這不是使用百分比,而是像素。這種做法能運作,是因為精靈物件持有具有明確寬度和高度的紋理。當你設定精靈的寬度時,PixiJS 會在內部將其轉換為底層紋理寬度的百分比,並更新物件的 x-scale。因此,width 和 height 實際上只是基於像素尺寸而非百分比來變更比例的方便方法。

錨點 vs. 定點

如果你將精靈加入舞台並旋轉它,它會以預設在影像的左上角旋轉。在某些情況下,你會想要這樣做。然而,在許多情況下,你想要精靈圍繞它所包含的影像的中心,或圍繞一個任意點旋轉。

有兩種方法可以達成此目的:錨點定點

一個物件的定點是一個從精靈的左上角開始的偏移,以像素為單位。它的預設為 (0, 0)。如果您有一個紋理為 100px x 50px 的精靈,並且想將定點設定在影像的中心,您會將定點設定為 (50, 25) - 一半的寬度,以及一半的高度。請注意,定點可以設定在影像的外側,這表示定點可能是小於零或大於寬度/高度。舉例來說,這在設定複雜的動畫層級架構時可能會有用。每個容器都有定點。

錨點,相較之下,只供精靈使用。錨點以百分比指定,從 0.0 到 1.0,在每個維度上。要使用錨點旋轉圍繞紋理中心,您會將精靈的錨點設定為 (0.5, 0.5) - 寬度和高度的 50%。雖然較不常見,錨點也可以超出標準的 0.0 - 1.0 範圍。

錨點美妙之處在於它們不依賴於解析度和尺寸。如果你將精靈設定為錨點在中間,然後再變更紋理的大小,你的物件將會正確旋轉。如果你使用基於像素的計算來設定定點,變更紋理大小便需要變更你的定點。

因此,一般來說,你會想要使用錨點來處理精靈。

最後一個備註:與 CSS 不同,設定影像的轉換起源不會移動它,在 PixiJS 中設定錨點或定點移動螢幕上的物件。換句話說,設定錨點或定點不只會影響旋轉起源,也會影響精靈相對於它父項的位置。