Можно ли сделать XNA RenderTarget2D целевым объектом System.Drawing.Image? - PullRequest
0 голосов
/ 06 февраля 2012

По сути, я работаю над приложением WinForms на C # и хочу, чтобы игра XNA 3.1 рисовала изображение, будь то основной буфер устройства или цель рендеринга, которую я должен установить.Возможно ли это?

1 Ответ

0 голосов
/ 06 февраля 2012

Да, это возможно, смотрите здесь:

http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1

Класс XNA Framework Game предоставляет быстрый, простой и переносимый способ размещения вашей игры. Он автоматически создает окно для запуска игры, инициализирует графическое оборудование и предлагает простые методы Update и Draw для переопределения. Иногда поведение игры просто недостаточно гибкое. Возможно, вам нужен больший контроль над тем, как создается окно, или вы пишете редактор уровней и хотите разместить элементы управления пользовательского интерфейса Windows вокруг поверхности трехмерного рисования.

К счастью, XNA Framework была разработана с учетом этих сценариев. Фреймворк фактически состоит из двух отдельных сборок: Microsoft.Xna.Framework предоставляет основные функциональные возможности, такие как математические, графические, входные и звуковые классы, а Microsoft.Xna.Framework.Game предоставляет дополнительный код более высокого уровня, такой как Game. учебный класс. Если вы хотите разместить свою игру другим способом, вы можете заменить функциональность Microsoft.Xna.Framework.Game своим собственным кодом.

В этом примере реализован класс GraphicsDeviceControl, который наследуется от System.Windows.Forms.Control и предоставляет возможность элементу управления WinForms рисовать себя с помощью объекта XNA Framework GraphicsDevice. Он демонстрирует, как совместно использовать один объект GraphicsDevice среди нескольких элементов управления, как обрабатывать изменение размера и потерянные устройства и как реализовать интерфейс IGraphicsDeviceService для поддержки загрузки данных через ContentManager.

...