最新的OGF 0.8.1版,已修正上一版已知的BUG,并加入了更多的功能。另外,已在此版本的基礎(chǔ)上,開發(fā)了一個(gè)休閑游戲,已證明該框架的可行性,穩(wěn)定性方面仍需后期的使用反饋才能能到確認(rèn)。(記得以前提及會用一個(gè)游戲來逐步講解使用OGF開發(fā)游戲的過程,所以游戲的代碼可繼續(xù)關(guān)注我的BLOG,將會陸續(xù)放出)
Fix bug:
1、計(jì)時(shí)器檢測釋放時(shí)有效判斷的BUG,將會導(dǎo)致后繼的計(jì)時(shí)器事件不能執(zhí)行或內(nèi)存不釋放
2、計(jì)時(shí)器和動作器增強(qiáng)了對同一ID的檢查,新版可通過設(shè)定是否檢測已存ID來開啟/禁用同ID的事件
3、更正GameObjectFont的重載BUG,原因是1。6版的HGE Font的重載方法有問題
4、修正GameLayouter內(nèi)Parse函數(shù)中執(zhí)行pParentNode->Value();有時(shí)會拋出錯(cuò)誤,已改為先判斷pParentNode是否為空
5、修正上一版本的鍵盤、鼠標(biāo)消息處理的一些BUG
Functions
1、GameFrame增加了CSoundHelper的協(xié)調(diào)類,暫時(shí)可播放/停止多個(gè)音樂文件,支持wam/mp1/mp2/mp3
2、GameFrame增加了CPropertiesManager的管理類,提供一個(gè)開放性框架讓用戶加方便使用道具系統(tǒng)
3、GameFrame增加了IGameProperties接口,方便自行擴(kuò)展道具
4、增加了ObjectCom對象發(fā)送控件消息至窗口,如:滾動條的滾動、文本框的改變等等
5、增強(qiáng)了GameFrame的消息處理,現(xiàn)可重載GameBody的OnWindowMsgProce方法,攔截所有消息
Change
1、為考慮OGF會接入MFC的可能,將底層的CString類改名為_CString
2、OGF.xml的布局配置文件中,Layer和Object標(biāo)簽均加入Disabled的屬性,并默認(rèn)為True,將不允許接收鼠標(biāo)、鍵盤消息,若需接收則手工配置為False
3、CResource類擴(kuò)展了對音樂文件的支持,可導(dǎo)入音樂文件由CSoundHelper類使用,并增加了多種ResourceType類型;在CResource構(gòu)造函數(shù)中最后增加了一個(gè)變量,以指明資源為何種類型,默認(rèn)為Resource_Picture(紋理)以和之前版本兼容。
4、CResource類增加了創(chuàng)建紋理及Bitblt的紋理讀寫方法,允許用戶使用HGE更多的高級特性
5、FrameCom與ObjectCom及GameFrame上同時(shí)限制了MouseOver/MouseIn/MouseOut/MouseClick的方法,當(dāng)所在的層/場景/視圖和對象的Disabled為False時(shí)才生效
6、GameFrame取消了對ObjectCom傳遞OnMouseUp和OnMouseDown的消息,有需要的話可從OnMouseClick中根據(jù)Type來區(qū)分,或在GameBody上進(jìn)行轉(zhuǎn)發(fā)
7、部分鍵盤、鼠標(biāo)消息的常量改變了
8、鍵盤、鼠標(biāo)回調(diào)方法的參數(shù)有所改
9、擴(kuò)展了OGF.xml的Button、Object的標(biāo)簽及屬性
10、GameFrame增加了鼠針指針的支持。可以通過m_GameFrameSetting指定鼠標(biāo)指針圖標(biāo)的動畫參數(shù)
11、tagFrameManagerHandle增加了額外的pIPropertiesManager和pSoundHelper管理指針
12、現(xiàn)已改為支持HGE 1.8版本。
Future
1、中文字庫支持。字庫創(chuàng)建的工具已基本完成,可選字體、字號及粘貼一段文本后自動抽取唯一字;待加入OGF系統(tǒng)框架;(作者:Ben)
2、可視化的時(shí)間幀編輯器。(作者:Randy)
3、可視化的布局編輯器。(作者:C&C++)
4、框架文檔化。(William)
OGF 0.8.1.0版下載:
/Files/lwq49/GameFrame0.8.1.0.rarHGE 1.8相關(guān)更新文件:
/Files/lwq49/hge18.rar HGE 1.8更新步驟
1、將include目錄中所有.h文件拷貝并覆蓋./Commond/include目錄下的文件
2、將lib目錄中所有.lib文件拷貝并覆蓋./lib目錄下的文件
3、將heg.dll,bass.dll兩個(gè)文件拷貝并覆蓋運(yùn)行目錄下的相應(yīng)文件