跳到正文
文件
本頁內容

圖片與字型

能用形狀就用形狀:它沒有檔案,不佔記憶體,也沒有版權問題。圖片尺寸與它在螢幕上佔的位置相當即可,移動端關卡不超過2048,其他情況不超過4096

圖片尺寸向上取整到2的冪

格式與尺寸

引擎能從檔案位元組中解碼的格式都能載入。實際上就是png和jpg

遊戲不限制檔案大小,限制來自硬體:

裝置最長邊
Android,保證支援4096
Android,通常8192到16384
桌面PC最多32768

記憶體

真正的限制是記憶體。無論檔案多大,圖片在記憶體中都以原始畫素儲存。png每個畫素佔4位元組。jpg佔3位元組,因為它沒有透明度

尺寸記憶體(png)
512×5121MB
1024×10244MB
2048×204816MB
4096×409664MB
8192×8192256MB
注意

一張8192的紋理,單張圖片就要佔四分之一GB。在手機上這不是變慢,而是崩潰

由玩家決定的部分

每個玩家的圖形設定中有三項決定圖片佔用多少記憶體:

  • 載入時是否壓縮圖片。壓縮會把上面的數字除以4到8
  • 圖片在記憶體中的最長邊。邊長減半,記憶體變為四分之一
  • 是否生成Mipmap,也就是用於小尺寸繪製的縮小副本

手機預設壓縮圖片,並限制在2048。桌面PC保留完整圖片,並限制在4096

你需要做的是填寫圖片上的欄位,首先是圖片上畫的是什麼。這些欄位位於資源列表中圖片的旁邊。照片最能承受縮小和壓縮。邊緣銳利的繪圖承受得較差

畫素畫從不生成Mipmap,無論裝置傾向於怎樣處理。它預設也不壓縮、不平滑,這可以通過壓縮和取樣欄位修改

Mipmap

Mipmap可以防止小圖片閃爍。它們是縮小的副本,圖片在螢幕上顯示得很小時,會代替完整圖片繪製。它們會多佔用三分之一的記憶體

沒有Mipmap時,縮小的圖片不會變平滑,而是會出現波紋。玩家可以關閉Mipmap,而畫素畫永遠不會有Mipmap

一張在螢幕上只佔200畫素的4096圖片,佔用的記憶體是預先縮小到256的同一張圖片的256倍

形狀優先於圖片

形狀在各方面都比圖片便宜:沒有檔案,不佔記憶體,沒有版權問題。內建形狀是真正的幾何體,而不是貼在矩形上的圖片。它們沒有會被繪製然後丟棄的透明邊緣

這在手機上很明顯。在中端移動晶片上,一個有1000個物體的場景會把95%到97%的GPU時間花在畫素著色上。一個形狀只覆蓋自身矩形的29.4%。帶紋理的四邊形其餘部分都是透明的浪費

真正需要一張畫面時才需要圖片:標誌、照片、手繪作品。幾何圖形請使用形狀。沒有需要的形狀,就在形狀編輯器中畫出來

字型

字型可以載入ttf、otf、ttc格式。沒有自帶字型時,文本會用系統中現有的字型繪製,而不同裝置上的字型各不相同

字型快取是預先準備好用於繪製的字元集合。一個生成器會根據關卡中包含的文本重新構建它。等文本不再變化後再執行這個生成器

接下來:關卡預算、移動裝置