游戏开发其中一环就是非常枯燥的资源加载及布局,大多数大型游戏都会有编辑器,对自己的游戏中用到的层场进行可视化编辑,但创建这样一个引擎对中小型游戏来说,反而是开发比例不对称,所以OGF内置了场景布局器,方便中小型游戏方便地从XML文件中加载,而生成XML的界面编辑器也会优先开发出来,以简化这方面排版的时间消耗.
布局器是一条处理链,链中可能有多个不同性质的布局处理器,例如:处理资源的,处理环节,场景,场的,还有是处理对象的等.用户也可自行扩展XML的内容,但要求自己编写布局处理器,然后注册到系统中使用即可.
Sample07
简介:布局器
该示例会以一个以前做过的游戏背景为基础,显示了如何按OGF.xml中的内容进行布局.
1.在MyGameBody的OnInitialize()事件中,加入以下代码:
//创建自定义的环节
CMainSection* pMainSection = new CMainSection(GAME_PLAYING_SECTION);
if(pMainSection){
Add((IGameSection*)pMainSection->QueryInterface(IID_IGameSection, VER_IGameSection), pMainSection->GetSectionID());
}
m_pCurrentSection = (IGameSection*)pMainSection->QueryInterface(IID_IGameSection, VER_IGameSection);
//创建自定义的环节
if(RegisterLayouter())
if(m_pGameLayouter->LoadLayout("OGF.xml"))
m_pGameLayouter->NextNode();
return true;
2.将MainSection类中除构造函数和析构函数外的方法删除.
3.确保运行目录中存在OGF.xml
4.编译并执行.
运行结果:
注:代码及运行程序下载请至http://blog.csdn.net/lwq49/archive/2007/07/19/1698722.aspx中下载