由于神秘岛4的.m4b包文件不存在免打包的方法,% N# T7 A) F) L) }5 n2 t
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。
* W( \- ?& X. U, x, A
$ m3 M+ @. ?( ~% |说出来其实很简单。
7 k' K) V! q& u: E/ L8 x我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。
0 |( w& |% D9 A+ h也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和0 E. k% Z5 ]) l
新版本子文件相对应。7 Z. q# X& L- P
3 l' T0 P/ U8 C$ L2 v A4 m当然,这个方法有一定的局限性,就是不能增加新文件。
; {! M! ^/ z: @否则后面的偏移量就不对了。, x. n, Q$ k2 L0 x# k- ? d* R) z
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。1 X) D0 `5 m; b# P
( O$ ]/ Z2 v0 r, j这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。: ], P7 [3 Y- f9 T6 _6 ]. n
连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |