该函数使用检查的给定标志返回有关物理模拟中单个粒子的各种信息。
粒子索引 (其 ID) 是由函数 physicals_article_create 返回的索引,并且所使用的缓冲区必须是之前使用函数 buffer_create 创建的。它应该是 "grow" 类型,大小大约是预期返回数据的大小。标志本身使用下面给出的常量进行设置,您可以使用按位 或 "|" 创建单个标志值以获得所需的信息。
常量 | 描述 | 数据类型 |
---|---|---|
phy_particle_data_flag_typeflags | The flags value for the particle. | buffer_u32 |
phy_particle_data_flag_position | The x and y position of the particle. | 2 x buffer_f32 |
phy_particle_data_flag_velocity | The horizontal and vertical speed. | 2 x buffer_f32 |
phy_particle_data_flag_colour | The colour and alpha value (hexadecimal). | buffer_u32 |
phy_particle_data_flag_category | The particle category (as defined when you created the particle). | 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 flags = phy_particle_data_flag_position | phy_particle_data_flag_velocity;
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 索引的粒子的位置和速度,并将数据存储在多个变量中。