Dans les conditions relatives à l’objet Sprite-> Effets, on ne peut détecter que le mode d’affichage. Rien sur la couleur modifiée.
Un peu dommage, car cela permettrait d’enchainer des évènements en fonction des changements de couleur d’un sprite, sans avoir à manipuler une variable exprès pour ça (et donc, à se souvenir du nom de la variable d’un évènement externe à l’autre).
Ex : Sprite en vert = tout va bien, Sprite en orange = on fait clignoter des alarmes, Sprite en rouge = on envoie la sirène et consort
Plus simplement, ne peut-on pas appliquer le principe “pour chaque action, il y a une condition correspondante” ?
Oui mais le truc c’est que pour tester une couleur, il y a deux possibilité :
-Faire une condition qui vérifie si la couleur est exactement égale à la couleur testée.
-Tester les 3 composantes RVB ( Rouge, vert, bleu ), c’est à dire créer 3 conditions pour tester séparément les composantes.
La deuxième solution est assez lourde au sens où ça va vite encombrer les listes de conditions. La première est à contrario assez restrictive.
Dans ce cas, j’ai choisi de laisser à l’utilisateur le soin de gérer ça si il le souhaite avec des variables.
Pour les actions qui agissent sur une donnée assez “brute”, genre la position X/Y, c’est déjà ce qui est mis en place.
Pour les actions qui agissent sur des données plus évoluées, genre les couleurs, ou qui sont moins utilisées, je les considère alors plus comme des actions qu’on va lancer dans des cas plus précis, et je laisse alors le soin à l’utilisateur de garder en mémoire avec une variable ce qu’il fait correspondre à l’action.
( Là où il manque surement quelque chose, c’est qu’il n’y a pas d’expression pour récupérer la composante R/V ou B de la couleur globale d’un sprite ).
Pourquoi pas, mais au final, l’affichage du sprite dans une couleur ou une autre n’est que le reflet de l’état “en alarme ou pas”. De même que la composante rouge de la couleur d’une tête n’est que le reflet de l’intensité de la colère.
Je suis d’accord qu’une condition accélérait les choses ( encore faut il résoudre le problème posé au départ ), mais au final, je pense que l’affichage d’une couleur est quand même dissocié de la logique du jeu, et que l’absence de condition force l’utilisateur à définir soi même, avec une variable ou un autre système, ce qu’il fait correspondre à la couleur.
Je suis d’accord avec 4ian, la condition, en plus d’être difficile à adapter dans GD, ne servirait pas a grand chose et il y a surement moyen de contourner si tu veux vraiment récupérer la couleur d’un objet.