PréambuleSalut salut. La première chose à laquelle on pense quand on parle de changer la couleur d’un objet, c’est d’utiliser le coefficient RGB. C’est pas mal mais très limité. Un truc qui serait super bien c’est de pouvoir définir chaque teinte comme on veut.
Dans ce court tutoriel, on va voir qu’il est très simple de faire ça à l’aide d’une petite boucle.
Les objetsVoici notre personage, Champy :
(créé à partir d’un sprite fait par Kloug). Il comporte 9 couleurs et a une valeur modifiable "C_Set" à 0.
Et ça c’est notre Palette :
. La ligne 0 a les mêmes couleurs que Champy. Puis sur les suivante on défini les couleurs qui viendront les remplacer. En gros, chaque ligne correspond à un set de couleur pour Champy.
Le principeAu début, le set de couleurs de Champy est la ligne 0. Quand on cliquera dessus on veut que chaque couleur soit remplacée par celle d’en dessous. Et ainsi de suite.
Par exemple, pour changer la couleur 3 de la ligne 0 par la couleur 3 de la ligne 1, on utilise
Remplacer la couleur (Champy, Anination ► Remplacer la couleur) :
RGBAt( "Palette", 3, 0 ) (Palette, Extraire RVB en…) par
RGBAt( "Palette", 3, 1 ).
La boucleFaire ça pour les 9 couleurs et avec les 4 sets ça fait pas mal de lignes d’actions à faire, alors à la place on va utiliser une boucle.
C’est là que la valeur C_Set va nous servir, ça donne
RGBAt( "Palette", LoopIndex("Color"), C_Set( "Champy" ) ) et
RGBAt( "Palette", LoopIndex("Color"), (C_Set( "Champy" ) + 1 ) mod 4 ) (modulo n permet d’avoir le reste d’une division d’un nombre par n, ici 4 modulo 4 donne 0, comme ça après le set 3 on reviens à 0).
On n’oublie pas, après la boucle de fixer la valeur C_Set à
( C_Set( "Champy" ) + 1 ) mod 4.
Et là, un petit effet sympa : Super-Champy
https://youtu.be/i_wy8fMjDRo