physics_particle_create(flags, x, y, xv, yv, col, alpha, category)
| Argument | La description |
|---|---|
| flags | Les drapeaux à définir sur la particule. |
| x | La position x pour créer la particule à. |
| y | La position y pour créer la particule à. |
| xv | La vitesse horizontale initiale. |
| yv | La vitesse verticale initiale. |
| col | La couleur de base à utiliser pour la particule. |
| alpha | L'alpha de base à utiliser pour la particule. |
| category | La catégorie définie par l'utilisateur à laquelle la particule appartient. |
Retours: Real
Avec cette fonction, vous pouvez créer une seule particule n'importe où dans votre salle de jeux, en définissant certains drapeaux et propriétés. Les "flags" sont la valeur de retour d'une combinaison des constantes suivantes:
| Constant | La description |
|---|---|
| phy_particle_flag_water | Les propriétés par défaut pour une particule de corps mou. |
| phy_particle_flag_zombie | Une particule de zombie est celle qui sera détruite après un seul pas avec tous les autres marqués de cette manière. |
| phy_particle_flag_wall | Cela définit la particule comme statique, la créant essentiellement comme un objet immobile dans la simulation physique, car ils resteront dans une position fixe, peu importe ce qui entre en collision avec eux. Vous devriez utiliser ce drapeau plutôt que de définir la densité à 0. |
| phy_particle_flag_spring | Les particules de printemps produisent l'effet d'être attachées l'une à l'autre, comme si elles étaient reliées par un ressort. Les particules créées avec ce drapeau sont "connectées" par paires, chaque particule étant connectée à celle qui était la plus proche au moment de la création. Une fois appariées, les particules ne changent pas de «partenaires», et plus une force externe les tire l'une de l'autre, plus grande est la puissance avec laquelle elles vont entrer en collision lorsque cette force externe est retirée. Notez que, quelle que soit la distance entre les particules appariées, la connexion entre elles ne s'alignera pas. |
| phy_particle_flag_elastic | Les particules élastiques se déforment et peuvent également rebondir lorsqu'elles entrent en collision avec d'autres corps rigides dans la simulation physique. |
| phy_particle_flag_viscous | Une particule visqueuse est celle qui présente "collant" ou "collant", comme l'huile. Les particules visqueuses s'agglomèrent et se collent davantage. |
| phy_particle_flag_powder | Les particules de poudre produisent un effet de diffusion tel que vous pourriez le voir avec du sable ou de la poussière. |
| phy_particle_flag_tensile | Les particules de traction sont utilisées pour produire l'effet de la tension de surface, ou la courbure tendue sur la surface d'un corps de liquide. Ils pourraient être utilisés, par exemple, pour créer la tension de surface que vous verriez sur une goutte d'eau. Une fois la tension rompue, les particules rebondissent comme si elles étaient élastiques, mais elles continuaient également à s'attirer l'une l'autre. En conséquence, les particules ont tendance à former des grappes lorsqu'elles rebondissent. |
| phy_particle_flag_colourmixing | Les particules qui mélangent les couleurs prennent une partie de la couleur des autres particules avec lesquelles elles entrent en collision. Notez que si une seule des deux particules en collision est une couleur de mélange, l'autre particule conserve sa couleur de pré-collision. |
Ces drapeaux utilisent le masquage de bits pour créer une valeur de sortie finale qui est ensuite vérifiée pour définir les différentes propriétés de base de la particule (la propriété de base étant toujours celle de phy_particle_flag_water ). Par exemple, si vous voulez simuler un liquide visqueux avec une tension de surface, utilisez le bitwise ou "|" pour marquer les bits appropriés comme indiqué dans l'exemple ci-dessous. De cette manière, vous pouvez définir différentes propriétés (autres que les propriétés globales) pour chaque particule créée.
Outre les indicateurs, vous pouvez également définir la position dans la pièce pour créer la particule à, la vélocité horizontale et verticale initiale, la couleur initiale et alpha, ainsi que la catégorie d' utilisateur. La couleur et les valeurs alpha ne sont utilisées que pour dessiner la particule en utilisant la fonction physics_particle_draw(), mais la valeur de catégorie est utilisée dans plusieurs autres fonctions. Cette valeur est une valeur entière arbitraire que vous attribuez à chaque particule que vous souhaitez avoir des propriétés similaires, et elle peut être utilisée pour définir des indicateurs plus tard pour cette catégorie spécifique ainsi qu'un certain nombre d'autres choses. Par exemple, si vous avez défini une particule "eau" et une "huile", vous donneriez à toutes les particules marquées comme "eau" la catégorie d'utilisateur 1 et toutes ces particules créées comme "huile" la catégorie d'utilisateur 2, permettant Vous pouvez ensuite cibler une seule catégorie pour modifier ses indicateurs ou obtenir des données spécifiques.
NOTE: Vous pouvez utiliser n'importe quelle valeur entière pour la catégorie sauf 0 qui est réservée par la simulation et est utilisée pour sélectionner toutes les catégories dans d'autres fonctions (comme pour le dessin).
La fonction renvoie une valeur d'index unique (ou ID) pour la particule qui peut être stockée dans une variable à utiliser dans d'autres fonctions qui référencent directement la particule.
var flags = phy_particle_flag_water |
phy_particle_flag_viscous | phy_particle_flag_tensile;
var x_vel = lengthdir_x(5, image_angle);
var y_vel = lengthdir_y(5, image_angle);
var p = physics_particle_create(flags, x, y, x_vel, y_vel, c_white,
1, 1)
Le code ci-dessus créera des variables pour définir le type de particule et sa vélocité initiale, puis les utiliser pour créer une particule à la position x / y des instances.