물리 입자 그룹 데이터 가져오기
이 문서는 물리 시뮬레이션에서 입자 그룹에 대한 다양한 정보를 반환하는 physics_particle_group_get_data
함수에 대해 설명합니다. 이 함수는 주어진 플래그를 사용하여 정보를 가져옵니다.
함수 개요
- 함수명:
physics_particle_group_get_data
- 인수:
group
: 물리 입자 그룹의 ID (입자 그룹에서 데이터를 가져올 때 사용)buffer
: 데이터를 저장할 (미리 생성된) 버퍼flags
: 특정 입자 유형에 대한 데이터를 추출하는 데 사용할 플래그
플래그 설명
상수 이름 | 설명 | 데이터 유형 |
---|---|---|
phy_particle_data_flag_type |
입자에 대한 플래그 값 | buffer_u32 |
phy_particle_data_flag_position |
입자의 x 및 y 위치 | 2 x buffer_f32 |
phy_particle_data_flag_velocity |
수평 및 수직 속도 | 2 x buffer_f32 |
phy_particle_data_flag_colour |
색상 및 알파 값 (16진수) | buffer_f32 |
phy_particle_data_flag_category |
입자 카테고리 (그룹 생성 시 정의된) | buffer_u32 |
문법
physics_particle_group_get_data(group, buffer, flags)
반환값
- N/A
활용 예제
아래는 입자 그룹에서 위치와 색상을 가져오는 예제 코드입니다.
var count = physics_particle_group_count(gp);
||
||
if (count > 0) {
var buffer = buffer_create(count * 12, buffer_grow, 4);
physics_particle_group_get_data(gp, buffer, flags);
for (var n = 0; n < count; n++) {
var xx = buffer_read(buffer, buffer_f32);
var yy = buffer_read(buffer, buffer_f32);
var argb = buffer_read(buffer, buffer_u32);
var alpha = (argb >> 24) & 255;
draw_sprite_ext(sprBlob, 0, xx, yy, 1, 1, 0, c_green, alpha);
}
buffer_delete(buffer);
}
이 코드는 gp
변수로 인덱스된 입자 그룹의 모든 입자의 위치와 색상을 가져와서 각 입자의 위치에 스프라이트를 그립니다.
추가 활용 예제
- 속도 정보 가져오기:
gml var flags = phy_particle_data_flag_velocity; // 속도 데이터를 가져오는 코드
- 카테고리 정보 가져오기:
gml var flags = phy_particle_data_flag_category; // 카테고리 데이터를 가져오는 코드
- 다양한 플래그 조합 사용하기:
gml |phy_particle_data_flag_velocity| |---| // 여러 정보를 동시에 가져오는 코드
이와 같이 physics_particle_group_get_data
함수는 물리 입자 시뮬레이션에서 다양한 정보를 효과적으로 추출하는 데 유용합니다.