2014年12月10日 星期三

開發日誌-0051 rollTurtle! prototype demo - Improve performance "pause UI" loading time



搞定啦!!!!
上星期決定不用內建的pause function,
打算自己刻一個,
在花了大約3個工作天之後,
終於完成了!!!

之前有提到,
gamesalad內建的pause function,
運作的方式是"將目前的場景所有的物件都凍結,
在載入一個新的場景覆蓋在上面",
如果需要pause,
就放在新載入覆蓋的場景,
但是因為是載入新的場景,
所以勢必需要讀取時間,
僅管很多人包括gamesalad官方都覺得只是一瞬間或是1~2秒,
根本沒差吧,
但是我覺得這樣根本不行!@@

所以決定自己動手刻一個,,
這次自己刻的pause,
採用不切換場景的方式,
在按下pause時,
在原場景用spawn actor的方式產生pause menu物件,
這樣就不會有loading的時間,
並且只凍結必要的物件,
以節省資源,
暫停時背景的雲、樹、小花、吃到東西的特效等演出用的裝飾性物件,
沒有必要去凍結它們的行為,也不會影響到遊戲的進行。

載入選單的部份比較單純,
比較麻煩的是關於凍結物件的詳細作業邏輯原理,
按下pause,
儲存主角烏龜的加速度X與Y,
將主角烏龜的加速度X與Y設為0,
在解除暫停的時候在載入之前儲存的加速度參數還原到主角烏龜身上,
(當然還有遊戲時間計時也要停止與繼續).

以結論來看是很簡單好做的,
但是在思考詳細做法的過程真的很辛苦,
苦惱了好久,終於完成了!!
而且還有時間多製作一些其他的細節,
比如碰到小小龜過關時候的zoom in效果、過關文字,
以及一些暫停時會產生的bug修正等,
下週終於可以再往下推進新的進度了!!

最後就來看看性能改進後外加一些細部效果的實機操作影片吧!!
流暢,滑順,這才是正常的暫停選單啊^^"


沒有留言:

張貼留言