XNA на iPhone
Я не знаю, странный вопрос, но как я могу запустить игру с XNA на iPhone/iTouch? Какие шаги/инструменты (существующие или мнимые...) следует использовать?
Примечание. Цель состоит в том, чтобы не изменять существующий код С#
ОБНОВЛЕНИЕ:
Если я правильно понимаю, я должен уметь: 1) Запустите мой код XNA на Mono (monoxna или SilverSprite, многообещающий?)
2) Запустите Mono на iPhone (MonoTouch)
Ответы
Ответ 1
Я не верю, что есть хороший ответ на ваш вопрос. XNA не нацелен на iPhone, поэтому вероятность того, что он сможет эффективно переносить игру XNA без изменения исходного кода на С#, вряд ли произойдет.
Вместо этого я бы рекомендовал вам взглянуть на различные рамки, которые существуют, чтобы помочь вам создавать кросс-платформенные игры. Unity часто возникает в этих обсуждениях, но это не бесплатно.
Если кросс-платформенная не ваша цель, но бесплатное развитие iPhone, то я бы рекомендовал посмотреть Cocos.
Изменить: MonoTouch проект может помочь вам в будущем, но не поможет вам прямо сейчас. Тем не менее, это то, на что нужно следить.
Изменить: пейзаж сильно изменился за 5 лет с момента публикации этого вопроса. Если у вас есть проект XNA, который вы хотите запустить на iOS, Xamarin.iOS (ранее MonoTouch) плюс MonoGame - это почти идеальный поместиться. В MonoGame отсутствует огромный фрагмент конвейера контента XNA, что означает, что вам придется либо отказаться от него, либо иметь экземпляр VS2010, где-то компилируют ваши активы.
Ответ 2
Не только это возможно, но вот видео о том, как кто-то делает XnaTouch на MonoTouch: Первая игра для сборки IPhone с XnaTouch (XNA для IPhone)
Вот моно-статья об этом http://www.mono-project.com/MonoTouch
Ответ 3
Проект MonoTouch может в конечном итоге помочь здесь, так как он позволяет вам писать С#, ориентируясь на iPhone (это статически скомпилированный в собственный код).
Ответ 4
MonoGame - бесплатная реализация OpenGL XNA 4.0 Framework. Он построен на отличном составе компиляторов Mono и совместим с MonoTouch (iOS), Mono для Android (Android), MonoMac (Mac OS X), Mono для Windows и теперь Linux!
Список 12 игр, в настоящее время использующих MonoGame, которые находятся в магазине Apple iOS App Store, можно найти @
http://monogame.codeplex.com/
https://github.com/mono/MonoGame/wiki/Released-Games
Ответ 5
Я считаю, что XNA зависит от Direct3D 9 (см. http://msdn.microsoft.com/en-us/xna/aa937793.aspx), который может намекать на препятствия, с которыми можно столкнуться как при переносе моно, а также иметь достаточную графическую мощность на iPhone.
Ответ 6
Все говорят, что это возможно, потому что есть библиотеки CLR для Mono, даже не думает о том, что XNA представляет собой ВСЕЙ РАЗЛИЧНЫЙ набор фреймворков:
"Библиотека классов XNA Framework - это библиотека классов, интерфейсов и типов значений, которые включены в XNA Game Studio".
Как заметил еще один ответчик, это пока что не происходит, даже не смешно. Если вы действительно хотите написать игру, я бы посмотрел Unity. Это коммерчески, но выглядит совершенно впечатляюще, и вы можете script свою логику игры в Javascript или (здесь смешная часть) С#!
Да, вместо того, чтобы тратить массу усилий на перенос всей структуры, потому что вы хотите написать игру на С#, почему бы просто не использовать фреймворк, который позволяет вам делать это сегодня?
Ответ 7
Из лошадь:
MonoTouch + SilverSprite = XNA 2D игры на iPhone?:)
Что Bill означает, что в конечном итоге будет возможно написать 2D-игру XNA, а затем использовать SilverSprite, чтобы запустить его в Silverlight, затем используйте MonoTouch, чтобы запустить его iPhone
Ответ 8
Это пространство, безусловно, нагревается. В настоящее время существует проект XNA Touch на Codeplex, целью которого является внедрение XNA API на платформу iPhone/iPad:
http://xnatouch.codeplex.com/
Ответ 9
"Возможно, вы могли бы просто изменить пространство имен XnaTouch в соответствии с существующим кодом Xna (т.е. Microsoft.Xna.Framework. *), при разработке проекта MonoTouch? Это можно сделать на вилке поставщика (копии) кода XnaTouch, легко управляемой с помощью Git, Mercurial или Piston и т.д.
Я не уверен относительно того, будет ли команда XnaTouch проводить такое изменение на своей собственной кодовой базе, поэтому это, вероятно, лучше всего делать на ваших собственных, личных ветвях кода (интересно, Проект Mono.xna использует исходные пространства имен Microsoft.Xna.Framework. *, я не уверен, почему XnaTouch не выбрал этого).
JFYI, текущий XnaTouch (v1.0) вполне соответствует Xna 4.0. Я обнаружил [небольшие] недостающие вызовы методов, которые я "реализовал", чтобы выкидывать нереализованные исключения (?). Код оригинала-xna4-и-modified-xna-touch выполняет, теперь мне нужно реализовать GUI для iphone и обработку и т.д.
Надеюсь, это поможет кому-то.
Приветствия
Рич
Ответ 10
Для начала вам понадобится реализация CLR на iPhone, которая на данный момент не существует, но кажется, что кто-то пытается: MonoTouch.
Ответ 11
Мой друг разрабатывает порт архитектуры XNA 4.0 для платформы iOS. Это, конечно, написано в Objective-C, но оно имеет ощущение XNA. Он опубликовал источник под LGPL по адресу http://code.google.com/p/xni/.
Ответ 12
Xna официально не поддерживается на iPhone; однако вы можете использовать ExEn (http://exen.codeplex.com/) или MonoGame (http://monogame.codeplex.com/), чтобы переносить ваши игры Xna. Бонус за использование любого из них заключается в том, что они поддерживают Mono для Android.
Ответ 13
Если вы ищете бесплатную кросс-платформенную вещь, вы можете проверить телефонную трубку. У меня нет опыта, но это выглядит круто.
http://phonegap.com/