물리 조인트 상수
물리 조인트 상수는 GameMaker GML에서 물리 세계의 피규어 간의 조인트에 특정한 많은 상수를 포함하고 있습니다. 이러한 상수는 물리 시뮬레이션이 실행되는 동안 실시간으로 정보를 설정하거나 가져오는 데 사용될 수 있습니다. 그러나 이러한 상수를 호출할 때 복잡한 계산이 수행되므로 주의해서 사용해야 하며, 필요한 경우에만 사용해야 합니다. 또한 많은 상수는 특정 조인트 유형에 고유하다는 점에 유의해야 합니다. 모든 값을 적절한 함수로 가져올 수 있지만, 읽기 전용이 아닌 것으로 표시된 값만 설정할 수 있습니다.
일반적으로 이러한 상수는 다음 함수와 함께 사용됩니다: - physics_joint_get_value
- physics_joint_set_value
일반 상수
다음 상수는 사용 가능한 모든 조인트 유형에 적용될 수 있습니다:
물리 조인트 상수 | 설명 | 읽기 전용 |
---|---|---|
phy_joint_anchor_1_x | 조인트의 첫 번째 앵커 포인트의 x 좌표 | 예 |
phy_joint_anchor_1_y | 조인트의 첫 번째 앵커 포인트의 y 좌표 | 예 |
phy_joint_anchor_2_x | 조인트의 두 번째 앵커 포인트의 x 좌표 | 예 |
phy_joint_anchor_2_y | 조인트의 두 번째 앵커 포인트의 y 좌표 | 예 |
phy_joint_reaction_force_x | 조인트의 x 앵커 위치에서 두 번째 인스턴스에 적용되는 반응력 | 예 |
phy_joint_reaction_force_y | 조인트의 y 앵커 위치에서 두 번째 인스턴스에 적용되는 반응력 | 예 |
phy_joint_reaction_torque | 조인트의 앵커 위치에서 두 번째 인스턴스에 적용되는 토크 | 예 |
모터 상수
모터가 부착된 조인트(회전, 프리즘, 휠)에 대한 상수입니다:
물리 조인트 상수 | 설명 | 읽기 전용 |
---|---|---|
phy_joint_max_motor_force | 조인트 생성 시 지정된 최대 모터 힘 | 아니요 |
phy_joint_max_motor_torque | 조인트 생성 시 지정된 최대 모터 토크 | 아니요 |
phy_joint_motor_force | 현재 모터 힘 | 예 |
phy_joint_motor_speed | 현재 모터 속도 | 아니요 |
phy_joint_motor_torque | 현재 모터 토크 | 예 |
회전 조인트
회전 조인트에 사용할 수 있는 상수입니다:
물리 조인트 상수 | 설명 | 읽기 전용 |
---|---|---|
phy_joint_angle | 조인트의 두 앵커 포인트 사이의 각도 (라디안) | 예 |
phy_joint_angle_limits | 조인트의 각도 제한을 활성화 또는 비활성화 | 아니요 |
phy_joint_upper_angle_limit | 조인트의 상한 각도 제한 (도) | 아니요 |
phy_joint_lower_angle_limit | 조인트의 하한 각도 제한 (도) | 아니요 |
프리즘 조인트
프리즘 조인트에 사용할 수 있는 상수입니다:
물리 조인트 상수 | 설명 | 읽기 전용 |
---|---|---|
phy_joint_translation | 앵커 x/y 좌표와 로컬 x/y 좌표 간의 거리 | 예 |
phy_joint_speed | 현재 조인트 이동 속도 | 예 |
거리 조인트, 용접 조인트 및 휠 조인트
거리, 용접 및 휠 조인트에 사용할 수 있는 상수입니다:
물리 조인트 상수 | 설명 | 읽기 전용 |
---|---|---|
phy_joint_damping_ratio | 조인트의 "스프링성"을 정의하는 감쇠 비율 | 아니요 |
phy_joint_frequency | 조인트의 진동 주파수 (헤르츠) | 아니요 |
phy_joint_length_1 | 첫 번째 로컬 x/y 좌표에서 첫 번째 앵커 x/y 좌표까지의 길이 | 예 |
phy_joint_length_2 | 두 번째 로컬 x/y 좌표에서 두 번째 앵커 x/y 좌표까지의 길이 | 아니요 |
마찰 조인트
마찰 조인트에 사용할 수 있는 상수입니다:
물리 조인트 상수 | 설명 | 읽기 전용 |
---|---|---|
phy_joint_max_torque | 조인트의 최대 토크 값 | 아니요 |
phy_joint_max_force | 조인트의 최대 힘 값 | 아니요 |
로프 조인트
로프 조인트에 사용할 수 있는 상수입니다:
물리 조인트 상수 | 설명 | 읽기 전용 |
---|---|---|
phy_joint_max_length | 두 앵커 포인트 간의 최대 연장 | 아니요 |
활용 예제
다음은 물리 조인트 상수를 활용한 몇 가지 예제입니다:
// 조인트 생성
var joint = physics_joint_create_revolute(obj1, obj2, x, y);
// 조인트의 앵커 포인트 가져오기
var anchor_x = physics_joint_get_value(joint, phy_joint_anchor_1_x);
var anchor_y = physics_joint_get_value(joint, phy_joint_anchor_1_y);
// 모터 속도 설정
physics_joint_set_value(joint, phy_joint_motor_speed, 10);
// 조인트의 각도 제한 설정
physics_joint_set_value(joint, phy_joint_upper_angle_limit, 45);
physics_joint_set_value(joint, phy_joint_lower_angle_limit, -45);
// 프리즘 조인트 생성
var prism_joint = physics_joint_create_prismatic(obj1, obj2, x, y);
// 조인트의 현재 속도 가져오기
var speed = physics_joint_get_value(prism_joint, phy_joint_speed);
// 조인트의 진동 주파수 설정
physics_joint_set_value(prism_joint, phy_joint_frequency, 2.0);
// 마찰 조인트 생성
var friction_joint = physics_joint_create_friction(obj1, obj2, x, y);
// 최대 힘 설정
physics_joint_set_value(friction_joint, phy_joint_max_force, 100);
이러한 예제들은 물리 조인트 상수를 활용하여 다양한 물리적 상호작용을 구현하는 방법을 보여줍니다.