作了幾個更新。 1,圖形解碼(Image Decoder) 原本Good使用來解碼圖形的程式庫是 ImageStone ,這是個C++的影像處理程式庫。當初會用它,是因為容易使用。但因為只是用來載入圖形,所以在作 PSP版移植 時,就另外作了一個簡單的image decoder,不過當時只作了 PNG 格式的支援就沒再繼續進行。 現在繼續完成了 BMP 及 JPEG 格式的支援。 BMP:BMP的格式比較簡單些,是自行實作。 PNG :使用 libpng 。 JEPG:使用 libjpeg 。 目前還缺 GIF 的支援,另外取消 TGA 格式支援。 而在Windows平台上,則直接使用系統提供的 GDI+ 來作圖形解碼。將ImageStone替換掉後,code size縮減了約40k。 2,繪圖模組(Render Pipe) 基於前次的 rect packing 的研究結果,利用昨天台風假在家,花了幾個小時將演算法整合進到GoodEngine的繪圖模組裡,過程相當順利。 以範例遊戲 25940m 為例,遊戲全部使用了9張貼圖。以原本的繪圖引擎來說,這9張貼圖會被載入並建立成各自獨主的9張貼圖。如此在繪圖時,貼圖間的切換就會相當頻繁。現在加上texture packing支援後,9張貼圖可以全部合併到1張1024x1024的貼圖內,這樣就能省掉切換的時間提升速度,同時也省掉額外貼圖記憶體的浪費。 3,新增範例 新增了一個簡單的範例solar,建立簡單的太陽系系統示範物件階層架構的使用。 這個範例建立三個貼圖物件用來代表太陽、地球及月球。月球繞行parent object地球轉,地球繞行parent object太陽旋轉,而太陽慢慢自轉。