由于神秘岛4的.m4b包文件不存在免打包的方法,0 W: ^' T0 U( _6 O! o$ o$ X) A
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。
& R1 R% T( F# H+ m; h3 ]: k* V1 v8 W5 H) O; M
说出来其实很简单。
2 M, b( c6 g3 f我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。
# F# A* I# G# n. i4 e' C* ~0 k也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和
- H! P, N. i8 \' ^2 p$ o新版本子文件相对应。7 p/ N* [6 Q( e
( J9 U9 W, l% S5 U
当然,这个方法有一定的局限性,就是不能增加新文件。
/ V. m# L4 z. p7 S7 d否则后面的偏移量就不对了。
# E2 `. e2 I3 P4 R0 B% j9 H8 A1 o; ^就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。
+ h7 \/ g" L. A# g7 Y' O6 y: o6 L
这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。- U4 o$ ^) q2 q" A
连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |