2010-10-29 2 views
1

В настоящее время я работаю над редактором карт для своей 3D-игры, но у меня возникают некоторые проблемы с использованием включенной версии Microsoft.Xna.Framework.Game.Сочетание Windows Forms и XNA, но не хватает экземпляра «Game»

Мой 3D-движок хранится в библиотеке, а для его конструктора нужен экземпляр игры и GraphicsDevice. GraphicsDevice не проблема, так как я использовал пример из App Hub (link text), но использование «игры» в него не входит. Кто-нибудь знает, как я это исправить? Спасибо :)

+0

Да, я уже пробовал это :) – Basic

+0

Можете ли вы разместить свой код? –

+0

В основном это код из http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1, но мой конструктор для моей библиотеки выглядит так: public 3DEngine (Game gameInstance, GraphicsDevice graphicsDevice) – Basic

ответ

2

Практически вся цель образца WinForms заключается в том, чтобы удалить использование Game (и сборка Microsoft.Xna.Framework.Game). Класс Game делает то, что вы, вероятно, не хотите иметь в своем редакторе.

Я бы рекомендовал модифицировать ваш 3D-движок, чтобы он не требовал экземпляра класса Game для его создания.

Что вы используете в игре, во всяком случае? A ContentManager, возможно? Просто передайте это прямо.

Но если вы действительно должны ссылаться на класс Game, добавьте ссылку на сборку Microsoft.Xna.Framework.Game в свой проект. Сделайте это, щелкнув правой кнопкой мыши проект в проводнике решений, выбрав «Добавить ссылку» и найти ее в списке сборников .NET. Убедитесь, что вы получили правильную версию.

1

Я тоже пишу 3D-движок в XNA, называется «Vanquish»

Теперь, когда я видел ваш конструктор, вам нужно удалить переменную Game от этого. Создайте в своем двигателе переменную public static с именем Instance. Затем, в конструкторе добавить следующее:

Instance = this;

Из приложения WinForm, когда вам нужно использовать Game вы можете использовать engine.Instance.

+0

Будет ли это работать, когда я буду работать с движком в XNA-игре? – Basic

+0

Да. У вас будет доступ к классу Game из переменной Instance. –

+0

Сладкий, спасибо большое :) Выглядит отлично с вашим движком, D Удачи в дальнейшем развитии! – Basic

Смежные вопросы