동적 물리 인스턴스 (phy_dynamic)
개요
phy_dynamic
은 물리 세계 내에서 완전히 시뮬레이션되는 동적 인스턴스를 나타냅니다. 이 읽기 전용 변수는 확인 중인 인스턴스가 완전히 시뮬레이션되고 있는 경우 true
를 반환하고, 그렇지 않은 경우 false
를 반환합니다.
문법
phy_dynamic;
반환 값
- Boolean: 인스턴스가 물리적으로 활성화되어 있지 않은 경우
undefined
를 반환할 수 있습니다.
예제
다음 코드는 다른 인스턴스가 동적 물리 인스턴스인지 확인합니다. 만약 그렇다면, 두 인스턴스 간의 방향을 계산하고, physics_apply_impulse
를 사용하여 다른 인스턴스에 100의 임펄스를 적용합니다.
if other.phy_dynamic {
with (other) {
var _dir;
_dir = point_direction(x, y, other.x, other.y);
physics_apply_impulse(x, y, x + lengthdir_x(100, dir), y + lengthdir_y(100, dir));
}
}
활용 예제
예제 번호 | 설명 |
---|---|
1 | 다른 인스턴스와 충돌 시 반응하기: phy_dynamic 을 사용하여 충돌 시 물리적 반응을 적용할 수 있습니다. |
2 | 플레이어가 물체를 밀 때: 플레이어가 동적 물체에 임펄스를 적용하여 물체를 밀어낼 수 있습니다. |
3 | 물체가 중력의 영향을 받을 때: phy_dynamic 을 사용하여 중력에 의해 떨어지는 물체를 시뮬레이션할 수 있습니다. |
4 | 물체의 속도 조절하기: 동적 인스턴스의 속도를 조절하여 게임 내에서 다양한 물리적 효과를 만들 수 있습니다. |
추가 코드 스니펫
// 충돌 시 반응하기
if (instance_place(x, y, obj_wall)) {
if other.phy_dynamic {
physics_apply_impulse(other.x, other.y, -100, -100);
}
}
// 플레이어가 물체를 밀 때
if (keyboard_check(vk_right)) {
if other.phy_dynamic {
physics_apply_impulse(other.x, other.y, 50, 0);
}
}
// 물체가 중력의 영향을 받을 때
if (phy_dynamic) {
var gravity = 9.8;
physics_apply_impulse(x, y, 0, gravity);
}
// 물체의 속도 조절하기
if (other.phy_dynamic) {
var speed = 10;
other.speed = speed;
}