파티클 방출기 활성화 및 비활성화
이 문서는 파티클 방출기를 활성화하거나 비활성화하는 함수에 대해 설명합니다. 이 함수는 파티클 시스템에서 특정 방출기의 상태를 제어하는 데 사용됩니다.
사용 노트
- 비활성화된 방출기가 생성한 파티클은 보이지 않으며 업데이트되지 않습니다.
- 방출기 지연(
part_emitter_delay
) 또는 간격(part_emitter_interval
)과 관련된 타이머는 일시 중지됩니다. - 비활성화된 방출기는 스트림 모드에서 새로운 파티클을 생성하지 않습니다.
part_emitter_burst
호출 후에도 파티클을 생성하지 않습니다.
함수 구문
part_emitter_enable(ps, ind, enable);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
ps | Particle System ID | 방출기가 포함된 파티클 시스템 |
ind | Particle Emitter ID | 변경할 방출기의 인덱스 |
enable | Boolean | 방출기를 활성화할지 여부 |
반환값
N/A
예제 코드
다음은 방출기를 생성하고 활성화 및 비활성화하는 예제입니다.
// 생성 이벤트
ps = part_system_create();
pe1 = part_emitter_create(ps);
part_emitter_region(ps, pe1, 100, 200, 100, 200, ps_shape_rectangle, ps_distr_gaussian);
part_emitter_enable(ps, pe1, false); // pe1 비활성화
pe2 = part_emitter_create(ps);
part_emitter_region(ps, pe2, 200, 300, 100, 200, ps_shape_rectangle, ps_distr_gaussian);
pt = part_type_create();
part_type_speed(pt, 2, 2, 0, 0);
part_type_direction(pt, 90, 90, 0, .2);
part_emitter_stream(ps, pe1, pt, 2); // pe1은 비활성화되어 파티클을 생성하지 않음
part_emitter_stream(ps, pe2, pt, 2); // pe2는 활성화되어 파티클을 생성함
// 정리 이벤트
part_emitter_destroy(ps, pe1);
part_emitter_destroy(ps, pe2);
part_system_destroy(ps);
part_type_destroy(pt);
위 코드는 Create
이벤트에서 파티클 시스템 ps
를 생성하고 두 개의 방출기 pe1
과 pe2
를 추가합니다. 각 방출기는 100x100 픽셀의 직사각형 영역에서 파티클을 방출하도록 설정되어 있으며, 가우시안 분포를 사용합니다. pe1
은 part_emitter_enable
을 사용하여 비활성화됩니다. 이후 파티클 타입 pt
가 생성되고, 모든 파티클이 일정한 속도로 위쪽으로 이동하도록 설정됩니다.
두 방출기는 part_emitter_stream
을 사용하여 활성화되며, 각 방출기는 스텝당 두 개의 파티클을 생성하도록 설정됩니다. pe1
은 비활성화되어 파티클을 생성하지 않지만, pe2
는 정상적으로 파티클을 방출합니다. 마지막으로, 동적 리소스이므로 방출기, 시스템 및 타입은 정리 이벤트에서 모두 파괴됩니다.
활용 예제
- 비활성화된 방출기 사용하기
gml part_emitter_enable(ps, pe1, false);
- 방출기 활성화하기
gml part_emitter_enable(ps, pe2, true);
- 파티클 속도 조정하기
gml part_type_speed(pt, 3, 5, 0, 0);
- 방출기 위치 변경하기
gml part_emitter_region(ps, pe1, 150, 250, 150, 250, ps_shape_rectangle, ps_distr_gaussian);
- 파티클 방향 변경하기
gml part_type_direction(pt, 45, 90, 0, .1);
이러한 예제들은 파티클 방출기를 효과적으로 관리하고 다양한 상황에서 활용할 수 있는 방법을 보여줍니다.