这是我的代码。我想做的是,当我发现这种颜色时,此循环完成其工作。 我相信问题是来自pixelgetcolor的坐标,我不知道如何将坐标放在那里。 iv尝试与pixelsearch,也没有成功。你有什么建议,我应该怎么办?想法是不停地单击,除非此颜色出现在屏幕上。
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
Loop ; This loop do non stop, unless the color is on the screen.
{
MouseMove, %X%, %Y%
Click
sleep,%flick%
Click
sleep,%flick1%
PixelGetColor,Dead_Monster,X,Y,RGB
if(Dead_Monster = 0x3CC4C4)
{
break ¸
}
}
答案 0 :(得分:1)
您需要将变量包装在%
中,以使PixelGetColor
使用这些变量的值。而且,您的变量X和Y永远都不会设置在任何地方...
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
; initial values?
X := 800
Y := 600
Loop ; This loop do non stop, unless the color is on the screen.
{
MouseMove, %X%, %Y%
Click
sleep,%flick%
Click
sleep,%flick1%
PixelGetColor,Dead_Monster,%X%,%Y%,RGB
if(Dead_Monster == 0x3CC4C4){
break
}
; insert line here to update X, Y ?
}
如果要在屏幕上搜索像素,可以执行以下操作:
; Modified example from https://www.autohotkey.com/docs/commands/PixelSearch.htm
Dead_Monster := 0x3CC4C4
;Search rectangle
S_Left := 0
S_Top := 0
S_Bottom := A_ScreenHeight
S_Right := A_ScreenWidth
PixelSearch, Px, Py, %S_Left%, %S_Top%, %S_Bottom%, %S_Right%, %Dead_Monster%, 3, Fast
if ErrorLevel
MsgBox, That color was not found in the specified region.
else
MsgBox, A color within 3 shades of variation was found at X%Px% Y%Py%.
但是,我不建议在整个屏幕区域中搜索,因为较大的搜索区域会大大增加搜索时间。