휠 조인트 생성 (physics_joint_wheel_create)
휠 조인트는 자동차의 쇼크 업소버에 장착된 바퀴처럼 피스톤과 회전 조인트를 결합합니다. 이 조인트를 사용하면 두 개의 물리적 인스턴스를 연결하고, 조인트의 앵커 포인트를 지정할 수 있습니다. 첫 번째 인스턴스는 조인트의 "몸체" 역할을 하고, 두 번째 인스턴스는 "바퀴" 역할을 하며 조인트 축 주위를 자유롭게 움직일 수 있습니다.
조인트가 작용하는 축 벡터를 설정할 수 있으며, 이는 바퀴가 장애물에 부딪힐 때 위아래로 튕길 수 있도록 하는 가상의 선입니다. 아래 이미지는 이 과정을 설명합니다.
모터를 활성화하면 두 번째 인스턴스가 앵커 위치 주위를 회전하며, 원하는 모터 속도를 달성하기 위해 사용할 최대 모터 토크(N/m)와 모터가 회전해야 하는 속도를 설정할 수 있습니다. 휠 조인트는 움직일 수 있는 축을 가지고 있으므로, 조인트의 진동 주기(Hz)와 감쇠 비율을 설정할 수 있습니다. 이러한 값들을 조정하여 원하는 효과를 얻을 수 있으며, 작은 값으로 시작하여 점진적으로 증가시키는 것이 좋습니다.
모든 조인트와 마찬가지로 "col" 값을 true로 설정하면 두 인스턴스가 서로 상호작용하고 충돌할 수 있지만, 충돌 이벤트가 있어야만 가능합니다. false로 설정하면 충돌하지 않습니다.
문법
physics_joint_wheel_create(inst1, inst2, anchor_x, anchor_y, axis_x, axis_y, enableMotor, max_motor_torque, motor_speed, freq_hz, damping_ratio, col)
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
inst1 | Instance ID | 조인트에 연결할 첫 번째 인스턴스 |
inst2 | Instance ID | 조인트에 연결할 두 번째 인스턴스 |
anchor_x | Real | 게임 월드에서 조인트가 고정된 x 좌표 |
anchor_y | Real | 게임 월드에서 조인트가 고정된 y 좌표 |
axis_x | Real | 휠 축 벡터의 x 성분 |
axis_y | Real | 휠 축 벡터의 y 성분 |
enableMotor | Boolean | 모터를 활성화할지 여부 (true 또는 false) |
max_motor_torque | Real | 원하는 모터 속도를 달성하기 위한 최대 모터 토크 (N/m) |
motor_speed | Real | 모터가 회전해야 하는 속도 |
freq_hz | Real | 조인트의 진동 주기 (Hz) |
damping_ratio | Real | 조인트의 감쇠 비율 |
col | Colour | 두 인스턴스가 충돌할 수 있는지 여부 (true 또는 false) |
반환값
- Physics Joint ID
활용 예제
var mainFixture = physics_fixture_create();
physics_fixture_set_box_shape(mainFixture, 128, 32);
var wheelFixture = physics_fixture_create();
physics_fixture_set_circle_shape(wheelFixture, 32);
var o_id = instance_create_layer(x + 25, y + 100, "Instances", obj_Wheel);
physics_fixture_bind(mainFixture, id);
physics_fixture_bind(wheelFixture, o_id);
physics_joint_wheel_create(id, o_id, o_id.x, o_id.y, 0, 1, true, 10, 1, 15, 6, false);
physics_fixture_delete(mainFixture);
physics_fixture_delete(wheelFixture);
위 코드는 두 개의 새로운 피xture를 생성하고 정의합니다. 그런 다음 호출 인스턴스와 새로 생성된 인스턴스에 바인딩한 후 휠 조인트를 적용하여 연결합니다. 이후 피xture는 메모리에서 삭제됩니다.