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