Accueil | Personnaliser | Blog | Extras | Log In | Information
Manuel | D&D icons | GML Parser | Archives | Ville Iso
Username: Password:  
à propos | Caractéristiques | Directory | Bannières | Contacter

Création de jeux avec Game Maker
Création de jeux avec Game Maker

Types de Particules

Un système de particules a pour fonction de décrire la forme, la couleur, le déplacement, etc. d'un type particulier de particules. Il ne sera nécessaire de définir qu'une seule fois le type de particules dans votre jeu. Ceci fait, vous pourrez l'utiliser dans n'importe quel système de particules que comporte le jeu. Les types de particules présentent de nombreux paramètres vous permettant de modifier tous leurs aspects. En paramètrant les types de particules, vous serez à même de créer la plupart des effets possibles. Nous aborderons ultérieurement leur paramétrage.

Un certain nombre de routines sont à votre disposition afin que vous puissiez créer de nouveaux types de particules mais également les détruire :

part_type_create() Crée un nouveau type de particules. Cette commande retourne l'index du type de particule créé. Cet index devra ensuite être utilisé par tous les appels de fonctions (voir ci-dessous) afin de régler les propriétés du type de particules. Aussi, il sera souvent utile de sauvegarder cet index dans une variable globale.
part_type_destroy(ind) Détruit le type de particules d'index ind. Appelez cette fonction si vous ne souhaitez plus utiliser ce type de particule. Cela permettra d'économiser de l'espace mémoire.
part_type_exists(ind) Indique si le type de particules d'index ind existe.
part_type_clear(ind) Réinitialise le type de particules d'index ind à ses valeurs par défaut.

La forme d'une particule

Chaque particule posséde une forme (shape). Cette forme est représentée en base par un sprite. Vous pouvez utiliser un sprite quelconque pour la définition de vos particules mais sachez qu'il existe déjà 15 sprites réservés à cet usage. La forme d'une particule doit présenter une taille de 64x64 pixels et posséde des valeurs alpha déjà prédéfinies, de manière à ce que la particule s'accorde le plus harmonieusement possible avec l'arrière-plan. Les constantes suivantes concernent les formes :
  • pt_shape_pixel
  • pt_shape_disk
  • pt_shape_square
  • pt_shape_line
  • pt_shape_star
  • pt_shape_circle
  • pt_shape_ring
  • pt_shape_sphere
  • pt_shape_flare
  • pt_shape_spark
  • pt_shape_explosion
  • pt_shape_cloud
  • pt_shape_smoke
  • pt_shape_snow

Vous pouvez paramétrer la forme d'une particule en utilisant la fonction suivante :

part_type_shape(ind, shape) Détermine la forme d'un type de particule en utilisant l'une des constantes vues plus haut (la forme par défaut est pt_shape_pixel).

Vous pouvez également utiliser votre propre sprite afin de définir la forme de la particule. Si le sprite comporte plusieurs sous-images, vous devrez alors préciser ce qui doit être fait avec ces dernières. Vous pourrez choisir aléatoirement une image, animer le sprite, démarrer au début de l'animation ou à un endroit aléatoire, etc. Vous utiliserez la fonction suivante à cet effet.

part_type_sprite(ind, sprite, animat, stretch, random) Affecte votre propre sprite pour le type de particule d'index ind. Avec le paramètre animate, vous préciserez si le sprite doit être animé (1) ou pas (0). L'argument stretch (1 ou 0) indique si l'animation doit être étendue au delà de la durée de vie de la particule. Avec le paramètre random (1 ou 0), vous déterminerez si une sous-image aléatoire doit être choisie comme image de départ.

Une fois le sprite choisi pour le type de particule (soit votre sprite ou encore la forme par défaut shape), vous devrez indiquer la taille de celui-ci. Une taille de 1 correspond à la taille normale du sprite. Un type de particule peut être défini de telle manière que toutes les particules puissent présenter la même taille ou encore avoir des tailles différentes. Vous pouvez indiquer une plage comprenant plusieurs tailles. Dans ce dernier cas, il vous sera possible d'indiquer si la taille doit changer au delà de la durée de vie de la particule et si une certaine agitation dans la taille doit survenir afin de créer un effet de clignotement.

part_type_size(ind, size_min, size_max, size_incr, size_wiggle) Fixe les paramètres de taille pour le type de particule. Vous spécifierez la taille de départ minimale, la taille de départ maximale, si la taille doit augmenter à chaque step (utilisez un nombre négatif pour diminuer la taille) et la valeur d'agitation ou de tremblement (la taille par défaut est de 1 et par défaut, la taille ne change pas).
part_type_scale(ind, xscale, yscale) Détermine l'échelle horizontale et verticale. Ce facteur est multiplié par la taille. Ceci est en particulier très utile lorsque vous avez besoin d'utiliser des échelles différentes dans les directions x et y.

Les particules peuvent avoir aussi une orientation. De nouveau, l'orientation peut être la même pour toutes les particules ou peut être différente pour chacune d'entre elles, peut changer au delà de la durée de vie du sprite. Les angles indiquent des rotations exprimées en degrés dans le sens contraire des aiguilles d'une montre.

part_type_orientation(ind, ang_min, ang_max, ang_incr, ang_wiggle, ang_relative) Régle les propriétés de l'angle d'orientation pour le type de particule d'index ind. Vous indiquerez l'angle minimum, l'angle maximum, l'incrément à chaque step et la valeur d'agitation dans l'angle (par défaut, toutes ces valeurs sont à 0). Vous pourrez également indiquer si l'angle donné doit être relatif (1) ou absolu (0) par rapport à la direction actuelle du déplacement. Par exemple, en paramètrant toutes les valeurs à 0 mais en fixant ang_relative à 1, l'orientation de la particule suivra précisément le chemin de la particule.

Couleur et mélange

Les particules ont une couleur. Il y a différentes manières de préciser les couleurs que doivent avoir une particule. La façon la plus simple est d'indiquer une couleur unique. Vous pouvez également préciser deux ou trois couleurs avec lesquelles la couleur de la particule sera interpolée pendant toute sa durée de vie. Par exemple, la particule peut débuter blanche puis devenir de plus en plus noire et ce jusqu'à la fin de sa durée de vie. Une autre possibilité sera d'indiquer que la couleur de chacune des particules doit être différente et sélectionnée à partir d'une gamme de couleurs. Vous pouvez aussi fournir une plage de couleurs pour le rouge, le vert et le bleu ou encore une gamme de tonalité ou de saturation.

Par défaut, la couleur sera blanche. Habituellement, vous utiliserez un sprite possédant ses propres couleurs. Dans ce cas, aucune couleur ne devra alors être précisée.

part_type_color1(ind, color1) Indique une couleur unique à utiliser pour la particule.
part_type_color2(ind, color1, color2) Spécifie deux couleurs entre lesquelles la couleur de la particule sera interpolée.
part_type_color3(ind, color1, color2, color3) Identique à la commande précédente mais cette fois-ci, la couleur sera interpolée en utilisant trois couleurs, de la manière suivante : la première couleur au début, la deuxième couleur à mi-chemin et enfin la troisième couleur à la fin.
part_type_color_mix(ind, color1, color2) Avec cette fonction, vous indiquerez que la particule doit avoir une couleur qui sera un mélange aléatoire des deux couleurs indiquées. La couleur déterminée, elle demeurera invariable pendant toute la durée de vie de la particule.
part_type_color_rgb(ind, rmin, rmax, gmin, gmax, bmin, bmax) Peut être utilisé pour indiquer que chaque particule doit avoir une couleur fixe, déterminée à partir d'une gamme de couleurs. Vous indiquerez une plage de couleurs pour le composant rouge, vert et bleu de la couleur (chaque valeur allant de 0 à 255).
part_type_color_hsv(ind, hmin, hmax, smin, smax, vmin, vmax) Peut être utilisé pour indiquer que chaque particule doit avoir une couleur fixe mais déterminée à partir d'une plage de couleurs. Vous préciserez une plage de couleurs pour le composant de saturation et de tonalité de la couleur (chaque valeur allant de 0 à 255).

En plus de la couleur, vous indiquerez également une valeur de transparence alpha. Les formes de particules intégrées possédent déjà une certaine transparence alpha mais vous pourrez utiliser ces paramètres pour par exemple faire en sorte que la particule disparaisse à la fin de sa vie.

part_type_alpha1(ind, alpha1) Détermine un paramétre unique de transparence alpha (0-1) pour le type de particule.
part_type_alpha2(ind, alpha1, alpha2) Similaire à la commande précédente mais cette fois-ci, des valeurs de début et de fin seront à préciser. La valeur alpha sera alors déterminée par interpolation entre ces 2 valeurs.
part_type_alpha3(ind, alpha1, alpha2, alpha3) Cette fois-ci, trois valeurs seront à fournir avec lesquelles la transparence alpha sera déterminée par interpolation.

Habituellement, les couleurs des particules seront mélangées avec celles de l'arrière-plan de la même façon que pour les sprites. Mais il est aussi possible d'utiliser un mélange de type additif. Cela peut donner un effet très intéressant, en particulier pour les explosions.

part_type_blend(ind, additive) Indique si l'on doit utiliser le mélange additif (1) ou bien un mélange classique (0) pour le type de particule.

Vie et mort des particules

Les particules ont une durée de vie limitée, c'est ce que l'on appelle leur temps de vie. Après ce temps, elles disparaîtront. La durée de vie des particules se mesure en steps. Vous pourrez indiquer la durée de vie (ou une plage de durées de vie) pour chaque type de particule. Les particules peuvent créer de nouvelles particules de types différents. Il y a deux manières de procéder. Soit elles créent de nouvelles particules à chaque step , soit elles créent des particules à leur mort. Mais soyez prudent afin que le nombre total de particules ne devienne pas trop élevé !

part_type_life(ind, life_min, life_max) Détermine les limites de durée de vie pour le type de particule (les valeurs par défaut sont de 100.)
part_type_step(ind, step_number, step_type) Détermine le nombre et le type de particules devant être générés à chaque step pour le type de particules indiqué. Si vous employez une valeur négative, une particule sera générée à chaque step avec une chance égale à -1/nombre indiqué. Ainsi, une valeur de -5 fera qu'une seule particule sera générée en moyenne tous les 5 steps.
part_type_death(ind, death_number, death_type) Détermine le nombre et le type de particules devant être générées lorsqu'une particule du type indiqué vient à mourir. A nouveau, vous pouvez utiliser des nombres négatifs afin de créer une particule avec une certaine probabilité de génération. Veuillez noter que ces particules seront uniquement créées quand la particule meurt à la fin de sa vie, et non pas lorsqu'elle meurt à cause de l'action d'un destructeur (destroyer : voir ci-dessous)

Mouvement de particule

Les particules peuvent se mouvoir pendant toute leur durée de vie. Elles peuvent avoir une vitesse de départ (ou une plage de vitesses) et une direction : la vitesse et la direction pouvant changer en permanence. De même, la gravité peut être définie pour attirer les particules dans une direction donnée. Les fonctions suivantes sont destinées à cet usage :

part_type_speed(ind, speed_min, speed_max, speed_incr, speed_wiggle) Détermine les propriétés de vitesse pour le type de particule (par défaut, toutes les valeurs sont à 0). Vous indiquerez une vitesse minimale et maximale. Une valeur aléatoire déterminée entre ces deux valeurs sera choisie lorsque la particule sera créée. Vous pouvez indiquer un incrément de vitesse à utiliser à chaque step. Utilisez un nombre négatif pour ralentir la particule (la vitesse ne devra jamais descendre en dessous de 0). Enfin, vous indiquerez une certaine valeur d'agitation de la vitesse.
part_type_direction(ind, dir_min, dir_max, dir_incr, dir_wiggle) Détermine les propriétés de direction pour le type de particule (par défaut, toutes les valeurs sont à 0). A nouveau, vous pouvez spécifier une plage de directions (exprimées en degrés dans le sens contraire des aiguilles d'une montre; 0 indiquant un déplacement vers la droite). Par exemple, pour que la particule se déplace dans une direction aléatoire, choisissez les valeurs 0 et 360. Vous pouvez spécifier un incrément pour la direction à chaque step et une valeur d'agitation.
part_type_gravity(ind, grav_amount, grav_dir) Détermine les propriétés de gravité pour le type de particule (par défaut, il n'y a pas de gravité). Vous indiquerez la quantité de gravité devant être ajoutée à chaque step et la direction. Par exemple, utilisez la valeur 270 pour obtenir une direction vers le bas.












<< Traduction française par Philippe Ragni - (2005) >>

Search Search


Alternative versions Alternative versions

You can also read this manual on one single long page (± 1.5 mb)

Also available in: Dutch English German

ZIP Download helpfile

Annonces Annonces

GameMaker Manual