2017-08-14 10 views
-1

私は現在、ゲームのデータと自分のグラフを再構築されたミニマップに表示するプロジェクトに取り組んでいます。WPF - インタラクティブなリアルタイムレンダリング(C#)

データは、そのティックでエンティティデータが変更されたゲームのティックとして与えられます。最初はマップを描画し、最初のティックに存在するすべてのエンティティを描画します。次に、各ティックごとに、位置を更新し、エンティティ間の線を描きたい

私のWPFユーザーインターフェイスは、MVVMパターンで設定されています。

私はミニマップの作成と技術に苦労しています。私はミニマップが作成/サポートしたい何

  1. 対話

    • それらについての詳細な情報を表示するには、フィールド上のエンティティをクリックしてください。
    • ズーム(ゲームフィールドにズーム付き)マップ
    • フォローエンティティ
    • Toogle異なるビジュアル(STHなどを強調表示し、1つのチームを無効にする)
    • ...(と上記のような他の相互作用)
  2. パフォーマンス

    • グラフィックできるだけスムーズになるはずです(地図、イメージ、アンチエイリアシング、無吃音)
    • ハイフレームレート(少なくとも、30FPS)
    • せいぜいそれは、内蔵の上記の機能のほとんどは解決する必要があります(1を参照)
    • スクリーンショットとゲーム全体のビデオを(エクスポート
  3. 私自身のグラフとか)私はすでに()WPF real-time renderingこのポストから考えられて何

  • データを使用しました結合とキャンバス

問題:スローなくperformant..at少なくとも私はそれを実装して) - WriteableBitmap(問題:に建てられませfuncitionalitiesが(1を参照しない)

  • DrawingVisuals

問題:MVVMとして実現するには?それは効率的ですか?

  • WriteableBitMap

問題:私は私自身の1の機能)を構築する必要があります。しかし、効率的なように見える

私は自分自身の多くの機能を自分で実装する前に自分自身のニーズに合ったものがあるか、上記の技術のいずれかが適切でないかどうか尋ねたいと思っていました。

私の質問がはっきりしていることを願っています。

不足していることがあれば教えてください。

+0

[このライブラリ](https://github.com/teichgraf/WriteableBitmapEx/)は、あなたが 'WritableBitmap'で描画するために使用したすべての描画関数を提供します。 –

+0

@BradleyUffner:ヒットテストもサポートしていますか?ズームや翻訳で作業する場合、想像以上に複雑になることがあります。 – JanDotNet

+0

これは単なる図書館のライブラリですが、依然として自分でヒットテストする必要があります。 'WritableBitmapEx'で描画し、' UserControl'のコードビハインドで直接ヒットテストを行う 'UserControl'の作成をお勧めします。 'DrawingVisual'を使ってヒットテストを行うことができます。ヒットテストは実際にはビューモデルレイヤーではなくダイレクトUIレイヤーの一部なので、MVVMは実際にはこのようなことが起こってしまいます。 –

答えて

0

データバインディングは、ビューモデルを入力コントロールに接続するのに適していますが、グラフィックオブジェクトの状態をリアルタイムで更新するのには適していません。

相対軽量でhit testingをサポートしていますので、DrawingVisualとします。 MVVMをサポートしていなくても、ビジュアルを「手動で」更新するのは簡単です。

関連する問題