同じアプリケーション内でXNAとWPFをブレンドする方法がいくつかあることを理解しています。XNAゲームのすべてのGUIおよびHUDにWPFを使用するのは魅力的です。.NET 3.5 SP1を使用して、このアプローチが実際にどの程度うまく機能するかについて、実際的な経験を持っている人はいますか?落とし穴(「空域の問題」など)はありますか?どのアプローチが最も効果的かについてのヒントはありますか?
6 に答える
3.5 SP1 には、DirectX と WPF (D3DImage) の間のより良い対話を可能にする機能が追加されており、これに到達する 1 つの方法は XNA を使用することです。
詳細は次のとおりです。
http://jmorrill.hjtcentral.com/Default.aspx?tabid=428&EntryID=259
XNA統合は、WPFに追加するもののリストの上位にあるため、将来のバージョンでこれを検討しています。詳細が利用可能になったら、(GregScのブログを)お楽しみに。
イアン・エリソン-テイラー
これについて詳しくはこちらをご覧ください
Thamir Khason は、Tech-ed で WPF/XNA/Silverlight に関する優れたセッションを発表しました。彼のスライドは次のとおりです 。 teched-08-presentation-slides-download.aspx
PS。これは非常に印象的でした... 彼は xbox で実行されるゲームを持っていました。彼のデスクトップでは WPF を使用して XNA をホストし、携帯電話では Silverlight を使用してすべて互いに対戦しています!!!
D3DImage を使用したいのですが、Windows XP と Windows Vista または 7 では D3DImage の動作が異なります。
Vista または 7 では、D3DImage で使用する非ロック可能 renderTarget を作成し、Direct3D9EX デバイスを使用します。XP では、ロック可能な renderTarget を作成して D3DImage で使用し、通常の Direct3D9 デバイスを使用します。
また、XNA を使用する代わりに、これを PC 用に作成する場合は SlimDX を使用することをお勧めします。SlimDX は Direct3D 機能を欠いておらず、Direct3D 9、10、および 11 をサポートしています。
投稿してからしばらく経ちますが、XNA用のWPFソリューションをまだ探している場合は、http://red-badger.com/productに注目してください。XPFの解決策により、wpfがXNAに組み込まれます。ご覧ください。現時点ではベータ版なので無料ですが、コンポーネントが追加されると変更されます。
個人的には、この統合をしようとしないことをお勧めします。私はあなたが何をしようとしているのか知っています... WPFでGUI / HUD要素を定義することの容易さは、単純な古いXNAで同じことをしようとするよりもはるかに重要です。ただし、このシナリオを有効にするために費やす時間と、すべてを XNA で "ネイティブ" に実行した場合にどれだけ節約できるかを現実的に考えてください。また(これはあなたにとって問題ではないかもしれません)、WPFはxboxまたはzuneではサポートされていません...そのため、自分自身を制限することになります:-)