Cpper
C/C++高级工程师 Android高级软件工程师 IT集成工程师 音频工程师 熟悉c,c++,java,c#,py,js,asp等多种语言 程序猿

游戏引擎中的文件系统是非常重要的一环,基本的文件系统功能不外乎以下功能:
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压缩格式是内置支持的
posted on 2010-03-09 11:27 ccsdu2009 阅读(1281) 评论(6)  编辑 收藏 引用 所属分类: Game引擎
Comments
  • # re: 盖莫游戏引擎中的文件系统测试demo
    陈昱(CY)
    Posted @ 2010-03-09 17:37
    是不是没有做文件系统的话,以后资源打包的问题上就杯具了?

    在开发时,一般都是直接使用文件目录下的资源,但到发布产品时,都要把这些资源文件夹打包成zip之类的,然后保持代码改动最小。因此文件系统统一负责所有硬盘读写的操作,文件系统更主要的是这个功能吧?  回复  更多评论   
  • # re: 盖莫游戏引擎中的文件系统测试demo
    ccsdu2009
    Posted @ 2010-03-09 18:42
    @陈昱(CY)
    你看过irr引擎吗?  回复  更多评论   
  • # re: 盖莫游戏引擎中的文件系统测试demo
    陈昱(CY)
    Posted @ 2010-03-09 18:50
    还没有看过...  回复  更多评论   
  • # re: 盖莫游戏引擎中的文件系统测试demo
    陈梓瀚(vczh)
    Posted @ 2010-03-10 11:13
    RefPtr<A> a = device->CreateA();
    B* b = device->GetB();
    //不然的话,天知道谁会RefPtr<B> b = device->GetB();  回复  更多评论   
  • # re: 盖莫游戏引擎中的文件系统测试demo
    ccsdu2009
    Posted @ 2010-03-10 15:41
    @陈梓瀚(vczh)
    那你觉得应该如何书写之?  回复  更多评论   
  • # re: 盖莫游戏引擎中的文件系统测试demo
    陈梓瀚(vczh)
    Posted @ 2010-03-10 16:41
    @ccsdu2009
    就我的留言那么写……  回复  更多评论   

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理