fix: 将小地图覆盖层坐标与尺寸硬编码替换为常量引用

将视图模型中硬编码的小地图覆盖层坐标与尺寸替换为引用 MapAssets 中定义的常量 MimiMapRect1080P,以提高代码的可维护性并确保数值一致性。同时更新地图遮罩触发器中视口大小的计算方式,使其基于相同的常量进行动态计算。
This commit is contained in:
辉鸭蛋
2026-02-24 14:33:23 +08:00
parent 7d9ca3efd3
commit 8bb4f89ab8
3 changed files with 8 additions and 4 deletions

View File

@@ -14,6 +14,9 @@ namespace BetterGenshinImpact.GameTask.Common.Element.Assets;
public class MapAssets : BaseAssets<MapAssets>
{
public Rect MimiMapRect { get; }
public static Rect MimiMapRect1080P = new Rect(62, 19,212,212);
public MapAssets()
{

View File

@@ -144,7 +144,7 @@ public class MapMaskTrigger : ITaskTrigger
if (miniPoint != default)
{
// 展示窗口是 212
const double viewportSize = 353;
double viewportSize = MapAssets.MimiMapRect1080P.Width / 3.0 * 10;
UIDispatcherHelper.Invoke(() =>
{
MaskWindow.Instance().MiniMapPointsCanvasControl.UpdateViewport(

View File

@@ -20,6 +20,7 @@ using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using System.Windows.Threading;
using BetterGenshinImpact.GameTask.Common.Element.Assets;
using BetterGenshinImpact.Model.MaskMap;
using Vanara.PInvoke;
using MaskMapPoint = BetterGenshinImpact.Model.MaskMap.MaskMapPoint;
@@ -70,11 +71,11 @@ namespace BetterGenshinImpact.ViewModel
[ObservableProperty] private string _mapPointsLoadingText = "正在加载点位...";
public double MiniMapOverlayLeftRatio => 50d / 1920d;
public double MiniMapOverlayLeftRatio => MapAssets.MimiMapRect1080P.X / 1920d;
public double MiniMapOverlayTopRatio =>14d / 1080d;
public double MiniMapOverlayTopRatio => MapAssets.MimiMapRect1080P.Y / 1080d;
public double MiniMapOverlaySizeRatio => 212d / 1080d;
public double MiniMapOverlaySizeRatio => MapAssets.MimiMapRect1080P.Width / 1080d;
public sealed record MapPointApiProviderOption(MapPointApiProvider Provider, string DisplayName);