물리 시뮬레이션에서 입자 데이터 가져오기
이 문서는 물리 시뮬레이션에서 특정 입자에 대한 다양한 정보를 가져오는 함수인 physics_particle_get_data_particle
에 대해 설명합니다. 이 함수는 주어진 플래그를 사용하여 입자의 정보를 반환합니다.
함수 설명
- 입자 인덱스:
physics_particle_create
함수로 생성된 입자의 ID입니다. - 버퍼:
buffer_create
함수를 사용하여 미리 생성된 버퍼로, "grow" 타입이어야 하며 예상 반환 데이터의 크기와 비슷해야 합니다. || ||
플래그 상수 설명
상수 이름 | 설명 | 데이터 타입 |
---|---|---|
phy_particle_data_flag_type | 입자의 플래그 값 | flags |
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_u32 |
phy_particle_data_flag_category | 입자 카테고리 (입자 생성 시 정의됨) | buffer_u32 |
함수 구문
physics_particle_get_data_particle(ind, buffer, flags)
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
ind | Physics Particle ID | 데이터를 가져올 입자의 인덱스 (ID) |
buffer | Buffer | 데이터를 저장할 (미리 생성된) 버퍼 |
flags | Physics Particle Data Flag Constant(s) | 특정 입자 유형에 대한 데이터를 추출하는 데 사용할 플래그 |
반환값
- N/A
활용 예제
아래 코드는 입자의 위치와 속도를 가져오는 예제입니다.
var part = physics_particle_create(flags, x, y, x_vel, y_vel, c_white, 1, 1);
||
||
var buffer = buffer_create(16, buffer_grow, 4);
physics_particle_get_data_particle(part, buffer, flags);
px = buffer_read(buffer, buffer_f32);
py = buffer_read(buffer, buffer_f32);
pvelx = buffer_read(buffer, buffer_f32);
pvely = buffer_read(buffer, buffer_f32);
buffer_delete(buffer);
위 코드는 변수 part
로 인덱스된 입자의 위치와 속도를 가져와 여러 변수에 데이터를 저장합니다.
추가 활용 예제
- 입자 색상 가져오기
gml var flags = phy_particle_data_flag_colour; var buffer = buffer_create(4, buffer_grow, 1); physics_particle_get_data_particle(part, buffer, flags); var color = buffer_read(buffer, buffer_u32); buffer_delete(buffer);
- 입자 카테고리 가져오기
gml var flags = phy_particle_data_flag_category; var buffer = buffer_create(4, buffer_grow, 1); physics_particle_get_data_particle(part, buffer, flags); var category = buffer_read(buffer, buffer_u32); buffer_delete(buffer);
- 입자 속도 업데이트
gml var new_velocity_x = 5.0; var new_velocity_y = 3.0; physics_particle_set_velocity(part, new_velocity_x, new_velocity_y);
이와 같은 방식으로 physics_particle_get_data_particle
함수를 활용하여 물리 시뮬레이션에서 입자의 다양한 정보를 효과적으로 관리할 수 있습니다.