游戲開發其中一環就是非常枯燥的資源加載及布局,大多數大型游戲都會有編輯器,對自己的游戲中用到的層場進行可視化編輯,但創建這樣一個引擎對中小型游戲來說,反而是開發比例不對稱,所以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中下載