由于神秘岛4的.m4b包文件不存在免打包的方法,5 e% O, V, }0 T2 @/ h8 x5 I& q
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。/ W+ _: b1 u: X, Y* V( f5 ]
1 I. [( O. K$ ]! a
说出来其实很简单。
) l0 _' {7 V5 W. {2 W/ B* i$ o9 s我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。' P) O: z# z w
也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和
' v/ e8 l6 ~. G新版本子文件相对应。 h; o2 ]& R. z1 b
b& i* N8 x7 f' D; A* g/ e2 j
当然,这个方法有一定的局限性,就是不能增加新文件。
: }. c+ I/ b4 h5 ~ u D8 E否则后面的偏移量就不对了。4 W. R5 g# z! ~. k* t8 o
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。4 L6 [2 A5 O7 I6 }( }
. S* V3 I, l% Y, `9 V
这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。
. q! I3 L: x, U3 N8 D- c% g( k连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |