各位安,這邊是Maker製造機的粽子 這邊要跟大家分享一個狀況與解法。
粽子手上的遊戲 在去年年底上線搶先體驗版 後發陸續發生玩家卡在「Now Loading」的畫面,最後因此退費。
回歸正題,經過多次的查證問題後我們終於找到原因 部分Window 7 並不支援 *.otf 的字體檔案 為什麼說「部分」,因為也有許多window7的玩家是可以遊玩的,但詳細原因不明 遇到這個問題時並不會噴錯誤,因為系統判定是可以讀取到字體檔案,但可能卡在無法順利解析oft 的檔案而造成卡在now loading 畫面
解法
解法簡單的說就是在讀取字體時,加上判斷系統是否支援此種類型字體,不支援時讀取備用字體 先來看看資料結構,在 www/fonts 資料夾下分別放入你要用的字體檔案,以眼中來說就是 NotoSansCJKtc-DemiLight.otf NotoSansCJKtc-DemiLight.ttf
第二步就是修改 gamefont.css 的內容 記住加上 format , 才會判斷系統是否支援此種類型的檔案 ,支援的狀況下才會讀取,也可以避免 浪費記憶體
fomat ('opentype') 判斷是否支援 otf檔案 fomat ('truetype') 判斷是否支援 ttf檔案 這樣就可以解決玩家因為字體卡在now loading的狀況了
注意:
即使是同樣的字體, otf檔案跟ttf檔案呈現在遊戲中的效果也有落差,作者還是可以觀察一下兩種字體效果是否符合預期,也可以將備用的ttf檔案置換成其他字體(不一定都用同一種) EX: url ("NotoSansCJKtc-DemiLight.otf") fomat ('opentype'), url ("mplus-1m-regular.ttf") fomat ('truetype');
適用:
使用非RM內建字體或是 *.otf 的作者
小結:
沒記錯的話,目前window7漸漸被淘汰 otf字體也是目前的趨勢,所以會碰到卡now loading的狀況應該會越來越少,不過製作中的遊戲想避免這個問題的話,可以使用這個方式來避免 #特別感謝路過的光之美少女協助測試 以上!