본문 바로가기
GameMaker강좌[GM8]/기초강좌

[게임메이커강좌-기초]일정한 거리에서 회전

by 타락카얀 2014. 7. 10.
728x90



GAME MAKER 강좌



KAYAN






◈ 일정한 거리에서 회전시키기



일정한 거리에서 회전시킬 수 있는 좌표를 얻을 때 아래와 같은 함수를 사용합니다.

     lengthdir_x(len,dir) : x좌표
     lengthdir_y(len,dir) : y좌표
    
     len : 거리
     dir : 방향

예를 들어 아래와 같이 중심점으로 부터 128 픽셀정도 떨어져 30도 방향에 있는 (x2, y2)좌표를

구한다면,



(▲ 일정한 거리의 좌표)


중심점(x, y)와 lengthdir_x, lengthdir_y 함수를 이용하여 아래와 같이 좌표를 구할 수 있습니다.



     x2 = x + lengthdir_x(128, 30);
     y2 = y + lengthdir_y(128, 30);



lengthdir_xlengthdir_y는 각각 x좌표와 y좌표에 해당하기 때문에 정확한 위치를 구하려면

두 함수를 같이 사용해야 해요.



(▲ lengthdir_x 는 x좌표, lengthdir_y 는 y좌표에 해당)


또한 이 좌표를 통해 일정한 거리를 두며 회전 시킬 수도 있습니다.



(▲ 일정한 거리에서 회전)


일정거리 만큼 회전하는 좌표를 구할 경우, 아래와 같이 응용할 수 있어요.



     //dirc : 회전 변수. 1 스텝당 5도씩 회전할 경우

     x2 = x + lengthdir_x(128, dirc);
     y2 = y + lengthdir_y(128, dirc);

     dirc + = 5;



이것은 (x, y)위치로부터 매 스텝마다 5도씩 회전 방향에 128픽셀 떨어진 위치(x2, y2)를 구하는

것입니다.

위와 같이 거리(128)를 같게 하면 정원 형태로 회전 할 수 있지만 lengthdir_xlengthdir_y

거리를 다르게 하면 타원 형태로 회전 시킬 수 있습니다.

예를 들어 아래와 같이,



     x2 = x + lengthdir_x(128, dirc);
     y2 = y + lengthdir_y(64, dirc);



이와 같이 한다면, x축으로는 길고, y축으로는 짧은 타원형으로 dirc값에 따라 회전할 수 있게 하는

좌표를 얻을 수 있습니다.





300x250

댓글