여러개의 픽셀값중 하나라도 만족할시 액션이 실행되게끔 만들려면
어떻게 코드를써야하나요?
예를 들어서
PixelSearch, x11, y11, 0, 0, A_ScreenWidth, A_ScreenHeight, 3b2941, 10, FastPixelSearch, x12, y12, 0, 0, A_ScreenWidth, A_ScreenHeight, 3f2934, 10, Fast
PixelSearch, x13, v13, 0, 0, A_ScreenWidth, A_ScreenHeight, 5b4144, 10, Fast
이 세계의 값중 하나라도 일치한다면
Send, {Click Down}
Sleep, 150
Send, {Click Up}
이 액션이 발동되게끔 만들고싶습니다.
PixelSearch, x11, y11, 0, 0, A_ScreenWidth, A_ScreenHeight, 3b2941, 10, Fast
if errorlevel = 0
{
Mousemove, %x11%,%y11%
Send, {Click Down}
Sleep, 150
Send, {Click Up}
}
else{
send, {4}
gosub, B1
}
B1:
PixelSearch, x12, y12, 0, 0, A_ScreenWidth, A_ScreenHeight, 3f2934, 10, Fast
if errorlevel = 0
{
Mousemove, %x12%,%y12%
Send, {Click Down}
Sleep, 150
Send, {Click Up}
}
else{
send, {4}
gosub, B2
}
B2:
PixelSearch, x13, v13, 0, 0, A_ScreenWidth, A_ScreenHeight, 5b4144, 10, Fast
if errorlevel = 0
{
Mousemove, %x13%,%y13%
Send, {Click Down}
Sleep, 150
Send, {Click Up}
}
else{
send, {4}
gosub, A1
}
이런식으로 코드를짜니
1번색이 발견되도클릭 2번색이 발견되도 클릭 3번색이 발견되도 클릭
이런식으로 작동되서 무한으로 클릭만 하고있던데
3개중 하나라도 일치할시
한번만 클릭하고
gosub, A1 으로 넘어가게끔 만들려면 어떻게 해야할까요?
클릭후엔 슬립을 넣으세요
1. 각 라벨에 리턴을 넣어줍니다.
gosub, A1 은 B2에 있으면 안되요. B2의 픽셀서치가 거짓일때만 가게 되므로
다르게 처리하셔야 합니다.
2. 라벨 B1,B2의 내용을 통합하세요
else일때 바로 2번째 픽셀서치하고 또 else일때 3번째 픽셀서치하면 됩니다.
goto 와 gosub 간의 차이점을 아셔야 합니다.
gosub은 한번 수행하면 리턴이 나오기까지 계속 대기합니다.
이게 쌓이면 나중 스크립트가 멈추게 됩니다.
또한, 오핫은 리턴이 없으면 순차적으로 계속 처리합니다.
그렇기 때문에 본문의 코드는 참,거짓 유무와 상관없이 b1, b2 를 무조건 수행하게 됩니다.