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

[게임메이커 강좌-기초][GMS2]목표 방향으로 천천히 회전

by 타락카얀 2023. 1. 15.
728x90

 

 

GAME MAKER 강좌

 

KAYAN

 

 

 

 

 

◈ 목표 방향으로 천천히 회전시키기

 

 

목표 방향으로 이미지 또는 오브젝트를 회전시키는 방법에 대해 알아봅시다.

 

(▲ 목표 방향으로 회전)

 

원하는 목표 방향으로 회전하려면 아래의 함수를 사용하여 현재 각도와 목표 각도의 차이를

알아야 합니다.

 


   ◎ angle_difference(ang1, ang2)
      - ang1 : 사용할 첫 번째 각도(현재 각도)
      - ang2 : 사용할 두 번째 각도(목표 각도)


 

이 함수는 두 각도 사이의 가장 작은 각도 차이(최소값)를 -180도에서 180도 사이의 값으로 반환합니다

 

아래와 같이 목표 방향이 현재 방향보다 위에 있으면 가장 가까운 값으로 음수값이 되고,

 

(▲ 음수값)

 

목표 방향이 현재 방향보다 아래에 있으면 가장 가까운 값으로 양수값이 반환됩니다.

 

(▲ 양수값)

 

이 함수로 통해 얻은 값은 현재 각도 값에서 빼면 목표 각도를 얻을 수 있습니다.

 

이점을 이용하여 회전한다면 아래와 같이 할 수 있습니다.

 


   // image_angle 내장 변수를 활용한 회전
   
   var target_dir = point_direction(x, y, mouse_x, mouse_y);
   
   var current_dir = angle_difference(image_angle, target_dir);
   
   image_angle -= min(abs(current_dir), 1) * sign(current_dir);
   
   
   ※ sign(n) 함수는 지정한 값이 가진 부호(-1, +1, 또는 0)를 반환합니다.




 

이것은 현재 위치에서 마우스 좌표 방향으로 천천히 회전하여 image_angle 변수에 저장하는 것입니다.

angle_difference 의 정방향 값은 음수이기 때문에 다시 음수로 더해주면, 각도가 목표 방향에

가까워지는 원리입니다.

 

 

 

 

 

300x250

댓글