physics_particle_get_data(buffer, flags)
| Argument | La description |
|---|---|
| buffer | Le tampon (créé précédemment) à utiliser pour stocker les données. |
| flags | Les indicateurs à utiliser pour extraire des données sur des types de particules spécifiques. |
Renvoie: les données du tampon
Cette fonction retourne diverses informations sur chaque particule dans la simulation de physique en utilisant les indicateurs donnés vérifiés. Le tampon utilisé doit avoir été créé précédemment en utilisant la fonction buffer_create(), et devrait être de type «grow», la taille étant approximativement celle des données de retour attendues. Les indicateurs sont définis en utilisant l'une des constantes données ci-dessous, et vous utiliserez le bitwise ou "|" pour créer une seule valeur de drapeau pour obtenir l'information désirée.
| Constant | La description | Type de données |
|---|---|---|
| phy_particle_data_flag_typeflags | La valeur des drapeaux pour la particule. | buffer_u32 |
| phy_particle_data_flag_position | La position x et y de la particule. | 2 x buffer_f32 |
| phy_particle_data_flag_velocity | La vitesse horizontale et verticale. | 2 x buffer_f32 |
| phy_particle_data_flag_colour | La couleur et la valeur alpha (hexadécimal). | buffer_f32 |
| phy_particle_data_flag_category | La catégorie de particule (telle que définie lorsque vous avez créé la particule ou le groupe auquel elle appartient). | buffer_f32 |
var count = physics_particle_count();
var flags = phy_particle_data_flag_position |
phy_particle_data_flag_colour;
if (count > 0)
{
var buffer = buffer_create(count * 12,
buffer_grow, 4);
physics_particle_get_data(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);
}
Le code ci-dessus obtient le nombre de particules et crée une variable avec les indicateurs de données à vérifier, puis vérifie s'il y a des particules dans la pièce. Si c'est le cas, un tampon est créé, puis rempli avec les données de particules, qui sont vérifiées et utilisées pour dessiner un sprite à la position de la particule.