용접 조인트 생성 (physics_joint_weld_create)
용접 조인트는 두 개의 고정물을 강력하면서도 유연한 결합으로 연결하기 위해 설계되었습니다. 이 조인트는 연결된 두 고정물 간의 유연성을 허용하지만, 예를 들어 거리 조인트와 관련된 늘어남 없이 작동합니다. 조인트는 어떤 스트레스나 하중이 가해질 때 항상 참조 각도로 "스프링"처럼 돌아가려고 합니다.
조인트 생성
조인트를 생성할 위치와 항상 유지하고자 하는 각도를 정의합니다. 아래 이미지를 참고하세요:
조인트의 앵커 포인트는 방의 좌표로 지정되므로, 특히 인스턴스가 조인트와 동시에 생성될 때 주의가 필요합니다. 또한, 조인트는 인스턴스의 스프라이트 크기와는 독립적으로 생성됩니다. 따라서 인스턴스의 원점이 아닌 다른 위치에 용접 조인트를 생성해도 유효하며, 생성된 위치에 상대적으로 두 인스턴스를 제약합니다.
조인트는 유연하며 스트레스가 가해질 때 구부러지고 휘어질 수 있습니다. 조인트의 진동 주기(Hz)와 감쇠 비율을 설정하여 다양한 효과를 얻을 수 있습니다. 이러한 값들을 조정하여 원하는 효과를 얻는 것이 좋으며, 작은 값에서 시작하여 점차 증가시키는 것이 추천됩니다.
조인트의 "col" 값을 true
로 설정하면 두 인스턴스가 서로 상호작용하고 충돌할 수 있지만, 충돌 이벤트가 있어야 합니다. false
로 설정하면 어떤 경우에도 충돌하지 않습니다.
구문
physics_joint_weld_create(inst1, inst2, anchor_x, anchor_y, ref_angle, freq_hz, damping_ratio, col)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
inst1 | Instance ID | 조인트에 연결할 첫 번째 인스턴스 |
inst2 | Instance ID | 조인트에 연결할 두 번째 인스턴스 |
anchor_x | Real | 게임 세계 내 조인트의 x 좌표 |
anchor_y | Real | 게임 세계 내 조인트의 y 좌표 |
ref_angle | Real | 유지할 조인트 각도 |
freq_hz | Real | 조인트의 진동 주기 (Hz) |
damping_ratio | Real | 조인트의 감쇠 비율 |
col | Boolean | 두 인스턴스가 충돌할 수 있는지 여부 (true/false) |
반환 값
- Physics Joint ID
활용 예제
아래는 용접 조인트를 생성하는 예제 코드입니다:
var i, fix, o_id, p_id;
p_id = noone;
o_id = noone;
fix = physics_fixture_create();
physics_fixture_set_box_shape(fix, 64, 32);
for (i = 0; i < 5; i++;) {
o_id = instance_create_layer(x + (128 * i), y, "Instances", obj_BridgePart);
physics_fixture_bind(fix, o_id);
if (i > 0 && i < 4) {
physics_joint_weld_create(p_id, o_id, x + (128 * i) - 64, y, 0, 10, 12, true);
}
p_id = o_id;
}
physics_fixture_delete(fix);
위 코드는 고정물을 생성하고, 루프를 사용하여 여러 인스턴스를 생성한 후, 각 인스턴스에 고정물을 바인딩하고 모두 용접 조인트로 연결합니다. 마지막으로 고정물이 메모리에서 삭제됩니다.