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