Changer la couleur d’un objet

Changer la couleur d’un objet

Ajouté le mardi 1 août 2017 par Seyjin
  • Auteur du tutorial: Seyjin
Préambule

Salut 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 objets

Voici 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 principe

Au 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 boucle

Faire ç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.

Télécharger l’exemple

Et là, un petit effet sympa : Super-Champy