我目前正在爲我的3D遊戲製作地圖編輯器,但我在使用Microsoft.Xna.Framework.Game時遇到了一些問題。結合Windows窗體和XNA,但缺乏「遊戲」實例
我的3D引擎存儲在一個庫中,它的構造函數需要Game實例和GraphicsDevice。 GraphicsDevice不是問題,因爲我使用了來自App Hub(link text)的一些示例,但使用「Game」不包含在其中。有誰知道我會如何解決這個問題?謝謝:)
我目前正在爲我的3D遊戲製作地圖編輯器,但我在使用Microsoft.Xna.Framework.Game時遇到了一些問題。結合Windows窗體和XNA,但缺乏「遊戲」實例
我的3D引擎存儲在一個庫中,它的構造函數需要Game實例和GraphicsDevice。 GraphicsDevice不是問題,因爲我使用了來自App Hub(link text)的一些示例,但使用「Game」不包含在其中。有誰知道我會如何解決這個問題?謝謝:)
幾乎整個WinForms示例的一點是刪除使用Game
(和Microsoft.Xna.Framework.Game
程序集)。 Game類可以完成您可能不想在編輯器中發生的事情。
我建議修改您的3D引擎,以便它不需要Game類的實例,以便創建。
無論如何,你在遊戲中使用什麼? A ContentManager
,也許?只需直接傳入即可。
但是,如果您確實必須引用Game類,請將Microsoft.Xna.Framework.Game程序集的引用添加到您的項目中。通過右鍵單擊解決方案資源管理器中的項目,選擇添加引用並在.NET程序集列表中找到它。確保你得到正確的版本。
我也是寫在XNA一個3D引擎,被稱爲「Vanquish」
現在,我已經看到你的構造函數,你需要從這個刪除Game
變量。在您的引擎中創建一個名爲Instance
的變量public static
。然後,在構造函數中添加以下內容:
Instance = this;
從你的WinForm應用程序,當你需要使用Game
您可以使用engine.Instance
。
是的,我已經試過:) – Basic 2010-10-29 09:35:59
你可以發佈你的代碼? – 2010-10-29 09:37:11
它基本上只是從http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1的代碼,但我的庫的構造函數如下所示:public 3DEngine(Game gameInstance,GraphicsDevice graphicsDevice) – Basic 2010-10-29 09:44:31