질문글들 중에 꽤나 여럿보이는데요 ~
그게 어떤글이냐... 해상도 변경에 대한 질문이 의외로 보이네요..
현재 스크립트 제작 공유 하시는분들의 해상도는 480x800 으로 맞춰져있지요 ^^;
이 스크립트를 폰으로 가져가 사용하려면 당.연.히 작동을 하지 않죠.. 해상도가 다르기 때문에..!
그럼 폰으로 옮겨갈때는 어느정도의 수작업이 동반됩니다 ...
자 그걸 조금 더 간단하게 하는법을 알아 보자구요 !
(기본적인 함수기능과 스크립트 해석이 가능한 분들이란 가정하에 글을 씁니다..)
현재 저는 별이되어라 라는 게임을 하고있고, 예전 태환님,라이안님이 공유해주신 스크립트를 약간 개량해서 사용하고 있어요 .
ㅅㅅㅅ 스크립트를 예제로 잡고 설명을 해보도록 하죠 .
먼저 좌표 변환부터 해보도록 하죠.
현재 480x800 의 좌표를 1080x1920 의 해상도로 변경한다 가정을 해봅니다 .
이게 무슨뜻이냐 하면 x y 축의 도트의 개수 즉, 가로축 세로축의 도트 개수를 뜻하게 됩니다 .
1080x1920 도 똑같이 생각하시면 되겠죠 .
잠깐.) DPI 에 대해서 설명을 하자면, 도트 퍼 인치 의 줄임말로써 1인치 안의 픽셀수(밀도?)를 뜻합니다.
사진 확대해보시면 사각형의 점들로 이루어져있는걸 보신적 있으시죠 ? 모자이크도 마찬가지이구요..
그 하나의 사각형을 픽셀(화소) 라 부릅니다 . 즉 DPI 가 높을 수록 좀더 정교하고 섬세한(?) 표현이 가능해지죠.
안드로이드내에서 레이아웃이나 디자인들에 대해 중요한걸로 알고 있으나 ....
굉장히 중요한 부분이지만 .. 더이상 어떻게 설명을 해야할지 모르겠으니 ....
자세한 설명은 패스하도록 하죠 ..
(고수님의 도움이 필요합니다ㅋㅋ)
그럼 이제 변환에 대해 들어가봅시다 .
//골렘언덕
var #k1x 118
var #k1y 726
var #k1c 198663
480x800 에서의 좌표가 118 ?726 의 좌표의 색값이 198663 이라고 변수들을 선언 해두었네요 .
그럼 1080x1920 의 해상도로 변환을 해봅시다 .
1080/480 = 2.25 (1080과 480의 비율)
즉, 간단하게 x축의 좌표에는 2.25를 곱해주면 1080에서의 언저리부분 좌표가 나옵니다 .
y축도 똑같겠네요 .?
1920/800 = 2.4?
y축의 좌표에는 2.4를 곱해주면 해당좌표의 비슷한 부분의 좌표가 나오게 됩니다 .
자 그럼 색값이 문제네요 . 색값의 경우 해당 픽셀별로 색상이 다르기 때문에 일일히 수정을 해주시는 방법밖엔 없겠네요.
자 그럼 118 * 2.25 = 265.5 (소수점은 버리도록 하겠습니다.)
? ?726 * 2.4 = 1742.4
265 ?1742 의 좌표가 나오게 되네요 .
하지만 두 좌표는 같은 픽셀이 아니기 때문에 색상값이 달라질 수 밖에 없어요 .
여기서 약간의 노가다스러운 수작업이 필요합니다 .
제가 쓰는 ㅅㅅㅅ 스크립트에서는 구동방식이 이렇습니다 .
메인화면 확인 > 지역확인 > 던전클리어 순서 역순으로 해당좌표 클릭 > 사냥터 입장확인 > 방확인 > 친구창확인 > 사냥중 확인
사냥중이 아닐시 모험종료?
자 여기서 확인에 해당하는 모든 부분을 바꿔주어야 합니다 .
먼저 스크립트내에서????확인해봅시다 .
글이 쓸데없이 길어질까봐 필요한 명령어문만 적습니다 .
getcolor #color #mainx #mainy
if #color == #mainc ?and #key == 0
touchpress 0 50 758
goto :k0
스크립트의 내용은 다 아시리라 믿고 설명은 넘기겠습니다 .
자 그럼 여기서 중요한 좌표가 먼저 나오게 되네요 .
먼저 mainx, mainy 의 값을 위의 방법으로 변환 후 변수값을 바꾸어 주세요 .
?
바꾼 후 스크립트를 하나 작성해봅시다 .
var #mainx ?변환 후 값
var #mainy ?변환 후 값
var #color 0
:start
getcolor #color #mainx #mainy
toast #color
log #color
sleep 1000
:end
자 이제 감이 오시나요 ??오시리라 굳게 믿고.....ㅎㅎ
스크립트를 보시면 #mainx #mainy 좌표의 색값을?로그와 토스트로?출력하게 되어있네요 .
그럼 저 ~ 위에 #mainc 의 값을 해당 색값으로 바꾸어 주면 끝!
그럼 메인화면에서의 인식부분은 끝난거 같네요 .
자 다음으로 보시면 :k0 의 부분입니다 .
지역확인 부분에 해당하는 부분으로써 모험하기를 눌렀을 시 현재 열려있는 지역에 화면이 뜨도록 되어있지요 .
그걸 이용한 방법입니다 . 동일지역의 경우 마지막던전 클리어 전까지 다음지역으로는 화면이 이동하지 않고 똑같은 위치를 나오게 하기 때문에 클리어순서 역순으로 좌표를 클릭하도록 되어있어요 .
//골렘언덕
var #k1x 118 var #k1x 265
var #k1y 726 var #k1y 1742
var #k1c 198663 var #k1c (확인해보시길 바랍니다 !)
위에서 봤던 부분이죠 ??
오른쪽처럼 좌표를 변경 후 , 골렘언덕 부분에서 해당좌표값 넣어주시고 색값을 받아오셔서 수정해주시면 됩니다 .
확인하는 모~~든 부분을 이렇게 수작업 해주시면 되고 ,
클릭부분도 마찬가지 입니다 . 좌표변환 하신 후 변환좌표로 수정해주시면 됩니다 .
자 수정할부분이 의외로 많지요 ?
제가 말주변이 없어서 워낙 설명도 제대로 못하고 글만 길게 쓴거 같네요 ..
더 궁금한부분이나 잘못된부분이 있다면 댓글 달아주세요 .?
시간나는데로 아는데로 설명해보도록 하죠 ....
제작시에는 이보다 더 많은 노력과 인내가 필요합니다 .
?
항상 감사할줄 아는 1인이 되도록 합시다 .
ps. 토요일 오전 10시에 컨퍼런스가 있어서 가야하는데 주말인데다 잠 안온다고 글 쓰다보니 벌써 새벽 5시가 다 되어가네요 ...
저 어떻게 하면될까요 ?ㅠㅠㅠ
방법을 잘 이용해보시면 어떤 해상도에서든지 매크로 구현이 가능해집니다 .
다만 귀찮고 , 손도 많이 타게 되기 때문에 안하는 것 이지요 ..
색값 따오는 경우까지도 모두 스크립트화 가능합니다 ..
다만, 팝업 같은 유저가 원하는 때가 아닌 변수화면들 캐치가 힘들죠 ..
아이디어 정도는 쉽게 드릴 수 있어요 ^^;
심심하고 시간많을때 한번 만들어보도록 하죠 ...!