游戏引擎中的文件系统是非常重要的一环,基本的文件系统功能不外乎以下功能:
1.打开文件
2.检测文件是否存在
3.获取给定文件目录列表
4.文件其它操作
5.各类文件的处理(日志,xml等等)
盖莫游戏引擎也有必要有自己内置的文件系统来管理引擎所使用的文件或者资源。
以下是简单的测试例子:
1 #include <GEngine/Gaimo.hpp>
2 using namespace std;
3
4 int main(int argc, char **argv)
5 {
6 //! 初始化引擎设备并得到设备指针
7 core::Device* device = core::InitDevice("盖莫引擎文件系统测试");
8 core::Render::SetClearColor(core::Color(0.5f,0.6f,0.6f));
9
10 //! 获取文件系统指针
11 core::RefPtr<core::FileSystem> filesystem = device->GetFileSystem();
12 //! 获取引擎资源管理器
13 core::ResourceManager* resmgr = device->GetResourceManager();
14
15 filesystem->AddToSearchPath("..\\font\\font.zip");
16 bool flag = filesystem->IsExists("accid.ttf");
17 if(flag == false)
18 {
19 ShowMessage(不存在字体文件accid.ttf)
20 device->Close();
21 device->Drop();
22 return -1;
23 }
24
25 //! 读取文件数据
26 core::RefPtr<core::ReadFile> file = filesystem->OpenRead("accid.ttf");
27
28 //! 使用给定字体文件(ttf)
29 core::RefPtr<core::Text> font = resmgr->GetText("newfont",file,18);
30
31 int fps;
32 char text[255];
33 BEGIN_LOOP(device)
34 glClear(GL_COLOR_BUFFER_BIT);
35 fps = device->GetFPS();
36 sprintf(text,"fps is: %d",fps);
37 font->Render(540,0,text);
38 font->Render(200,80, "This demo is testing GEngine's FileySystem.");
39 font->Render(250,105, "GaimoSoft Studio.");
40 END_LOOP(device)
41
42 device->Close();
43 device->Drop();
44
45 return 0;
46 }
47
48
下面是简单的贴图:
从代码中可以看出引擎对zip压缩格式是内置支持的