파티클 시스템 정보 가져오기
이 문서는 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);
이 예제들은 파티클 시스템 에셋에서 정보를 가져오고, 방출기 및 파티클 타입에 대한 정보를 활용하는 방법을 보여줍니다.