Pour les choses complexes dans GameMaker Studio 2 vous devriez normalement avoir un objet et créer des instances de cet objet autour de la pièce. Cependant, pour les effets graphiques, cela peut être coûteux car chaque instance a un "coût" de traitement dû aux variables qu'elle contient et aux codes qu'elle a dans les différents événements. Vous pouvez réduire ce coût en choisissant des couches de tilemap et des couches d'actifs pour dessiner vos besoins graphiques, mais ceux-ci sont généralement statiques et ne peuvent pas être modifiés ou déplacés. Cependant, il existe une autre option pour dessiner des effets graphiques rapides mais polyvalents dans vos jeux, et c'est d'utiliser des particules.
Les particules sont des ressources graphiques qui ont certaines propriétés définies dans un système de particules. Ces propriétés ne peuvent pas être manipulées directement pour des particules individuelles, mais sont modifiées à l'aide du code utilisé pour définir la particule individuelle et le système auquel elle appartient. Ils sont très utiles pour créer de beaux effets flashy (ou subtils et discrets!) Comme des explosions, des décalcomanies, de la pluie, de la neige, des étoiles et des débris dans un jeu sans les surcharges du processeur.
La configuration de base d'un système de particules suit trois étapes, la troisième étape étant facultative en fonction de la manière dont vous souhaitez créer vos effets de particules dans la pièce:
- Créer un système de particules: Le système de particules est comme un conteneur que nous utiliserons pour maintenir nos différents types de particules prêts à l'emploi. Nous utilisons le code pour définir une série d'aspects visuels et de comportements pour nos particules, puis nous les plaçons dans le «conteneur» afin que nous puissions les retirer et les utiliser quand et où nous en aurons besoin plus tard.
- Créer des types de particules: Les types de particules sont l'effet graphique lui-même. Vous pouvez avoir beaucoup de types différents, chacun avec leur propre gamme de couleurs, alphas, tailles et mouvements, mais il est important de noter que vous n'avez pas de contrôle sur les particules individuelles. Vous définissez une série de paramètres et la particule sera créée pour avoir une répartition aléatoire des comportements choisis parmi eux.
- Créer des émetteurs: Les émetteurs sont une option qui peut être utilisée pour éclater ou diffuser des particules à l'intérieur de limites très clairement définies. Ils sont facultatifs car vous pouvez créer des particules à partir de n'importe quelle instance à l'aide du part_particles_create et part_particles_create_colour fonctions mais elles ne sont pas toujours adaptées à chaque situation.
Bien que les particules soient un excellent outil pour créer des effets, elles comportent certaines restrictions et bonnes pratiques à suivre à moins que vous ne souhaitiez que votre jeu s'arrête et finisse par se bloquer:
- Les systèmes de particules, les particules et les émetteurs occupent la mémoire et, en tant que tels, vous devez faire très attention à leur utilisation car il est très facile de provoquer une fuite de mémoire qui ralentira et finira par provoquer le crash de votre partie. Une façon de faire face à cela est d'avoir un système global avec tout ce qui est défini au début du jeu et retiré à la fin, mais si vous voulez un système dynamique, alors chaque particule et émetteur (et le système lui-même) devrait être détruit ce n'est pas nécessaire.
- Les particules peuvent être rapides et légères sur le processeur, mais elles nécessitent encore un traitement et vous ne devriez donc pas en avoir 40 000 à la fois. Limitez-les à ceux qui sont nécessaires pour obtenir un effet spécifique et pas plus.
- Si vous définissez votre propre sprite de particule au lieu d'utiliser l'un des 14 sprites inclus, vous devriez essayer de les garder aussi petits que possible pour obtenir l'effet dont vous avez besoin.
- Les particules n'interagissent pas avec quoi que ce soit. Si vous avez besoin d'interagir avec l'utilisateur ou avec d'autres instances de votre jeu, vous devriez plutôt utiliser des instances car les particules sont purement graphiques.
- Même s'il n'y a pas de limite technique à la quantité de systèmes, d'émetteurs et de particules que vous pouvez créer dans un jeu, vous devriez essayer de limiter le tout au nombre minimum possible pour que l'utilisation de la mémoire soit aussi faible que possible.
- Sur les appareils mobiles, faites attention aux particules car leur dessin peut être lent si elles couvrent une grande partie de l'écran (la surimpression sur les appareils mobiles est l'une des principales causes de ralentissement).
- Avec HTML5, il n'y a pas de mélange additif et, à moins que vous n'ayez activé WebGL, vous ne pouvez pas non plus mélanger les couleurs.
Les sections suivantes couvrent tous les aspects du codage de vos propres systèmes de particules:
La façon la plus simple de créer des particules dans votre jeu avec GameMaker Studio 2 est d'utiliser le mécanisme des effets intégrés. Les effets sont créés à l'aide d'un système de particules interne qui est une méthode très rapide pour dessiner des effets graphiques seulement et vous n'avez donc pas à vous soucier de tous les détails (comme la gestion de la mémoire) lorsque vous utilisez ces fonctions. Vous spécifiez simplement le type d'effet, la position où il doit être créé, la taille que vous voulez qu'il soit et enfin, sa couleur puis laissez GameMaker Studio 2 faire tout le travail.
Les fonctions suivantes existent pour créer les effets de particules intégrés:
Il existe également un certain nombre de constantes différentes pour chacun des effets prédéfinis que les fonctions ci-dessus peuvent utiliser:
Même si ces effets sont limités en termes de portée et de personnalisation, ils peuvent toujours être utilisés pour créer des effets simples et géniaux avec très peu d'effort. Par exemple en créant une petite bouffée de fumée grise sous un missile en mouvement à chaque pas, une piste de fumée assez convaincante est créée, donc même quand vous êtes un expert en particules, il est important de vous rappeler que ces effets existent temps.
Avant de pouvoir créer des particules, vous devez créer un système de particules. Ceci est un "conteneur" où vous placez vos particules et émetteurs (si vous en avez besoin) prêts à l'emploi, et vous pouvez mettre autant ou aussi peu de particules dans un système que vous le jugez nécessaire, et vous pouvez avoir autant de systèmes que vous pensez nécessaire aussi. Cependant, il est toujours préférable de garder ce nombre aussi petit que possible en raison du fait que chaque système, émetteur et particule prend de la mémoire et en avoir trop peut ralentir votre jeu ou causer des problèmes. Par exemple, si vous souhaitez que certains effets apparaissent au-dessus des occurrences et que d'autres effets apparaissent sous les instances, créez deux systèmes et définissez leurs profondeurs pour obtenir l'effet souhaité, toutes les particules ajoutées à chaque système étant dessinées en profondeur. vous spécifiez
Comme un système de particules est une ressource créée dynamiquement, vous devez le créer et stocker l'index renvoyé dans une variable pour référencer le système dans tous les autres appels de fonction, et il est très important de détruire également le système lorsqu'il n'est plus nécessaire ou Sinon, vous aurez une fuite de mémoire qui va ralentir et éventuellement planter votre jeu. Il convient également de noter que les systèmes de particules continueront à exister une fois qu'ils auront été créés, même si l'index n'est plus stocké. Ainsi, même si vous changez de pièce ou redémarrez le jeu, les systèmes et les particules resteront visibles dans toutes les autres pièces, vous feriez mieux de les détruire une fois que vous n'en aurez plus besoin.
Les fonctions de base pour la mise en place d'un système de particules sont énumérées ci-dessous:
Une fois que les particules sont ajoutées à un système de particules puis éclatées ou diffusées dans la pièce, elles sont automatiquement mises à jour automatiquement à chaque étape et dessinées en fonction des paramètres que vous avez utilisés pour les définir. Cependant, il peut parfois être nécessaire de contrôler quand et comment le système est mis à jour ainsi que la façon dont le système doit être dessiné, et pour cela GameMaker Studio 2 fournit les fonctions suivantes:
Normalement, vous utiliseriez des émetteurs de particules pour faire éclater ou diffuser des particules à partir d'une zone, mais dans de nombreux cas, ils ne sont pas nécessaires et il est préférable de créer directement les particules en utilisant les fonctions suivantes:
Les particules sont les effets graphiques qui peuvent être créés par l'utilisation de systèmes de particules dans un jeu. Les particules que vous définissez en utilisant ces fonctions peuvent être utilisées dans n'importe quel système que vous créez et la procédure normale consiste à définir toutes vos particules une fois au début d'une partie et à stocker leurs valeurs d'index dans des variables globales. Ces variables globales peuvent ensuite être utilisées pour éclater, émettre ou créer des particules à tout moment du jeu. Vous pouvez également créer, utiliser et détruire des particules si nécessaire si la mémoire est un problème ou si vous souhaitez de nombreux types différents, mais seulement à des points spécifiques de votre jeu. Quoi que vous choisissiez, les particules sont une ressource très polyvalente!
Les particules doivent être créées et leur index doit être stocké dans une variable afin que toutes les autres routines de particules puissent y accéder correctement. Les fonctions suivantes sont utilisées pour créer, vérifier, effacer et détruire les types de particules:
Une fois que vous avez créé votre type de particule, vous devez lui donner une forme. Cela peut être l'une des 14 formes intégrées qui sont des sprites de 64x64 pixels avec alpha-blending, ou vous pouvez utiliser vos propres sprites qui peuvent être animés, statiques ou utiliser des sous-images aléatoires. Les fonctions suivantes définissent la forme de base visuelle de chaque particule:
L'image suivante montre les 14 types de particules intégrés que vous pouvez choisir:
Une fois que vous avez choisi l'image-objet pour le type de particule (soit une forme par défaut ou la vôtre), vous pouvez indiquer la taille et l'échelle de celle-ci. La taille peut être spécifiée en tant que plage et toutes les particules seront créées avec une taille choisie dans la plage donnée. L'échelle est la valeur "de base" pour l'échelle de l'axe des x et des y de la particule avant que toutes les variations de taille ne soient ajoutées et les fonctions suivantes sont utilisées pour contrôler ces valeurs:
Les particules peuvent également avoir une orientation et un mouvement. Comme avec la plupart des fonctions de particules, la vitesse, la direction et l'orientation sont résolues comme une valeur aléatoire qui est sélectionnée dans une plage donnée et peut être définie avec les fonctions suivantes:
Une fois que vous avez trié le style et le mouvement de vos particules, vous pouvez définir leur couleur et leurs valeurs alpha, qui peuvent toutes deux être définies comme une valeur absolue pendant toute la durée de vie de la particule ou comme une échelle de valeurs l'un à l'autre progressivement. Notez qu'il existe aussi une fonction spéciale qui vous permet de définir le mélange des particules et de leur environnement, et cela peut être normal ou additif et donne des effets fantastiques. Les fonctions qui régissent la couleur, l'alpha et le blending sont:
- part_type_colour_mix
- part_type_colour_rgb
- part_type_colour_hsv
- part_type_colour1
- part_type_colour2
- part_type_colour3
- part_type_alpha1
- part_type_alpha2
- part_type_alpha3
- part_type_blend
Les particules existent à l'écran pour une durée limitée et c'est ce qu'on appelle leur "durée de vie". Les durées de vie des particules sont mesurées par étapes et (comme les fonctions précédentes), elles sont exprimées comme une plage de valeurs à partir de laquelle la particule aura une durée de vie spécifique. Il y a aussi quelques fonctions intéressantes qui peuvent être utilisées pour que les particules génèrent d' autres particules, soit à chaque étape, soit lorsqu'elles "meurent" (ie: sont retirées de l'écran), mais attention à ces fonctions car elles peuvent créer rapidement des milliers de particules et planter le jeu! Les fonctions qui définissent la durée de vie et le pas ou la mort sont les suivantes:
Il est à noter que la création de particules par le biais du code peut souvent être un processus laborieux et fastidieux en raison du grand nombre de paramètres qui peuvent être modifiés et modifiés. Pour cette raison, il est recommandé de chercher autour de vous et d'obtenir un certain type de concepteur de particules (ou en faire un vous-même!) Pour éliminer la corvée de la création de particules.
Les émetteurs sont utilisés par GameMaker Studio 2 pour émettre des particules sur une zone de l'écran qui peut avoir différentes formes et distributions. Ils peuvent aussi créer un flux continu de particules ou éclater un certain nombre de particules en même temps, en fonction de la manière dont les fonctions sont utilisées.
Comme un émetteur de particules est une ressource créée dynamiquement, vous devez le créer et stocker l'index renvoyé dans une variable pour référencer l'émetteur dans tous les autres appels de fonction, et il est très important de détruire l'émetteur lorsqu'il n'est plus nécessaire ou Sinon, vous aurez une fuite de mémoire qui va ralentir et éventuellement planter votre jeu. Il convient également de noter que les émetteurs de particules continueront à exister une fois qu'ils auront été créés, même si l'index n'est plus stocké. Ainsi, même si vous changez de pièce ou redémarrez le jeu, les systèmes et les particules resteront visibles dans toutes les autres pièces, vous feriez mieux de les détruire une fois que vous n'en aurez plus besoin.
Les fonctions suivantes sont disponibles pour définir les émetteurs et les laisser créer des particules. Notez que chacun d'entre eux obtient l'index du système de particules auquel il appartient en tant que premier argument.