물리 엔진 마찰 설정
physics_set_friction
함수는 인스턴스에 피xture를 바인딩할 때 사용됩니다. 이 함수는 바인딩된 피xture의 "id"를 반환하며, 이 "id"를 사용하여 언제든지 바인딩된 피xture의 마찰 값을 설정할 수 있습니다. 주의할 점은 마찰 값은 일반적으로 0과 1 사이의 값으로 설정되지만, 필요에 따라 비음수 값을 사용할 수 있습니다.
문법
physics_set_friction(fixture, friction)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
fixture | Physics Fixture ID | 바인딩된 피xture의 id |
friction | Real | 적용할 새로운 마찰 값 |
반환값
- N/A
예제
var fric = physics_get_friction(fix_id);
physics_set_friction(fix_id, fric + 0.1);
위 코드는 인스턴스의 바인딩된 물리 속성에 대한 현재 마찰 값을 가져온 후, 이를 다른 값으로 설정합니다.
활용 예제
- 마찰 값 증가
gml var current_friction = physics_get_friction(fix_id); physics_set_friction(fix_id, current_friction + 0.2);
- 마찰 값 감소
gml var current_friction = physics_get_friction(fix_id); physics_set_friction(fix_id, max(current_friction - 0.1, 0));
- 특정 조건에서 마찰 값 설정
gml if (is_on_ground) { physics_set_friction(fix_id, 0.5); } else { physics_set_friction(fix_id, 0.1); }
- 마찰 값 랜덤 설정
gml var random_friction = random(1); physics_set_friction(fix_id, random_friction);
- 게임 레벨에 따라 마찰 값 조정
gml if (level == 1) { physics_set_friction(fix_id, 0.3); } else if (level == 2) { physics_set_friction(fix_id, 0.6); } else { physics_set_friction(fix_id, 0.9); }
이와 같이 physics_set_friction
함수를 활용하여 다양한 상황에서 물체의 마찰 값을 조정할 수 있습니다.