Возникла проблема с pixelgetcolor в цикле, и он был бы открыт для любого предложения - PullRequest
0 голосов
/ 24 октября 2019

Это мой код. Что я хочу сделать, это цикл, чтобы закончить то, что он делает, когда я найду этот цвет. Я полагаю, что проблема с кординатами из 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             ¸
            }
           }

1 Ответ

1 голос
/ 24 октября 2019

Вам нужно обернуть ваши переменные в % для 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%.

Тем не менее, я не рекомендую выполнять поиск по всей области экрана, поскольку время поиска значительно увеличивается с увеличением областей поиска.

...