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

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


person bitbonk    schedule 04.09.2008    source источник
comment
Может, с тех пор все изменилось?   -  person bohdan_trotsenko    schedule 03.05.2010


Ответы (6)


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

Вот некоторые подробности:

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

person Kris Erickson    schedule 04.09.2008

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

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

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

person rudigrobler    schedule 23.09.2008

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

person rudigrobler    schedule 08.09.2008

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

В Vista или 7 вы создаете НЕБЛОКИРУЕМЫЙ renderTarget для использования с D3DImage и используете устройство Direct3D9EX. В XP вы создаете блокируемый renderTarget для использования с D3DImage и используете обычное устройство Direct3D9.

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

http://slimdx.org/

person zezba9000    schedule 25.09.2010

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

person Joel Martinez    schedule 15.09.2008

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

person markblue777    schedule 22.09.2010
comment
Это не совсем то, что мне нужно. Он не использует WPF. Вместо этого он использует собственный набор классов и элементов управления, которые просто имитируют части WPF. - person bitbonk; 23.09.2010