1

私はゲームを設計しており、基本的なゲームプレイの簡単なプロトタイプを作成するために WPF を使用することを考えています。

WPF で基本的な 2D グラフィックスをリアルタイムでレンダリングすることは可能ですか? 基本的なグラフィックとは、線や円などの単純な形状を意味します。「リアルタイム」とは、プレーヤーの入力に応じて変化する速度、加速度などのパラメーターに基づいてレンダリングされることを意味します。アニメーションにストーリーボードを使用しないでください。

ありがとう

4

1 に答える 1

9

関連する適切な議論については、前の質問WPF ビジュアル レイヤーを使用した高性能グラフィックスを参照してください。WPF はリッチ ベクター グラフィックスの優れたフレームワークを提供しますが、リアルタイムの 2D パフォーマンスには多少欠けています。

たとえば、シーンの複雑さによっては、DrawingVisualsまたは仮想化された Shape クラス (WPF ベクター グラフィックス) を使用してスプライトを描画することで回避できる場合があります。少しレベルを下げると、 .NET4.0 で利用可能なBitmapCacheモードを使用してスプライトをキャッシュするか、スプライトをビットマップに事前レンダリングし、さまざまな最適化パターンを使用してスループットを向上させることができます。

さらに低レベルに進むと、幻想的なWriteableBitmapExプロジェクトを使用してベクター/ラスター グラフィックスを混在させることも、 D3DImageを使用してベクター/GPU グラフィックスを混在させることもできます。

シーンを更新する方法については、CompositionTarget.Renderingイベント (画面の再描画時に発生) で更新されたパラメーターを取得し、スプライトの位置/方向を計算するプリミティブ ゲーム エンジンを作成する必要があります。これに役立つ可能性があるのは、WPF/Silverlight と Farseer 物理学を統合するこの優れたコードプレックス プロジェクトです。

于 2012-05-13T13:20:43.317 に答える