C#文件处理

来源:互联网 发布:四元数姿态解算python 编辑:程序博客网 时间:2024/06/10 20:10

魔兽世界的资料片无望了,又回来写程序了,研究WOW很久了,感触不少,其中有一点就是游戏资源的载入管理,WOW的资源文件中,最大的一个是3.72G,最小的也有几十兆,里面应该包括了N多的资源,而且是不同类型的,如3D模型、纹理贴图、声音文件……(不知道它的技能和任务文字说明是在客户端还是服务器实时发来的)。不知道暴雪是怎么组织和载入这些东东,但是绝对不可能一下载入一个3.72G的文件,想来想去,觉得资源文件的归类整理是很重要的,就研究了一下。

写了一个游戏资源编辑器 ,中间真是挫折不少,首先是C++到C#的转变,主要是文件处理上的不适应,C/C++程序读写图形文件相当方便(主要是Win 32 API本来就是为C/C++提供的),C#读写起来就有点不太顺,我总是想用Win32 API中的结构体去读取,那样各类数据就自动填充好了,不过C#的块读取只能填充Byte[]或Char[],总是觉得不顺,现在还是感觉不爽,后来干脆不管了,直接读取图形数据塞到资源文件就行了,大不了写解析资源文件的类时注意下。

中间还出现过一些问题,读取并绘制*.tif文件时总是出现绘制大小与实际大小不一样(感觉分辨率也变了)用PhotoShop打开一看,原来TIF文件保留了图层,可能是这个原因吧,直接转存BMP了(不知道能不能在程序中操作图层的显示???),就好了,还有原来C# Form属性中的宽度和高度包括了窗体边框和标题栏所占的位置。

我准备建的这个资源文件采用目录索引式(类似于TIF文件格式),就像一本书一样,你可以(也只能)根据目录去找你想要资源的位置,然后将其载入使用,我想这样应该来说还算方便吧(不过真的好像知道游戏公司他们的资源是怎么打包的)。

还在研究三维模型如何打包,这个让人很郁闷,在网上怎么也找不到关于Maya输出文件格式的说明,昨天突然想到VRML也可以建模,而且VRML文件是文本文件又有国际标准,Maya也能输出这种格式,仔细查了下绝望了,文本在文件中的顺序可以随意,只要不违反语法就行,让人怎么读呀……

三维模型格式仍在研究中……

程序源码稍后给传上来,大家有兴趣可以看看

哦,有点忘了说,《墨香》这个游戏的位图资源居然没打包(可能只是一部分)
http://download.csdn.net/user/DreamFlyingFish

原创粉丝点击