Я понимаю, что есть несколько способов смешать XNA и WPF в одном приложении. Мне кажется заманчивым использовать WPF для всего графического интерфейса и HUD в моих играх XNA. Есть ли у кого-нибудь практический опыт того, насколько хорошо этот подход работает в реальной жизни с использованием .NET 3.5 SP1? Любые подводные камни (например, "проблема с воздушным пространством" )? Любой намек на то, что работает лучше всего?
Насколько хорошо WPF сочетается с XNA в реальной жизни?
Ответы (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 вы создаете НЕБЛОКИРУЕМЫЙ renderTarget для использования с D3DImage и используете устройство Direct3D9EX. В XP вы создаете блокируемый renderTarget для использования с D3DImage и используете обычное устройство Direct3D9.
Также с учетом использования XNA, возможно, лучше использовать SlimDX, если вы делаете это только для ПК. SlimDX не лишен каких-либо функций Direct3D и поддерживает Direct3D 9, 10 и 11.
Я лично не советовал бы пытаться сделать эту интеграцию. Я знаю, что вы собираетесь ... простота определения элементов GUI / HUD в WPF значительно превосходит попытки сделать то же самое в простой старой XNA. Однако реалистично подумайте о времени, которое вы потратите на попытки реализовать этот сценарий, и о том, сколько вы бы сэкономили, если бы вы просто делали все «изначально» в XNA. Кроме того (и это может не быть проблемой для вас), WPF не поддерживается на xbox или zune ... так что вы ограничиваете себя :-)
Привет, я знаю, что прошло некоторое время после публикации, но если вы все еще ищете решение WPF для XNA, возможно, вам стоит обратить внимание на http://red-badger.com/product. Решение XPF помещает wpf в XNA. Итак, посмотрите, на данный момент он бесплатный, поскольку он находится в бета-версии, но это будет меняться по мере добавления дополнительных компонентов