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
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2]뷰 서피스 (0) | 2023.01.21 |
---|---|
[게임메이커 강좌-기초][GMS2]마우스 좌표 (0) | 2023.01.18 |
[게임메이커 강좌-기초][GMS2] 오브젝트를 마우스 드래그로 이동 (2) | 2023.01.14 |
[게임메이커 강좌-기초][GMS2]로컬 패키지 만들기 (0) | 2023.01.14 |
[게임메이커 강좌-기초][GMS2]룸 - 이펙트 레이어 (0) | 2023.01.13 |
댓글