游戲開發(fā)其中一環(huán)就是非常枯燥的資源加載及布局,大多數(shù)大型游戲都會有編輯器,對自己的游戲中用到的層場進(jìn)行可視化編輯,但創(chuàng)建這樣一個引擎對中小型游戲來說,反而是開發(fā)比例不對稱,所以O(shè)GF內(nèi)置了場景布局器,方便中小型游戲方便地從XML文件中加載,而生成XML的界面編輯器也會優(yōu)先開發(fā)出來,以簡化這方面排版的時間消耗.
布局器是一條處理鏈,鏈中可能有多個不同性質(zhì)的布局處理器,例如:處理資源的,處理環(huán)節(jié),場景,場的,還有是處理對象的等.用戶也可自行擴(kuò)展XML的內(nèi)容,但要求自己編寫布局處理器,然后注冊到系統(tǒng)中使用即可.
Sample07
簡介:布局器
該示例會以一個以前做過的游戲背景為基礎(chǔ),顯示了如何按OGF.xml中的內(nèi)容進(jìn)行布局.
1.在MyGameBody的OnInitialize()事件中,加入以下代碼:
//創(chuàng)建自定義的環(huán)節(jié)
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);
//創(chuàng)建自定義的環(huán)節(jié)
if(RegisterLayouter())
if(m_pGameLayouter->LoadLayout("OGF.xml"))
m_pGameLayouter->NextNode();
return true;
2.將MainSection類中除構(gòu)造函數(shù)和析構(gòu)函數(shù)外的方法刪除.
3.確保運(yùn)行目錄中存在OGF.xml
4.編譯并執(zhí)行.
運(yùn)行結(jié)果:

注:代碼及運(yùn)行程序下載請至http://blog.csdn.net/lwq49/archive/2007/07/19/1698722.aspx中下載