Объединяет Windows Forms и XNA, но не имеет экземпляра "Game" - PullRequest
1 голос
/ 29 октября 2010

В настоящее время я работаю над редактором карт для своей 3D-игры, но у меня возникают некоторые проблемы с использованием Microsoft.Xna.Framework.Game.

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

Ответы [ 2 ]

2 голосов
/ 29 октября 2010

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

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

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

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

1 голос
/ 29 октября 2010

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

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

Instance = this;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...