一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)

一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)

ID:20018753

大?。?3.50 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2018-10-09

一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
資源描述:

《一種2d游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、一種2D游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)摘要對(duì)現(xiàn)有游戲引擎開(kāi)發(fā)技術(shù)進(jìn)行改進(jìn),提出了一種有效的2D游戲引擎設(shè)計(jì)與實(shí)現(xiàn)方法,該方法以引擎架構(gòu)為基礎(chǔ),以累積渲染技術(shù)作為主要渲染加速手段;結(jié)合精靈與動(dòng)畫(huà)技術(shù)進(jìn)行具體實(shí)現(xiàn),達(dá)到游戲引擎設(shè)計(jì)的目的。最后通過(guò)該方法實(shí)現(xiàn)了一個(gè)2D游戲引擎,并用實(shí)驗(yàn)驗(yàn)證了該方法的有效性。  1、引言  2D游戲開(kāi)發(fā)是游戲開(kāi)發(fā)領(lǐng)域中一個(gè)不可或缺的重要分支,絕大多數(shù)休閑游戲與動(dòng)漫游戲都是使用2D游戲技術(shù)開(kāi)發(fā)實(shí)現(xiàn)的。2D游戲技術(shù)已經(jīng)成為了手機(jī)及一系列小型設(shè)備游戲開(kāi)發(fā)的主導(dǎo)技術(shù)。游戲引擎是游戲開(kāi)發(fā)的最基礎(chǔ)部分,為此我們提出了一種有效的2D游戲引擎的設(shè)計(jì)與實(shí)現(xiàn)方

2、法。通過(guò)該方法,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了一款2D游戲引擎。  2、2D游戲引擎核心構(gòu)架  2.1引擎構(gòu)架  引擎構(gòu)架是游戲引擎的骨架,它的任務(wù)就是把圖像渲染、輸入處理、音頻播放、資源管理等游戲引擎的基本功能組合成一個(gè)有機(jī)的整體。目前已經(jīng)有很多比較成熟的引擎架構(gòu)方法包括:  (1)結(jié)構(gòu)化構(gòu)架。結(jié)構(gòu)化構(gòu)架采用的方法是將游戲引擎內(nèi)部的模塊以結(jié)構(gòu)化的形式組合,并以API的形式提供接口,這種構(gòu)架模式的優(yōu)點(diǎn)是效率高,接口簡(jiǎn)單清晰,適合于做一些速度要求比較高的引擎,但是缺點(diǎn)是其模塊之間耦合度高,不易修改?! ?2)基類(lèi)根形式構(gòu)架。基類(lèi)根形式構(gòu)架是以基本的幾個(gè)抽象服務(wù)提供接口類(lèi)為

3、基礎(chǔ),并以接口與實(shí)現(xiàn)相分離為原則,來(lái)進(jìn)行引擎實(shí)現(xiàn),提供的實(shí)現(xiàn)類(lèi)在引擎內(nèi)部創(chuàng)建,而將接口供給用戶(hù)使用。這種構(gòu)架模式的優(yōu)點(diǎn)是結(jié)構(gòu)清晰,實(shí)現(xiàn)靈活,可以適應(yīng)比較大的變化,適合于做一些較大且有跨平臺(tái)需求的引擎,但是該架構(gòu)依賴(lài)于基本的抽象類(lèi)的繼承關(guān)系,導(dǎo)致引擎內(nèi)部類(lèi)繼承了無(wú)用的功能而變得虛大,況且接口的通用性使得實(shí)現(xiàn)的效率不高,導(dǎo)致整體效率偏低?! ?3)組件形式構(gòu)架。組件形式構(gòu)架是把不同功能的模塊做成互相獨(dú)立的系統(tǒng),模塊內(nèi)部可以使用任何構(gòu)架方式,只需要提供相應(yīng)的接口即可。引擎以模塊管理器為核心,支持插件形式組件增加方式,可以將新增的功能組件以插件的形式來(lái)插入系統(tǒng)工作

4、,這種構(gòu)架方式極其靈活,且模塊內(nèi)效率比較高,所以某些大型商用游戲引擎采用這種方式,但這種方式設(shè)計(jì)比較困難,實(shí)現(xiàn)比較復(fù)雜,需要大量的開(kāi)發(fā)經(jīng)驗(yàn)。鑒于本文所提引擎開(kāi)發(fā)是以研究為主,且2D游戲要求效率不是很高,我們決定采用結(jié)構(gòu)最為清晰的基類(lèi)根形式構(gòu)架方法。以4個(gè)基本服務(wù)抽象類(lèi)作為整個(gè)引擎底層提供服務(wù)的基礎(chǔ)(如表1)。在基本類(lèi)的基礎(chǔ)上派生出引擎使用的基本類(lèi)結(jié)構(gòu)(見(jiàn)表2)。類(lèi)名功能說(shuō)明IRefCount提供引用計(jì)數(shù)功能ITypeInfomation提供類(lèi)型識(shí)別功能IObjectInfomation提供對(duì)象識(shí)別功能IPersistence提供對(duì)象持久化功能表1基本服務(wù)抽

5、象類(lèi)及功能說(shuō)明類(lèi)名父類(lèi)IBaseITypeInfomationIResourceIBase、IObjectInfomation、ITypeInfomation表2基本類(lèi)結(jié)構(gòu)繼承關(guān)系  其中,IBase類(lèi)是引擎中絕大部分接口類(lèi)的基類(lèi),它實(shí)現(xiàn)了的類(lèi)型識(shí)別虛方法。IResource類(lèi)是引擎中資源的基類(lèi),它在IBase基礎(chǔ)上實(shí)現(xiàn)了引用計(jì)數(shù)和對(duì)象信息功能?! ?.2引擎模塊實(shí)現(xiàn)  為了實(shí)現(xiàn)方便,我們把引擎劃分成7個(gè)功能模塊:core,math,video,system,input,audio,scene?! ?1)core模塊。除了定義了引擎基本類(lèi)及功能以外,還提供

6、了一些基本設(shè)施,例如日志系統(tǒng),異常處理,以及資源管理等?! ?2)math模塊。提供引擎需要的數(shù)學(xué)庫(kù),包括向量,矩陣,基本圖元的定義和實(shí)現(xiàn)功能。  (3)video模塊。負(fù)責(zé)基本圖元的渲染,對(duì)渲染環(huán)境的設(shè)置,對(duì)紋理的創(chuàng)建及加載,以及基本字體渲染?! ?4)system模塊。提供引擎在操作系統(tǒng)下的驅(qū)動(dòng)以及對(duì)操作系統(tǒng)功能使用的封裝,包括窗口管理,定時(shí)器等?! ?5)input模塊。負(fù)責(zé)處理輸入設(shè)備產(chǎn)生的事件,及對(duì)輸入設(shè)備的管理,如對(duì)鍵盤(pán),鼠標(biāo),手柄等的管理。  (6)audio模塊。處理音頻文件的播放以及音效處理等?! ?7)scene模塊。負(fù)責(zé)引擎中的場(chǎng)景管

7、理。  引擎的具體架構(gòu)見(jiàn)圖1?! D1引擎架構(gòu)  3、2D游戲引擎核心渲染技術(shù)  3.1累積渲染技術(shù)簡(jiǎn)介  在2D游戲中,常常將需要的游戲圖像合并到一個(gè)大紋理中,渲染時(shí)使用該紋理進(jìn)行大量圖元渲染。如果一個(gè)一個(gè)渲染所需圖元,引擎的效率必然會(huì)低,但如果一次性大量渲染許多圖元,則效率會(huì)有較大提升。,鑒于2D圖元的簡(jiǎn)單性,我們使用累積渲染技術(shù)就可以實(shí)現(xiàn)高效率的對(duì)大批量的圖元進(jìn)行渲染。  累積渲染技術(shù)的主要思想就是,在渲染2D圖元時(shí),不設(shè)置世界矩陣,而是創(chuàng)建一個(gè)相同的圖元。利用原本的世界矩陣對(duì)此新圖元的頂點(diǎn)直接進(jìn)行變換,并且放入一個(gè)緩沖中,等適當(dāng)?shù)臅r(shí)機(jī)再一次性渲染。

8、一次性渲染是在任何一個(gè)下列條件被滿(mǎn)足之時(shí)進(jìn)行的:  (1)2D場(chǎng)景

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。