hge
系列之二
更上層樓
上次頗為感性的描述了一番
hge的輪廓,並給出了乙個世界上最簡單的
hge示例程式,不知讀過的人有了怎樣的認識,如果你說一點感覺都沒有的話——哦,好吧,在此我再重述一番要點便是:
1.
hge
是一款支援硬體加速的
2d遊戲引擎。
2.
hge
的有以下優點:l由於
hge構建於
directx
之上,所以其能夠較好的支援硬體加速,並執行於安裝有
directx(
確切的說是
directx 8.0 )
的所有win32
平台上;
lhge
擁有較為完善的文件支援,並且
hge小組隨時準備處理你的任何反饋;
lhge
是免費的,並且從
1.7版本起便開始開源,而其
發布在zlib/libpng
許可證之下的特性,使他能夠完全免費的提供給任何的使用者包括商業使用者(音訊部分除外) l
hge專注於
2d遊戲開發,
介面簡單並且易於擴充套件,而且非常穩定!
3.
hge使用簡單,不信看看示例:)
好了,複習時間結束,讓我們轉入今天討論的主題:
hge的整體架構。也許你會問為
何不繼續講解幾個示例,不過我想說只有我們首先對
hge的結構有了一些認識,才能更順暢的揮舞起
hge的
api,你說呢?當然,由於水平原因,我也不可能就此將你帶入軟體架構的殿堂,只是本著一起學習的態度稍稍討論一番,所以就請原諒我的一意孤行,容我將話講完吧:)
首先來看一張
hge官網提供的
hge架構圖:
這張圖並不是專業的
uml,相反的,他只是一張形象的示意圖罷了,不知大家看明白了多少,在此我再細細的嘮叨一番:
1.首先想講講的便是hge core functions
,意思很明確,就是
hge的核心介面函式,
hge文件中的
hge functions
便是指這個部分,如果你看過這部分的文件就知道,這部分函式提供了所有的底層操作支援,包括圖形、聲音、輸入等等等等,其實就實現來說,這部分只用到了兩個類:
class hge
及class hge_impl
。其中hge
只是乙個介面類,包含了所有這些函式的純虛定義,而
hge_impl
則公共繼承
hge,並借助各類第三方庫實現了所有這些介面(函式)。
2.再者便是hge helper classes
,即
hge輔助類,其實就功能來說,
hge的核心函式已經提供了全部,而這也意味著你完全可以在此基礎上構建起你的遊戲,但很顯然,由於
hge core functions
提供的操作過於基本,這勢必導致開發效率的降低,所以
hge的作者又在
hge core functions
的基礎上封裝了其中的很大一部分內容,於是便有了
hge helper classes
,目前而言,他包括
hgesprite
、hgeanimation
、hgefont
等等類,提供的功能實用繁多,有興趣的朋友可以看看文件繼續了解。
3.至此,借助
hge core functions
以及hge helper classes
的鼎力支援,
那些hge
的使用者(user
)自然便可「逸興遄飛」的開始編寫他們的遊戲**了,而這也便成了圖中的user code
部分。
4.hge
是否就包含以上的
hge core functions
和hge helper classes
呢,畢竟現在我們已經能夠較方便的編寫遊戲了,但顯然,
hge的作者為了方便
hge的使用者,使他們能達到很方便的境地,於是便有了hge authoring tools
,其實說白了,他們就是一些遊戲開發中的編輯工具,
hge的最新版本中提供了很多實用的工具:如字型編輯器等共計五項,其中的一項粒子編輯器本人覺得很有味道,有興致的朋友不妨試試
:)5.
好了,hge
的構成到此已經清晰,它包括
hge core functions
、hge helper classes
以及hge authoring tools
三個部分,而
hge的使用者則可以藉此編寫出他們的遊戲**(user code
),並生成
game
executable
(遊戲可執行檔案)以及各類的
game resources
(遊戲資源),而這兩部分便一起構成了
game。
6.圖例裡的各部分我已經講完了,哦,不,等等,好像還有個
external authoring software
,這個麼
…我想可能是作者認為
hge提供的工具還遠未完善,所以仍需要外部的一些編輯軟體的幫忙,譬如
photoshop
一類,所以便有了這麼一項…
呼,總算講完了,內容雖然不多,但也挺費勁
… 好了,今天就講到這吧,其他的內容我想我得再仔細研習一下
hge,否則就免不了貽笑於大方之家,到時可就囧大了
…所以麼,還是那句,下次再見嘍:)
雲計算助力教育行業 質量更上層樓
本文講的是雲計算助力教育行業 質量更上層樓,教育行業指的是知識傳遞過程中所產生的經濟行為,其包括人群是全方位的。從年齡結構分類可以簡單分類為基礎教育,教育,從學習特點分類可以分為學歷教育和非學歷教育,從學習方式可以分為面授式教育和利用資訊科技手段的遠端學習。這是關於教育行業的乙個普遍的概念,其實我們...
hibernate系列之二
首先先介紹一下持久化 持久化 將程式資料在持久狀態和瞬時狀態間轉換的機制 即將記憶體的資料永久存在關係型資料庫中 持久化類的編寫規則 持久化類需要提供無參構造方法 持久化類的屬性需要私有,對私有的屬性提供get set方法 持久化類的屬性盡量使用包裝類的型別 持久化類要有乙個唯一標識oid與表的主鍵...
redis集合系列之二
目錄 srem smove scard 1.語法 srem key member member.2.解析 移除集合key中的乙個或多個member元素,不存在的member元素會被忽略 當key不是集合型別時,返回乙個錯誤 2.4之前 只接受單個member值 3.返回值 被成功移除的元素的數量,不...