Delta3D/Page3
一個快速的替罪羊
Delta3D 正在開發中。有許多非常聰明的人不斷地為我們新增、更改和改進這個庫。他們都是海軍陸戰隊,顯然在水族館工作。 : )
這意味著,有點不幸的是,“底層”可能會隨著新的、酷炫的想法的實現而發生一些變化。
所以,我想說“以下是所有 Delta3D 應用程式的工作方式”,但這忽略了這樣一個事實,即現在有各種方法來構建 Delta3D 應用程式,具體取決於你想要構建的內容。
所以,以下是 Delta3D 最基本的底層之一,但並非唯一一個。
底層
為了擁有一個遊戲,你需要一個遊戲迴圈。這是一種定時、迴圈的 if-then 程式碼塊,它檢查滑鼠移動,更新殭屍位置,讓等離子射擊稍微靠近殭屍等等。
你編寫自己的迴圈嗎?絕不!那太老派了。
當你建立 Application 類的例項時,Delta3D 會為你處理這個問題。Application 類內建了一個遊戲迴圈,以及其他函式,以便在遊戲迴圈中執行有用的操作。
所以你會看到的第一件事之一是變數被初始化為一個 Application 嗎?不!
什麼?!為什麼?!
因為 Application 類有虛擬函式,這意味著它擁有它真的、非常想實現但不知道其內部應該是什麼樣子的函式。這意味著你必須提供內部實現。這意味著你必須從 Application 類“派生”自己的類,然後才能建立一個新變數來儲存這個遊戲例項。所以很有可能,你所檢視過的(或將要檢視過的)大多數 Delta3D 程式碼,都會包含類似這樣的程式碼
class MainApp : public dtABC::Application
這裡我們的 MainApp 是我們從 Application 類派生的類(儲存在 dtABC 名稱空間中)
然後在 main 塊中的某個地方,會有類似這樣的程式碼
RefPtr<MainApp> app = new MainApp("config.xml");
這將建立一個新的變數 app 來儲存我們的 MainApp 物件。現在 app 中包含了我們的遊戲迴圈,可以透過以下方式啟動:
app->Config();
app->Run();