phy_rotation 변수 설명
phy_rotation
변수는 인스턴스의 물리적 고정 장치의 각도를 도 단위로 가져오거나 설정하는 데 사용됩니다. 이는 image_angle
을 설정하거나 가져오는 것과 유사합니다. 그러나 물리 세계에서는 회전이 일반 게임 메이커 세계와 반대 방향으로 계산되므로, point_direction()
과 같은 벡터 함수의 반환 값을 수정해야 합니다. (양수를 음수로 바꾸면 해결됩니다.)
문법
phy_rotation;
반환값
- 단정도 부동 소수점 값 (instance가 물리적으로 활성화되지 않은 경우는 undefined)
활용 예제
아래 코드는 인스턴스의 선형 속도를 확인하고, 속도가 0이 아닐 경우 실제 속도를 계산하여 회전을 설정하는 예제입니다.
||
|---|
phy_rotation += sqrt(sqr(phy_speed_x) + sqr(phy_speed_y)) / 10;
}
추가 활용 예제
예제 번호 | 설명 |
---|---|
1 | 인스턴스의 회전을 특정 방향으로 조정하기 |
2 | 물리적 충돌 후 회전 값 변경하기 |
3 | 회전 속도를 기반으로 애니메이션 효과 적용하기 |
4 | 회전 값에 따라 인스턴스의 위치 조정하기 |
예제 1: 인스턴스의 회전을 특정 방향으로 조정하기
if (target_x > x) {
phy_rotation += 5; // 오른쪽으로 회전
} else {
phy_rotation -= 5; // 왼쪽으로 회전
}
예제 2: 물리적 충돌 후 회전 값 변경하기
if (place_meeting(x, y, obj_wall)) {
phy_rotation += 180; // 벽과 충돌 시 반대 방향으로 회전
}
예제 3: 회전 속도를 기반으로 애니메이션 효과 적용하기
if (phy_rotation > 45) {
sprite_index = spr_fast_rotation; // 빠른 회전 스프라이트로 변경
} else {
sprite_index = spr_normal_rotation; // 일반 회전 스프라이트로 변경
}
예제 4: 회전 값에 따라 인스턴스의 위치 조정하기
x += lengthdir_x(10, phy_rotation); // 회전 방향으로 이동
y += lengthdir_y(10, phy_rotation);