love2d教程22 金庸群俠資源格式解析1

2021-09-08 09:23:15 字數 1372 閱讀 8364

昨天折騰了大半天參考了鐵血丹心論壇裡各位前輩的經驗,還只是完成了一點,先記錄一下,以後再補充。

一、檔案縱覽

「金」的檔案命名很有規律,檔案分為「.idx、.grp、.col」,分別是索引、資料、調色盤。

到對應的.grp裡取資料,取出後再按調色盤顯示。

檔案列表:

1.所有人物頭像 hdgrp.grp hdgrp.idx

2.所有武功效果 eft.grp eft.idx

3.所有武功動作 fight???.grp fight???.idx

4.所有場景地圖塊 fmap.grp fmap.idx

5.所有外景地圖塊 mmap.grp mmap.idx

6.雲 cloud.grp cloud.idx

7.片尾動畫 kend.grp kend.idx

8.製作群資訊 endword.grp endword.idx

9.256色調色盤 mmap.col

二、調色盤解析

把調色盤mmap.col用十六進製制編輯工具(linux可以用ghexedit,windows用winhex)開啟,可以看到

一共有768位元組(乙個位元組是8個位元,即8位二進位制數/2位十六進製制數)。按照前輩的說法,它表示了

256種顏色,768/256=3即3個位元組代表一種顏色,正是我們熟悉的rgb顏色,不過它的順序是bgr,我

估計是大端模式的體現。而且「金」的顏色值是6位進製,要乘以4才行。

既然這個檔案那麼小,我便想乾脆把它轉換為lua的table算了。

下面是轉換**:make-color-table.lua

local f = assert(io.open(arg[1], "rb"

))local block = 3

local

numwhile

true

do--

每次讀取3個位元組

local bytes =f:read(block)

ifnot bytes then

break

endio.write(","

)

end

f:close()

開啟終端/cmd,輸入lua make-color-table.lua mmap.col >>mmapcol.lua就可以生成顏色表的luatable了。

然後使用查詢替換把",},",替換為",}",去掉多餘的逗號。

三、idx解析

它裡面的位址是四個位元組,也是大端模式,比如"0f ac 01 bc",實際表示的是"bc 01 ac 0f"。

解析idx就只需要逆序一下位址,並轉化為十進位制數。

**暫時不貼了,等完成了grp檔案的解析後一起貼出來。

love2d教程28 血條

感謝朱大仙提供的 這才有了這篇部落格。血條 至於體力 法力都是類似的 是遊戲裡常用的gui控制項,它主要實現兩個功能 增加 減少。效果如圖 沒有錄製gif 血條的繪製可以使用love裡的一些繪圖函式,還可以用填充。這裡採用bloodlineb.png填充,同時這個也是乙個quad的序列圖,用它來組成...

love2d教程28 血條

感謝朱大仙提供的 這才有了這篇部落格。血條 至於體力 法力都是類似的 是遊戲裡常用的gui控制項,它主要實現兩個功能 增加 減少。效果如圖 沒有錄製gif 血條的繪製可以使用love裡的一些繪圖函式,還可以用填充。這裡採用bloodlineb.png填充,同時這個也是乙個quad的序列圖,用它來組成...

love2d教程19 揹包

慚愧,在春節裡一篇文章也沒寫,現在又回到學校了,繼續love2d教程。由於我 只是現看現寫,有些地方可能錯了,希望大家指正,我會及時修正。這篇文章主要關 於loveframes的應用,是按朱大仙要求寫的,原文在此。揹包功能是通過loveframe來實現的,loveframes其實是支援中文的,只需要...