由于神秘岛4的.m4b包文件不存在免打包的方法,0 Y5 F# f6 ?9 v* H3 A+ G3 L
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。
! g9 j( U6 J( L& [6 P, a" _, U* ~! U! K/ x q: h' S. d
说出来其实很简单。
& _* o& v1 U$ E& W' L我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。
+ H; B) l. C: [ k( v也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和
$ U$ `! W8 _1 V, V9 X4 W新版本子文件相对应。
' b- p2 c9 ?' J* g$ I6 @ m9 ]. M' }6 p9 ^# u! p0 `0 D3 ^
当然,这个方法有一定的局限性,就是不能增加新文件。3 J- P2 G" r! T: i3 s: J6 \, b
否则后面的偏移量就不对了。) {+ R9 g; [. P5 p, i$ g4 Q" d
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。
) F1 v+ Z% a4 |) K" `' V# r, K" h. N2 N
这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。( R- q4 p! b4 [. m4 m
连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |