本文也是《[手把手帶你Godot遊戲開發]案例一:1.Hello World》中問題的答案
問題
如何把“地面”放到“草坪”的前面
解決方案
1. 改變的順序
在本案例中,場景結構比較簡單,只要在場景視圖中,改變一下"Floor"和"Background"的順序即可,越下方的Sprite
越顯示在上方
草坪就到前面來了
2. 設置Z Index
上面方法的前提條件是這兩個Sprite
的 Z Index
是相同的,因爲Node2D
(Sprite的基類)中的 Z Index
是比" 順序"更具決定權的參數, Z Index
越大越顯示在前端,在兩個Sprite
的 Z Index
不同的情況下,無論怎樣改變它們的“順序”,遮擋關係都不會改變。更好的方法是把"Floor"的 Z Index
設得比"Background"大一些。
3. 使用YSort
節點
還有些更復雜的情況,比如下圖《星布穀物語》這種俯視視角的遊戲,遊戲運行時隨着角色的遮擋關係會隨時改變,這樣的話我們實時計算並設置物體的Z Index
也是很麻煩的
Godot提供了一個YSort
節點,它會實時通過子節點的Y
座標,來實時處理遮擋關係,十分方便。