Я понимаю, что есть несколько способов сочетания XNA и WPF в одном приложении. Мне кажется, что мне нравится использовать WPF для всего GUI и HUD в моих играх XNA. Кто-нибудь имеет практический опыт в отношении того, насколько этот подход работает в реальной жизни с использованием .NET 3.5 SP1? Любые подводные камни (например, проблема воздушного пространства)? Любой намек на то, что appoach работает лучше всего?
Насколько хорошо WPF сочетается с XNA в реальной жизни?
Ответ 1
В 3.5 SP1 есть дополнение, которое позволяет лучше взаимодействовать между DirectX и WPF (D3DImage), и один из способов получить это через XNA.
Вот несколько деталей:
http://jmorrill.hjtcentral.com/Default.aspx?tabid=428&EntryID=259
Ответ 2
Интеграция XNA высока в нашем списке вещей, которые нужно добавить в WPF, поэтому мы ищем это для будущих версий. Оставайтесь с нами (в блоге GregSc), чтобы узнать, как они станут доступны.
Ян Эллисон-Тейлор
Подробнее об этом здесь
Ответ 3
Thamir Khason представил отличную сессию о WPF/XNA/Silverlight в Tech-ed... Вот его слайды: http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/14/my-teched-08-presentation-slides-download.aspx
PS. Это было довольно впечатляюще, чтобы увидеть... у него была игра, которая бегала на xbox. На своем рабочем столе, используя WPF для размещения XNA и его мобильного телефона, используя silverlight, все играют друг против друга.
Ответ 4
Вы хотите использовать D3DImage, но D3DImage работает по-разному в Windows XP и Windows Vista или 7.
В Vista или 7 вы создаете NON-lockable renderTarget для использования с D3DImage, и вы используете устройство Direct3D9EX. В XP вы создаете блокируемый renderTarget для использования с D3DImage и используете обычное устройство Direct3D9.
Также, используя XNA, было бы лучше использовать SlimDX, если бы вы просто сделали это для ПК. SlimDX не испытывает недостатка в функциях Direct3D и поддерживает Direct3D 9, 10 и 11.
Ответ 5
Я лично советовал бы не пытаться сделать эту интеграцию. Я знаю, для чего вы идете... легкость определения элементов GUI/HUD в WPF значительно перевешивает попытку сделать то же самое в простой старой XNA. Однако подумайте реалистично о времени, которое вы потратите, пытаясь включить этот сценарий, в зависимости от того, сколько вы сэкономите, если бы вы просто сделали все "изначально" в XNA. Также (и это может и не быть проблемой для вас), WPF не поддерживается на xbox или zune... поэтому вы бы ограничили себя: -)
Ответ 6
Эй, я знаю, что это уже после публикации, но если вы все еще ищете WPF-решение для XNA, вы можете следить за http://red-badger.com/product. Раствор XPF помещает wpf в XNA. SO смотрят, на данный момент он свободен, так как он находится в бета-версии, но это будет меняться по мере добавления дополнительных компонентов