안녕하세요 RGB 픽셀을 찾아서 그 픽셀을 찾아가게끔하는걸 연습해보고있는데요
몇가지 안되는게 있어서 여쭈어보려고합니다.
F1::
PixelSearch, x,y, 0,0, A_ScreenWidth,A_ScreenHeight, 0X4C70E2,20, Fast RGB
if (errorLevel) {
MsgBox 찾기 실패! 종료합니다.
ExitApp
}
else {
x:=x+1
y:=y+1
;MsgBox 찾기성공! 마우스 포인트를 따라가보세요. 좌표 (x%x%, y%y%)
sleep, 100
MouseMove, %x%,%y%, 4
}
return
F2::Reload
F3:: ExitApp
우선 이렇게 만들어놨는데요
저기서 픽셀을 못찾았을 경우 그냥 종료가 되게끔 해놨는데요 저걸 종료가 되지않고 못 찾았을 경우 다시 찾게끔 하고싶은데
Loop 문을 써야되는지 뭘 써야 되는지 모르겠습니다.
F1::
PixelSearch, x,y, 0,0, A_ScreenWidth,A_ScreenHeight, 0X4C70E2,20, Fast RGB
if (errorLevel) {
loop
}
라고 작성을 하면 바로 오류가 뜨고 혹시 어떻게 처리를 해야하나요
그리고 또 한가지 더 궁금한게
우선 이 코드를 재생시키면 마우스가 해당 좌표로 이동까지는 합니다.
여기서 마우스가 해당 좌표에 도달한 순간 마우스를 클릭한다던지 혹은 키보드의 어떤 키를 누른다던지 하는 명령어가 있는지 있다면 어떤 명령어가 있는지 알고싶습니다
F1:
PixelSearch, x,y, 0,0, A_ScreenWidth,A_ScreenHeight, 0X4C70E2,20, Fast RGB
if (errorLevel) {
MsgBox 찾기 실패! 종료합니다.
gosub, F1
}
이렇게 핫키 밑에 서브루틴 만들어서 에러일때 강제로 서브루틴 실행하게 해서 반복 하는방법과
F1:: 밑의부분을 전부 함수로 만들어서
if (errorLevel) {
MsgBox 찾기 실패! 종료합니다.
return F1()
}
처럼 실패시 리턴할때 함수를 다시 호출하는 방법이 있습니다. 재귀함수라고 하는건데 루프문처럼 반복됩니다. 편한걸로...
대신 무한루프문은 빠져나올구멍을 만들어놔야 헛바퀴 안돕니다