Wenn der Spieler sein ganzes Leben verliert, möchte ich, dass der gesamte Spielbildschirm in Graustufen angezeigt wird, die Aktualisierung jedoch nicht sofort beendet wird. Ich würde es auch vorziehen, wenn es in Graustufen ausgeblendet wird, anstatt plötzlich alle Farben zu verlieren. Alles, was ich bisher gefunden habe, besteht entweder darin, einen Screenshot zu machen und ihn in Graustufen darzustellen, oder eine bestimmte Textur in Graustufen. Gibt es eine Möglichkeit, das gesamte Spielfeld und alle Objekte in Graustufen zu ändern, ohne alles durchlaufen zu müssen?
20
BEARBEITEN
Nachdem Sie darüber nachgedacht haben, können Sie, wenn Sie nichts einfärben, aber die Originalfarben der Grafik verwenden, alle Farben der gezeichneten Objekte auf eine deklarierte Farbvariable setzen, die auf Weiß gesetzt ist (siehe unten). (Color NoTint = Color.White;) und dann Lerp, dass, wenn der Spieler lebt, gleich Null ist. Jedes mit der NoTint-Farbe gezeichnete Objekt ändert sich langsam (entsprechend der unten angegebenen Interpolationsrate) in das Objekt, in das Sie es einfügen.
Wenn Sie jedoch unterschiedliche Farbtöne für verschiedene Objekte haben, funktioniert die folgende foreach-Schleife möglicherweise .
Bearbeiten beenden
In meinem begrenzten Wissen würde ich Folgendes versuchen: Deklarieren Sie die Farben, die Sie beim Zeichnen bestimmter Objekte verwenden, z. Color catColor = Color.Brown, und fügen Sie dann alle Farben Ihrer Spiele zu einer Liste hinzu.
Sie können dies sogar für Elemente tun, die Sie ohne Farbton zeichnen, und die Color.White auf Color.Gray setzen. (Nennen Sie das etwas wie Color NoTint = Color.White und setzen Sie das auf alle Ihre gezeichneten Objekte)
Es gibt wahrscheinlich einen besseren Weg, auch wenn ich hoffe, dass dies hilft!
quelle