樂園復活計劃 - 2


花了一整晚的時間,終於有少許成果了

左邊是直接讀取real.bin , 右邊是一年前製作出來的bitmap

real.bin中儲存的是已壓縮的格式

而且是JSS自訂的run-length algorithm

所以也只能靠decompile的一堆源碼

而我要做的就是將解壓後的pixels , 連同palette還原成bitmap

格式可參考https://en.wikipedia.org/wiki/BMP\_file\_format

由於用palette的緣故 , 所以bmp的格式只能是16bit以下 (因為16bit就已經可以直接用來表示顏色,而不必要用調色盤來轉換了)

BitmapPalette palette = Palette.getPalette();
return BitmapSource.Create(width, height, dpi, dpi, PixelFormats.Indexed8, palette, pixels, width);

c#提供了方便的method去把pixels 轉換成bitmap 所以難度不大 目前需要解決的反而是透明背景的問題 最簡單的是直接把調色盤的相對顏色改為透明 但不清楚會否影響到其他顏色?

題外話 嘗試用texture packer把一隻怪獸壓成sprite sheet

結果是160frame已經要製成兩張合共1MB的png了… 所以把bmp轉換成png spritesheet應該很不通 而且跟本不能想像如果畫面有幾十個不同角色同時出現要load數以十計的spritesheet的後果…

看來要花時間研究自訂cocos2dx 中的render function… 直接用opengl把圖片畫出來…