물리 조인트 모터 활성화
게임 내에서 조인트(프리즘 또는 회전형)에 모터를 사용할 때, 특정 변수나 조건에 따라 모터를 켜거나 끌 수 있어야 합니다. 이를 위해서는 조인트의 인덱스를 변수에 저장한 후, physics_joint_enable_motor
함수를 사용하여 모터를 활성화하거나 비활성화할 수 있습니다.
문법
physics_joint_enable_motor(joint, motor)
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
joint | Physics Joint ID | 모터를 활성화하거나 비활성화할 조인트의 ID |
motor | Boolean | 모터를 켜고 싶으면 true , 끄고 싶으면 false |
반환값
- N/A
예제 코드
아래 코드는 새로운 피xture를 생성하고, "obj_Door" 인스턴스를 생성한 후, 두 인스턴스에 피xture를 바인딩합니다. 이후 회전 조인트를 생성하고 모터를 활성화하는 과정을 보여줍니다.
var t_fix = physics_fixture_create();
physics_fixture_set_circle_shape(t_fix, sprite_get_width(sprite_index) / 2);
var o_id = instance_create_layer(x + 300, y, "Instances", obj_Door);
physics_fixture_bind(t_fix, id);
physics_fixture_bind(t_fix, o_id);
perma_joint = physics_joint_revolute_create(id, o_id, x + 25, y, -90, 90, 1, 10, 2, 0, 0);
physics_joint_enable_motor(perma_joint, 1);
physics_fixture_delete(t_fix);
위 코드는 새로운 피xture를 생성하고, "obj_Door" 인스턴스를 생성한 후, 두 인스턴스에 피xture를 바인딩합니다. 이후 회전 조인트를 생성하고 모터를 활성화한 후, 더 이상 필요하지 않은 피xture를 메모리에서 삭제합니다.
활용 예제
예제 1: 모터를 켜고 끄기
// 모터를 켜기
physics_joint_enable_motor(perma_joint, true);
// 모터를 끄기
physics_joint_enable_motor(perma_joint, false);
예제 2: 조건에 따라 모터 제어하기
if (player_nearby) {
physics_joint_enable_motor(perma_joint, true);
} else {
physics_joint_enable_motor(perma_joint, false);
}
예제 3: 게임 상태에 따른 모터 제어
switch (game_state) {
case "active":
physics_joint_enable_motor(perma_joint, true);
break;
case "paused":
physics_joint_enable_motor(perma_joint, false);
break;
}
이러한 방식으로 physics_joint_enable_motor
함수를 활용하여 게임 내에서 조인트의 모터를 동적으로 제어할 수 있습니다.