2017-08-14 53 views
-1

我目前正在研究一個項目,我想在重建的小地圖上顯示遊戲數據和我自己的圖形。WPF - 交互式實時渲染(C#)

數據以與該tick中更改的實體數據相同的遊戲刻度給出。起初,我想繪製地圖,然後繪製第一個刻度線上存在的所有實體。然後爲每個滴答我想要更新的位置和畫線之間的實體

我的WPF用戶界面設置與MVVM模式。

現在我正在爲迷你地圖的創作和技巧而努力。

我想微縮支持/創建什麼:

  1. 交互

    • 點擊實體在球場上顯示更多關於他們的信息。
    • 縮放地圖
    • 關注實體(在遊戲領域的縮放)
    • 的toogle不同的視覺效果(禁用一個團隊,強調某事等)
    • ...(以及其他交互象上面)
  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

這只是一個繪圖庫,你仍然需要自己測試。我建議創建一個'UserControl',用'WritableBitmapEx'繪製並直接在'UserControl'的代碼後面進行命中測試。你可以使用'DrawingVisual'來進行命中測試。 MVVM真的打破了這樣的事情,因爲命中測試實際上是直接UI層的一部分,而不是視圖模型層。 –

回答

0

DataBinding很適合將視圖模型連接到輸入控件,但不能實時更新圖形對象的狀態。

我會去DrawingVisual,因爲它是相對輕量級的並且支持hit testing。即使您沒有MVVM支持,也可以輕鬆地「手動」更新視覺效果。