게임메이커의 물리적 힘
게임메이커의 물리 세계에서는 인스턴스가 중력과 충돌뿐만 아니라, 사용자가 적용하는 힘의 영향을 받습니다. 인스턴스를 물리 시뮬레이션 내에서 올바르게 제어하기 위해서는 어떤 힘을 적용해야 하는지를 아는 것이 중요합니다. 다음은 적용할 수 있는 두 가지 힘의 종류입니다.
힘의 종류
힘의 종류 | 설명 |
---|---|
임펄스 | 임펄스는 적용된 직후 방향과 속도를 설정합니다. 스프링이나 총알 발사와 같은 상황에 적합합니다. |
힘 | 힘은 기존의 속도와 방향에 작용하여 시간이 지남에 따라 변화를 줍니다. 바람이나 자석과 같은 상황에 적합합니다. |
토크 | 토크는 힘이 적용된 후 인스턴스가 축을 중심으로 회전할 가능성과 회전이 멈추는 속도를 조절합니다. |
각 임펄스 | 각 임펄스는 인스턴스를 즉시 회전시키는 데 사용됩니다. 일반 임펄스가 인스턴스를 즉시 움직이게 하는 것과 유사합니다. |
힘 적용 함수
다양한 유형의 힘을 물리적으로 활성화된 인스턴스에 적용하기 위해 다음과 같은 함수들이 존재합니다. 각 함수는 힘이 어떻게 적용될지를 더 자세히 설명합니다.
함수 이름 | 설명 |
---|---|
physics_apply_force |
인스턴스에 힘을 적용합니다. |
physics_apply_impulse |
인스턴스에 임펄스를 적용합니다. |
physics_apply_local_force |
인스턴스의 로컬 좌표계에서 힘을 적용합니다. |
physics_apply_local_impulse |
인스턴스의 로컬 좌표계에서 임펄스를 적용합니다. |
physics_apply_torque |
인스턴스에 토크를 적용합니다. |
physics_apply_angular_impulse |
인스턴스에 각 임펄스를 적용합니다. |
활용 예제
다음은 각 힘을 활용하는 예제입니다.
// 임펄스를 적용하여 총알 발사
var bullet = instance_create_layer(x, y, "Bullets", obj_bullet);
physics_apply_impulse(bullet, direction, speed);
// 바람의 힘을 적용하여 인스턴스 이동
physics_apply_force(obj_player, 10, 0); // 오른쪽으로 힘을 적용
// 로컬 좌표계에서 힘을 적용
physics_apply_local_force(obj_player, 0, -5); // 위쪽으로 힘을 적용
// 토크를 적용하여 회전
physics_apply_torque(obj_wheel, 15); // 시계 방향으로 토크를 적용
// 각 임펄스를 적용하여 즉시 회전
physics_apply_angular_impulse(obj_spinner, 50); // 빠르게 회전
이러한 힘과 함수들을 적절히 활용하면 게임 내에서 물리적 상호작용을 더욱 사실감 있게 구현할 수 있습니다.