當(dāng)前位置:
首頁(yè) >
游戏入口点GameEntryPoint
發(fā)布時(shí)間:2024/8/23
45
豆豆
生活随笔
收集整理的這篇文章主要介紹了
游戏入口点GameEntryPoint
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
GameStart 通過(guò)在我們的庫(kù)中查找入口點(diǎn)類來(lái)調(diào)用相應(yīng)的接口啟動(dòng)我們的應(yīng)用程序。一旦它找到了入口點(diǎn),它會(huì)調(diào)用三個(gè)函數(shù)來(lái)替換掉它自己的應(yīng)用轉(zhuǎn)向執(zhí)行我們的游戲循環(huán)。游戲入口點(diǎn)對(duì)于 GameStart 來(lái)說(shuō)就像ActorPluginRegistry 對(duì)于 ActorLibrary 一樣。游戲入口點(diǎn)有以下三個(gè)函數(shù):
1. Initialize() – 傳遞任何命令行參數(shù)。通常我們可以設(shè)置并獲取任何我們想要的參數(shù),
除此之外,該函數(shù)也是我們進(jìn)行系統(tǒng)配置工作的地方,這些配置工作需要運(yùn)行其它
任何工作之前執(zhí)行,但不要在這里做任何游戲管理的事情,究竟是否需要重寫(xiě)該函
數(shù)取決于我們的需要。
2. CreateGameManager() – 創(chuàng)建游戲管理器對(duì)象。
3. OnStartup() – 這是最有趣的地方。創(chuàng)建我們的所有游戲組件,加載我們的場(chǎng)景地圖,
任何啟動(dòng)我們的游戲時(shí)要做的工作都在這里完成,這也是啟動(dòng)我們的游戲循環(huán)前要
1. Initialize() – 傳遞任何命令行參數(shù)。通常我們可以設(shè)置并獲取任何我們想要的參數(shù),
除此之外,該函數(shù)也是我們進(jìn)行系統(tǒng)配置工作的地方,這些配置工作需要運(yùn)行其它
任何工作之前執(zhí)行,但不要在這里做任何游戲管理的事情,究竟是否需要重寫(xiě)該函
數(shù)取決于我們的需要。
2. CreateGameManager() – 創(chuàng)建游戲管理器對(duì)象。
3. OnStartup() – 這是最有趣的地方。創(chuàng)建我們的所有游戲組件,加載我們的場(chǎng)景地圖,
任何啟動(dòng)我們的游戲時(shí)要做的工作都在這里完成,這也是啟動(dòng)我們的游戲循環(huán)前要
做的最后一件事。如果你已經(jīng)寫(xiě)過(guò) Delta3D 應(yīng)用程序,你應(yīng)該已經(jīng)用過(guò) dtABC::Application 了,這里為什么要用一個(gè) GameEntryPoint 而不是 dtABC::Application 呢?最主要的原因是為了讓你的系統(tǒng)可變得可配置。 Well, the primary reason is that itmakes your system configurable. GameStart 鏡像了大多數(shù)游戲引擎擁有的安裝類型,它們只用一個(gè)可執(zhí)行程序來(lái)運(yùn)行不同的游戲應(yīng)用,而只需要將這些不同的游戲程序做成鏈接庫(kù)就可以,先通過(guò)運(yùn)行 GameStart 然后在來(lái)選擇想要運(yùn)行的任何游戲程序。
動(dòng)態(tài)鏈接庫(kù)中主要函數(shù):
extern "C" XX_EXPORT dtGame::GameEntryPoint* CreateGameEntryPoint() { return new TutorialGameEntryPoint; } / / extern "C" XX_EXPORT void DestroyGameEntryPoint(dtGame::GameEntryPoint* entryPoint) { delete entryPoint; }
總結(jié)
以上是生活随笔為你收集整理的游戏入口点GameEntryPoint的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Impala UDF - Impal
- 下一篇: __stdcall