이미지맥스는 루아용 스크립트 내부함수를 내장하고있습니다. 내장함수는 공식카페(cafe.naver.com/imagemax/302) 에서 확인할수 있습니다.
내장 함수를 활용하여 다양한 동작을 꾸밀수 있습니다만, 사소하지만 보다 편리하게 쓸수 있는 방법을 또 생각해봤습니다.
저의 경우 비주얼스튜디오코드(VSC)를 이용해서 코드를 작성하는데, 이미지맥스의 내장함수들은 제가 작성중인 코드 워크스페이스에 정의된 함수블럭이 없다보니 인수를 뭘 넣어야 하는지 헬프창이 뜨지 않아 항상 내장함수를 찾아봐야 한다는 단점 아닌 단점이 발생하는 것입니다! 물론 자주 쓰는 함수들은 이미 외워버렸지만요.
더더욱이 아주 많이 쓰는 마우스클릭이나 이미지검색같은 함수들을 매번 인수를 다 넣자니 약간 귀차니즘이 발동하는것입니다.
그래서 함수들을 조합해서 좀더 편하게 제어해보고 싶어졌습니다.
3. 지정영역 랜덤 클릭 함수 clickArea()
세번째로 다뤄볼 함수는 다시 마우스제어함수 Mouse()를 활용하여 원하는 영역의 좌상단좌표와 우하단좌표를 지정하면 클릭할 중앙좌표와 랜덤값을 계산하여 선택한 영역을 랜덤클릭하는 함수로 활용하는것입니다.
-- 특정 영역 클릭 함수
function clickArea(_sx, _sy, _ex, _ey)
local ix = ((_ex - _sx) / 2) + _sx
local iy = ((_ey - _sy) / 2) + _sy
local rx = ix - _sx
local ry = iy - _sy
local rx = math.random(-rx, rx)
local ry = math.random(-ry, ry)
local ix = ix + rx
local iy = iy + ry
Mouse(LBUTTON, CLICK, ix, iy)
print('clickArea() : '..ix, iy)
end
-- 인수 : 설정영역의 좌상단좌표(_sx, _sy) / 우하단좌표(_ex, _ey)
클릭을 하기위해 지정할 영역의 좌상단좌표(sx, sy)와 우하단좌표(ex, ey)을 인수로 함수를 실행하면 지정한 영역의 중앙좌표(ix, iy)를 계산하고, clickResult() 함수와 같은 방법으로 랜덤영역(rx, ry)를 계산하여 지정한 영역을 클릭을 합니다.
-- 예시) 이미지를 찾으면 (X:100, Y:100 - X:200, Y:200) 지점중 한 부분을 랜덤으로 클릭
if isImage('find_image') then
clickArea(100, 100, 200, 200)
end
-- 내부함수 Mouse() 함수를 사용시 예문
local sx, sy, ex, ey = 100, 100, 200, 200
if ImageSearch('find_image') == 1 then
local ix = ((ex - sx) / 2) + sx
local iy = ((ey - sy) / 2) + sy
local rx = ix - sx
local ry = iy - sy
Mouse(LBUTTON, CLICK, ix, iy, 0, 0, rx, ry)
end
이미지 검색 함수 ImageSearch() 를 boolean값(true, false) 으로 리턴 받는 isImage() 함수도 이전에 다룬적이 있으므로 해당 글을 찾아보시면 좋을것 같습니다.
2021.03.29 - [이미지맥스, lua/이미지맥스 ImageMax] - [이미지맥스] ImageSearch()의 결과값을 boolean 값으로 받기
이제 좌표만 따면 됩니다.
'이미지맥스 그리고 루아(lua) > [응용] 내장함수 활용' 카테고리의 다른 글
[이미지맥스] MultiImage() 결과값을 boolean 값으로 받기 isImage() (0) | 2021.07.18 |
---|---|
[이미지맥스] 이미지를 서치하여 클릭하는 함수 clickImage() (0) | 2021.05.04 |
[이미지맥스] ImageSearch()결과를 활용하여 클릭하는 함수 clickResult() (0) | 2021.05.02 |
[이미지맥스] 마우스 클릭을 조금만 더 간편하게! click() (0) | 2021.05.02 |
[이미지맥스] ImageSearch()의 결과값을 boolean 값으로 받기 isImage() (0) | 2021.03.29 |