将坐标保存在数组中
Save Coordinates in a Array
我想将像素搜索中找到的数据保存在数组中并再次输出,但我不知道如何开始。
这基本上就是我当前的搜索功能:
object result = au3.PixelSearch(77, 270, 190, 298, 0x29343F, 5);
if (result.ToString() != "1")
{
object[] resultCoord = (object[])result;
au3.MouseClick("LEFT", (int)resultCoord[0], (int)resultCoord[1], 1, 5);
}
数组的原因是,我想扩展它。
示例:找到像素后,鼠标已经移动并单击了一次,则应将坐标保存在数组中,如果像素不再可见,则应扩展函数并在相同坐标处再次单击。对我来说,坐标不是必须通过鼠标点击来保存的,它也可以通过 if 语句保存
if (result.ToString() != "1")
这怎么可能?
好的,让我们使用一个列表(记得在代码的上半部分使用 System.Collections.Generic; :P)
public List<object> savedCoords = new List<object>(); //declare this out of your search function or it will be overwrited each search;
然后您可以将搜索结果添加到列表中:
object result = au3.PixelSearch(77, 270, 190, 298, 0x29343F, 5);
if (result.ToString() != "1")
{
savedCoords.Add(result); //<--HERE
object[] resultCoord = (object[])result;
au3.MouseClick("LEFT", (int)resultCoord[0], (int)resultCoord[1], 1, 5);
}
如果您想搜索列表,请告诉我 au3.PixelSearch 返回的对象的结构,我将创建一个 lambda 来执行此操作并编辑 eanswer
您应该使用更好的像素坐标描述。例如 system.Drawing.Point,但您也可以创建自己的等效类型。
那么你可以只用一个列表来保留多个点
var myList = new List<Point>();
myList.Add(new Point(xCoordinate, yCoordinate));
我不清楚您是如何获得坐标的,但是每当您发现自己在使用 object
时,您真的应该停下来想想这是否是您可以用于解决问题的最佳类型。与字符串相同,它们用于表示文本,而不是任意对象。
我想将像素搜索中找到的数据保存在数组中并再次输出,但我不知道如何开始。
这基本上就是我当前的搜索功能:
object result = au3.PixelSearch(77, 270, 190, 298, 0x29343F, 5);
if (result.ToString() != "1")
{
object[] resultCoord = (object[])result;
au3.MouseClick("LEFT", (int)resultCoord[0], (int)resultCoord[1], 1, 5);
}
数组的原因是,我想扩展它。
示例:找到像素后,鼠标已经移动并单击了一次,则应将坐标保存在数组中,如果像素不再可见,则应扩展函数并在相同坐标处再次单击。对我来说,坐标不是必须通过鼠标点击来保存的,它也可以通过 if 语句保存
if (result.ToString() != "1")
这怎么可能?
好的,让我们使用一个列表(记得在代码的上半部分使用 System.Collections.Generic; :P)
public List<object> savedCoords = new List<object>(); //declare this out of your search function or it will be overwrited each search;
然后您可以将搜索结果添加到列表中:
object result = au3.PixelSearch(77, 270, 190, 298, 0x29343F, 5);
if (result.ToString() != "1")
{
savedCoords.Add(result); //<--HERE
object[] resultCoord = (object[])result;
au3.MouseClick("LEFT", (int)resultCoord[0], (int)resultCoord[1], 1, 5);
}
如果您想搜索列表,请告诉我 au3.PixelSearch 返回的对象的结构,我将创建一个 lambda 来执行此操作并编辑 eanswer
您应该使用更好的像素坐标描述。例如 system.Drawing.Point,但您也可以创建自己的等效类型。
那么你可以只用一个列表来保留多个点
var myList = new List<Point>();
myList.Add(new Point(xCoordinate, yCoordinate));
我不清楚您是如何获得坐标的,但是每当您发现自己在使用 object
时,您真的应该停下来想想这是否是您可以用于解决问题的最佳类型。与字符串相同,它们用于表示文本,而不是任意对象。