0

背景の色/色をプログラムで常に変更する方法はありますか。たとえば、最初の色を完全に青にしたい場合(たとえば)、Update()呼び出しごとに背景をゆっくりと緑に変更し、次に黄色に変更します。次に青など.... 色が突然切り替わるのではなく、次の色にフェードインしたい.

これを達成する方法はありますか?あることは知っていますGraphicsDevice.Clear(Color.CornflowerBlue);が、それは明らかに私が望んでいるものではありません。

4

2 に答える 2

1

@BrianRasmussenは完全に正しいです。フレームごとにクリアカラーを変えることができます。Color色の列挙値の代わりに数値を取るコンストラクターの 1 つを使用します。

これです、

GraphicsDevice.Clear(new Color(byte r, byte g, byte b));

またはこれ

GraphicsDevice.Clear(new Color(float r, float g, float b, float a));

rそして、各フレームで、 、g、およびの値を更新しますb。簡単。

于 2013-03-28T00:25:21.643 に答える
1

GraphicsDevice.Clearまさにあなたが望むものです。

それでも必要なのは、色を補間する方法だけです:

var red = Color.Red;
var green = Color.Green;

// Gives you a color at half the distance between red and green
var color = Color.Lerp(red, green, 0.5f);

カラー パレット全体を調べたい場合は、色をHSL または HSVに変換して色相をアニメーション化できます。

于 2013-03-28T00:26:58.680 に答える