파티클 시스템 정보 가져오기
이 문서는 GameMaker의 파티클 시스템 에셋에 대한 정보를 가져오는 particle_get_info 함수에 대해 설명합니다. 이 함수는 파티클 시스템 에셋에 대한 정보를 담고 있는 구조체를 반환합니다. 반환된 구조체는 파티클 시스템 정보 구조체로, 여러 개의 파티클 방출기 정보 구조체를 포함하고 있습니다.
기본 개념
particle_get_info 함수는 다음과 같은 형식으로 사용됩니다:
particle_get_info(partsys);
인자 설명
| 인자 이름 | 데이터 타입 | 설명 |
|---|---|---|
| partsys | Particle System Asset | 정보를 가져올 파티클 시스템 에셋 |
반환 값
이 함수는 파티클 시스템 정보 구조체를 반환합니다.
파티클 시스템 정보 구조체
반환된 구조체는 다음과 같은 변수들을 포함합니다:
| 변수 이름 | 데이터 타입 | 설명 |
|---|---|---|
| name | String | 파티클 시스템 에셋의 이름 |
| xorigin | Real | 파티클 시스템의 X 원점 |
| yorigin | Real | 파티클 시스템의 Y 원점 |
| global_space | Boolean | 이 파티클 시스템이 전역 공간 파티클을 사용하도록 설정되었는지 여부 |
| oldtonew | Boolean | 오래된 파티클이 새로운 파티클 뒤에 그려져야 하는지 여부 |
| emitters | Array of Particle Emitter Info Struct | 방출기 정보 구조체의 배열 |
파티클 방출기 정보 구조체
각 방출기 정보 구조체는 다음과 같은 변수들을 포함합니다:
| 변수 이름 | 데이터 타입 | 설명 |
|---|---|---|
| ind | Particle Emitter ID | 방출기 ID |
| name | String | 방출기 이름 |
| mode | Particle Emitter Mode Constant | 파티클 방출 모드 |
| enabled | Boolean | 방출기가 활성화되어 있는지 여부 |
| number | Real | 매 프레임 생성할 파티클 수 |
| relative | Boolean | 방출기가 상대 모드인지 여부 |
| xmin | Real | 방출기 영역의 왼쪽 X 좌표 |
| xmax | Real | 방출기 영역의 오른쪽 X 좌표 |
| ymin | Real | 방출기 영역의 위쪽 Y 좌표 |
| ymax | Real | 방출기 영역의 아래쪽 Y 좌표 |
| distribution | Particle Emitter Distribution Constant | 파티클 분포 스타일 |
| shape | Particle Emitter Shape Constant | 방출기 영역의 형태 |
| parttype | Particle Type Info Struct | 방출기에서 사용하는 파티클 타입 정보 |
파티클 타입 정보 구조체
파티클 타입 정보 구조체는 다음과 같은 변수들을 포함합니다:
| 변수 이름 | 데이터 타입 | 설명 |
|---|---|---|
| ind | Particle Type ID | 파티클 타입의 인덱스 |
| sprite | Sprite Asset | 파티클 타입이 사용하는 스프라이트 |
| frame | Real | 스프라이트의 서브 이미지 |
| animate | Boolean | 스프라이트가 애니메이션인지 여부 |
| stretch | Boolean | 애니메이션이 파티클의 수명에 걸쳐 늘어나는지 여부 |
| random | Boolean | 랜덤 서브 이미지를 사용하는지 여부 |
| shape | Particle Shape Constant | 파티클의 형태 |
| size_xmin | Real | X 축의 최소 크기 |
| size_ymin | Real | Y 축의 최소 크기 |
| size_xmax | Real | X 축의 최대 크기 |
| size_ymax | Real | Y 축의 최대 크기 |
| speed_min | Real | 생성 시 파티클의 최소 속도 |
| speed_max | Real | 생성 시 파티클의 최대 속도 |
| dir_min | Real | 생성 시 파티클의 최소 방향 |
| dir_max | Real | 생성 시 파티클의 최대 방향 |
| color1 | Colour | 생성 시 파티클의 색상 |
활용 예제
예제 1: 파티클 타입 정보 가져오기
var _particle_info = particle_get_info(ps_Clouds);
var _asset_name = _particle_info.name;
var _arr_emitters = _particle_info.emitters;
if (array_length(_arr_emitters) > 0) {
var _type_info = _arr_emitters[0].parttype;
if (_type_info.additive) {
show_debug_message("The first emitter in {0} creates shiny particles!", _asset_name);
}
}
예제 2: 방출기 이름 나열하기
var _particle_info = particle_get_info(ps_Environment);
var _asset_name = _particle_info.name;
var _emitter_names = array_map(_particle_info.emitters, function(_element, _index) {
return _element.name;
});
_emitter_names = string_join_ext(", ", _emitter_names);
show_debug_message("{0} contains the following particle emitters: {1}", _asset_name, _emitter_names);
이 예제들은 파티클 시스템 에셋에서 정보를 가져오고, 방출기 및 파티클 타입에 대한 정보를 활용하는 방법을 보여줍니다.