Насколько хорошо WPF сочетается с XNA в реальной жизни?

Я понимаю, что есть несколько способов смешать XNA и WPF в одном приложении. Я нахожу заманчивым использование WPF для всего, что связано с GUI и HUD, в моих играх XNA. У кого-нибудь есть практический опыт того, насколько хорошо этот подход работает в реальной жизни с использованием.NET 3.5 SP1? Какие-нибудь подводные камни (такие как "проблема воздушного пространства")? Любой намек на то, что appoach работает лучше всего?

6 ответов

Решение

В 3.5 SP1 есть дополнение, которое позволяет лучше взаимодействовать между DirectX и WPF (D3DImage), и один из способов добиться этого - через XNA.

Вот некоторые детали:

http://jmorrill.hjtcentral.com/Default.aspx?tabid=428&EntryID=259

Интеграция с XNA занимает важное место в нашем списке вещей, которые нужно добавить в WPF, поэтому мы смотрим на это в будущих версиях. Следите за новостями (в блоге GregSc), чтобы узнать подробности по мере их появления.

Ян Эллисон-Тейлор

Подробнее об этом здесь

Тамир Хейсон представил отличную сессию о 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, все играют друг против друга!!!

Вы хотите использовать D3DImage, но D3DImage работает по-разному в Windows XP и Windows Vista или 7.

В Vista или 7 вы создаете не блокируемую цель визуализации для использования с D3DImage и используете устройство Direct3D9EX. В XP вы создаете блокируемую цель renderTarget для использования с D3DImage и используете обычное устройство Direct3D9.

Также рекомендуется использовать XNA, возможно, лучше использовать SlimDX, если вы только делаете это для ПК. SlimDX не обладает никакими функциями Direct3D и поддерживает Direct3D 9, 10 и 11.

http://slimdx.org/

Я бы лично посоветовал не пытаться делать эту интеграцию. Я знаю, к чему вы стремитесь... простота определения элементов GUI/HUD в WPF значительно превосходит попытки сделать то же самое в простой старой XNA. Однако подумайте о том, сколько времени вы потратите, пытаясь включить этот сценарий, и сколько вы бы сэкономили, если бы вы просто делали все "изначально" в XNA. Кроме того (и это не может быть проблемой для вас), WPF не поддерживается на xbox или zune ... так что вы ограничиваете себя:-)

Привет, я знаю, что через некоторое время вы уже написали, но если вы все еще ищете решение WPF для XNA, вы можете следить за http://red-badger.com/product. Решение XPF помещает wpf в XNA. Так что посмотрите, на данный момент он бесплатный, как и в бета-версии, но это будет меняться по мере добавления новых компонентов

Другие вопросы по тегам