golang游戲等資源壓縮包創(chuàng)建和操作方法_第1頁
golang游戲等資源壓縮包創(chuàng)建和操作方法_第2頁
golang游戲等資源壓縮包創(chuàng)建和操作方法_第3頁
golang游戲等資源壓縮包創(chuàng)建和操作方法_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第golang游戲等資源壓縮包創(chuàng)建和操作方法游戲資源包的創(chuàng)建、修改、讀取等操作。

注意:資源包為游戲等需要快速讀取的場景使用,所以并未對文件進行分塊操作,都是一整個讀取壓縮的,所以需要自行保證文件大小的合理或者自行更改代碼進行分包壓縮,再則不對重復(fù)文件做校驗,不同路徑的同一個文件將被認為是兩個文件。

引入包:

gpk"/lsq51201314/go-pack"

創(chuàng)建資源包:

gpk.Object.Create(創(chuàng)建空的資源包)

gpk.Object.CreateFromFolder(從文件夾創(chuàng)建資源包)

varggpk.Object

deferg.Close()

iferr:=g.CreateFromFolder(

"D:/UserData/Desktop/resource",

"D:/UserData/Desktop/resource.gpk",

"123456",

process,

);err!=nil{

fmt.Println(err)

return

}

用于顯示處理進度的函數(shù):

funcprocess(filestring,current,countint){

fmt.Println(file,current,count)

}

載入資源包:

iferr:=g.Load("D:/UserData/Desktop/resource.gpk","123456");err!=nil{

fmt.Println(err)

return

}

獲取資源包內(nèi)文件數(shù)量:

g.GetTotal()

獲取資源包內(nèi)文件列表:

g.GetList()

讀取資源包內(nèi)文件:

ifdata,err:=g.GetData("image6021.png");err!=nil{

fmt.Println(err)

return

}elseiferr:=os.WriteFile("D:/UserData/Desktop/image6021.png",data,0777);err!=nil{

fmt.Println(err)

return

}

刪除資源包內(nèi)文件:

注意:為了快速處理,并沒有實際刪除文件,僅刪除了文件列表內(nèi)索引,資源包的大小并不會有變化。

g.Delete("image6021.png")

iferr:=g.Save();err!=nil{

fmt.Println(err)

return

}

添加或更新文件:

注意:為了快速處理,并沒有實際更新文件,不管是添加還是更新都是在文件的末尾操作,資源包的大小會隨著操作不斷變大。

iferr:=g.AddOrUpdate("test.txt",[]byte("helloworld"));err!=nil{

fmt.Println(err)

return

iferr:=g.Save();err!=nil{

fmt.Println(err)

return

}

重建文件:

說明:當資源包不斷的操作之后將產(chǎn)生很多的無用碎片導(dǎo)致資源包非常大,使用此方法重新生成一個資源包刪除掉無用的碎片是最好的選擇,此操作為漫長過程,需要用戶等待。

iferr:=g.NewFile("D:/UserData/Desktop/newRes.gpk",process);err!=nil{

fmt.Println(err)

return

}

合并資源包:

說明:合并來自另外一個資源包的資源。

iferr:=g.Merge("D:/UserDat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論