Lorsque le joueur perd toute sa vie, je veux que tout l'écran du jeu passe en niveaux de gris, mais ne cesse pas de mettre à jour immédiatement. Je préférerais également qu'il se fane en niveaux de gris au lieu de perdre soudainement toute couleur. Tout ce que j'ai trouvé jusqu'à présent consiste soit à prendre une capture d'écran et à la rendre en niveaux de gris, soit à créer une texture spécifique en niveaux de gris. Existe-t-il un moyen de changer l'ensemble du terrain de jeu et tous les objets à l'intérieur en niveaux de gris sans itérer à travers tout?
20
MODIFIER
Après y avoir pensé, si vous ne mettez pas de teinte sur quoi que ce soit, mais en utilisant les couleurs originales des graphiques, vous pouvez simplement avoir (comme je le dis ci-dessous) toutes vos couleurs d'objets dessinés définies sur une variable de couleur déclarée définie sur blanc. (Color NoTint = Color.White;) puis Lerp que si le joueur vit est égal à zéro. Chaque objet dessiné avec la couleur NoTint changera lentement (selon votre taux d'interpolation mentionné ci-dessous) en ce que vous le lirez.
Cependant, si vous avez des teintes différentes sur différents objets, la boucle foreach ci-dessous peut fonctionner.
Fin de la modification
À ma connaissance limitée, j'essaierais ceci: Déclarez les couleurs que vous utilisez pour dessiner des objets spécifiques, ex. Couleur catColor = Color.Brown, puis ajoutez toutes les couleurs de vos jeux à une liste.
Vous pouvez même le faire pour les éléments que vous dessinez sans teinte et lerp le Color.White à un Color.Gray. (nommez quelque chose comme Color NoTint = Color.White et mettez-le sur tous vos objets dessinés)
Il y a probablement une meilleure façon, même si j'espère que cela aide!
la source