透過遮罩機制實現迷你雷達地圖的可視區域限制,完美移植主遊戲地圖的「托盤式」移動邏輯,並採用分層更新策略大幅提升效能。
在雷達面板上覆蓋遮罩層,僅顯示遮罩區域內的地圖與物件。主角座標與雷達地圖圖片移動採用即時更新,確保導航精準度。
後台執行緒處理低頻更新,避免阻塞 UI 執行緒。
雷達物件類型定義為 UIElement,支援任意視覺元素:
if (sprite == Leader) {
miniMap.MiniMap.Children.Add(new TextBlock() {
Name = string.Format("Obj{0}", sprite.Name),
Text = Leader.VSName,
FontSize = 10,
Foreground = new SolidColorBrush(Color.FromArgb(255, 206, 241, 190)),
});
} else {
miniMap.MiniMap.Children.Add(new Rectangle() {
Name = string.Format("Obj{0}", sprite.Name),
Width = 6,
Height = 6,
RadiusX = 3,
RadiusY = 3,
Stretch = Stretch.Fill,
Fill = new SolidColorBrush(Color.FromArgb(255, 184, 105, 167)),
StrokeThickness = 1,
Stroke = new SolidColorBrush(Color.FromArgb(255, 88, 88, 88))
});
}
主角顯示為綠色文字,怪物顯示為粉色描邊圓矩形。可擴充 ToolTip 顯示物件名稱等資訊。
下一節將講解全景迷你尋路地圖製作,敬請期待。