물리 센서 설정
때때로 게임에서 두 인스턴스가 충돌할 때 이를 감지하고 인식하되, 충돌에 대한 물리적 반응이 없도록 하고 싶을 수 있습니다. 이를 위해 피처를 센서로 변환할 수 있습니다. 센서로 설정된 피처는 충돌 이벤트를 생성하지만 물리적 반응은 없으므로 게임 룸에서 다른 이벤트를 발생시키는 "트리거"로 사용할 수 있습니다. 모든 피처는 센서로 설정할 수 있으며, 연결된 인스턴스가 정적이든 움직이고 있든 상관없습니다.
센서 피처는 충돌이 처음 발생할 때만 충돌 이벤트를 발생시킵니다. 즉, 두 물체가 계속 겹치는 동안에는 충돌 이벤트가 계속 발생하지 않습니다. 만약 두 물체가 겹치지 않다가 다시 겹치면 또 다른 충돌 이벤트가 발생합니다.
문법
physics_fixture_set_sensor(fixture, state)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
fixture | Physics Fixture ID | 피처의 인덱스 |
state | Boolean | 피처가 센서인지 여부 (true) 또는 아닌지 (false) |
반환값
N/A
예제
physics_fixture_set_sensor(fix_Cloud, 1);
위 코드는 "fix_Cloud"에 인덱스가 지정된 피처의 센서 상태를 true로 설정합니다.
활용 예제
- 트리거 기반 이벤트: 플레이어가 특정 지역에 들어갈 때 적이 나타나도록 설정할 수 있습니다.
gml // 플레이어가 센서에 들어갔을 때 적 생성 if (collision_event) { create_enemy(); }
- 아이템 수집: 플레이어가 아이템에 접촉할 때 아이템을 수집하도록 설정할 수 있습니다.
gml // 아이템 센서에 접촉 시 아이템 수집 if (collision_event) { collect_item(); }
- 환경 변화: 특정 지역에 들어갈 때 배경 음악을 변경하도록 설정할 수 있습니다.
gml // 센서에 들어갔을 때 배경 음악 변경 if (collision_event) { change_background_music(); }
- 게임 오버 조건: 특정 지역에 들어가면 게임 오버 상태로 전환하도록 설정할 수 있습니다.
gml // 센서에 들어갔을 때 게임 오버 if (collision_event) { game_over(); }
- 특정 행동 트리거: 플레이어가 특정 지역에 들어가면 특별한 능력을 부여하도록 설정할 수 있습니다.
gml // 센서에 들어갔을 때 능력 부여 if (collision_event) { grant_special_ability(); }