JS获取当前在小地图上的位置坐标 新增 matchingMethod 的传入

This commit is contained in:
辉鸭蛋
2026-05-04 20:47:21 +08:00
parent de75d02104
commit e2f84f7edd

View File

@@ -216,6 +216,11 @@ public class Genshin
{
return GetPositionFromMap(MapTypes.Teyvat.ToString());
}
public Point2f? GetPositionFromMap(string matchingMethod)
{
return GetPositionFromMap(nameof(MapTypes.Teyvat), matchingMethod);
}
public float GetCameraOrientation()
{
@@ -230,14 +235,18 @@ public class Genshin
/// <param name="cacheTimeMs">缓存时间单位毫秒默认900ms</param>
/// <returns>包含X和Y坐标的Point2f结构体</returns>
public Point2f? GetPositionFromMap(string mapName, int cacheTimeMs = 900)
{
var matchingMethod = TaskContext.Instance().Config.PathingConditionConfig.MapMatchingMethod;
return GetPositionFromMap(mapName,matchingMethod, cacheTimeMs);
}
public Point2f? GetPositionFromMap(string mapName, string matchingMethod, int cacheTimeMs = 900)
{
var imageRegion = CaptureToRectArea();
if (!Bv.IsInMainUi(imageRegion))
{
throw new InvalidOperationException("不在主界面,无法识别小地图坐标");
}
var matchingMethod = TaskContext.Instance().Config.PathingConditionConfig.MapMatchingMethod;
return MapManager.GetMap(mapName, matchingMethod)
.ConvertImageCoordinatesToGenshinMapCoordinates(LazyNavigationInstance.Value
.GetPositionStableByCache(imageRegion, mapName, matchingMethod, cacheTimeMs));