From 589ed88a5924a7494e21b95b6bbff5e46ff49ddd Mon Sep 17 00:00:00 2001
From: asmrobot <asmrobot@hotmail.com>
Date: Thu, 21 Nov 2019 01:08:42 +0000
Subject: [PATCH] kalete map
---
src/RichCreator/MainWindow.xaml.cs | 55 +++++++++++++++----------------------------------------
1 files changed, 15 insertions(+), 40 deletions(-)
diff --git a/src/RichCreator/MainWindow.xaml.cs b/src/RichCreator/MainWindow.xaml.cs
index 69cb269..91c9320 100644
--- a/src/RichCreator/MainWindow.xaml.cs
+++ b/src/RichCreator/MainWindow.xaml.cs
@@ -191,23 +191,7 @@
MessageBox.Show("配置更新成功");
}
#endregion
-
- private ZTPoint GetRolePosition()
- {
- System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen();
- //原图
- Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap);
- //色彩hsv
- Image<Hsv, byte> hsvImage = new Image<Hsv, byte>(image.Width, image.Height);
-
-
-
- CvInvoke.CvtColor(image, hsvImage, Emgu.CV.CvEnum.ColorConversion.Rgb2Hsv);
-
- hsvImage = hsvImage.GetSubRect(new System.Drawing.Rectangle(0, 0, 1280, 720));
-
- return DnfCVHelper.FindRole(hsvImage, new ZTRectangle(0, 0, 1280, 720));
- }
+
/// <summary>
/// 测速
@@ -285,13 +269,9 @@
}
Thread.Sleep(500);
}
-
- G.Instance.InfoWriter($"测试技能发放完成");
});
}
- private ZTPoint rolePosition = ZTPoint.Empty;
-
/// <summary>
/// 读取角色位置
/// </summary>
@@ -305,10 +285,10 @@
Thread.Sleep(1000);
Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage();
CvInvoke.CvtColor(image, hsvImage, Emgu.CV.CvEnum.ColorConversion.Rgb2Hsv);
- rolePosition = DnfCVHelper.FindRole(hsvImage, gameRect);
+ ZTPoint rolePosition = DnfCVHelper.FindRole(hsvImage, gameRect);
- G.Instance.InfoWriter($"角色位置读取成功:{rolePosition}");
+ G.Instance.InfoWriter($"角色位置读取成功,CBPosition:{rolePosition},Half Position:{DnfRole.CBToHalfPosition(rolePosition)},Foot Position:{DnfRole.CBToFootPosition(rolePosition)}");
});
}
@@ -317,10 +297,14 @@
/// </summary>
private void TestToNextDoor()
{
- HouseInfo house = new HouseInfo(0, MapType.Kalete, false, null);
-
ZTRectangle gameRect = ZTRectangle.Empty;
WindowUtils.GetDnfRect(out gameRect);
+
+ HouseInfo house = new HouseInfo(1, MapType.Kalete, false, null,null);
+ DnfRole role = new DnfRole(gameRect);
+ role.SetHouse(house);
+
+
Image<Hsv, byte> hsvImage = new Image<Hsv, byte>(gameRect.End.X - gameRect.Start.X, gameRect.End.Y - gameRect.Start.Y );
Task.Run(() => {
WindowUtils.SetDnfToTop();
@@ -339,26 +323,17 @@
G.Instance.InfoWriter("找不到定位点");
return;
}
+
ZTPoint rolePosition = DnfCVHelper.FindRole(hsvImage, gameRect);
- ZTPoint start=house.ScreenToMapCoordinate(rolePosition, locationCoor);
+ role.UpdatePosition(rolePosition);
-
-
- DnfRole role = new DnfRole(gameRect);
-
- Int32 doorIndex = 0;
- List<ZTPoint> paths=house.FindDoorPath(out doorIndex,start);
- ZTPoint last = start;
- for (int i = 0; i < paths.Count; i++)
- {
- //移动
- ZTPoint distance = paths[i].Sub(last);
- last = paths[i];
- role.SyncMove(distance);
- }
+ ZTPoint start=house.ScreenToMapCoordinate(DnfRole.CBToHalfPosition(rolePosition), locationCoor);
+ ZTPoint roleFootPosition = house.ScreenToMapCoordinate(role.Position, locationCoor);
+ ZTPoint ngp = DnfRole.HalfToFootPosition(house.HousePathInfo.NextGates[0].Point);
+ role.MoveToMapPoint(roleFootPosition, ngp);
G.Instance.InfoWriter($"测试进入下一关的门完成");
});
--
Gitblit v1.9.3