Поддерживает ли XNA OpenGL? - PullRequest
       10

Поддерживает ли XNA OpenGL?

3 голосов
/ 09 ноября 2010

В конце концов, когда я закончу игру, я пишу, я хотел бы перенести ее на XNA. Я использую C ++ и OpenGL на данный момент. Мой вопрос просто так: поддерживает ли XNA OpenGL (я могу переключиться с C ++ на язык XNA, если это необходимо)?

Ответы [ 2 ]

5 голосов
/ 09 ноября 2010

Нет, не напрямую.XNA построен на DirectX.

Вы можете раскрутить отдельное окно, используя оболочку вокруг OpenGL, если хотите.Вы должны будете использовать неофициальное связывание, хотя, чтобы сделать это.Затем используйте конструкции XNA в этом.Я работал над таким проектом и не рекомендовал бы его.Есть два способа использования XNA.Подход книги, который слишком ограничен для большинства, или другой способ.«Другой» способ - не использовать базовые игровые классы и не управлять собственной игровой логикой.При втором подходе использование другого метода рендеринга - это слишком много работы без реальной отдачи.

Я бы порекомендовал, чтобы для вашей текущей игры логика и графика были отдельными.Если вы решите портировать на более поздний срок, перенос будет проще конвертировать из C ++ в C #.

Кроме того, XNA не является языком.Это фреймворк, построенный с использованием C #.

3 голосов
/ 10 ноября 2010

Реализация XnaTouch работает на iPhone и поэтому использует OpenGL ES под капотом.Он использует C # через проект Mono (в частности, MonoTouch для iPhone).Возможно, это можно использовать в качестве основы для переноса XNA на другие платформы, которые не поддерживают DirectX (например, Mac, Linux).

(Примечание: по моему опыту реализация XnaTouch не очень хороша.)

Очевидно, что Xbox 360 вообще не использует OpenGL - он использует DirectX - у вас нет выбора по этому поводу.

И я даже не понимаю, почему вы хотитеиспользуйте XNA, но с OpenGL под прикрытием, в Windows, когда существующая реализация XNA работает просто отлично.

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