2013-03-27 92 views
0

有沒有辦法以編程方式不斷改變背景的顏色/顏色,例如,我希望開始顏色完全藍色(例如),然後每個Update()調用我想要背景慢慢地變成綠色,然後是黃色,然後是藍色等......我希望顏色淡入到下一種顏色,而不是突然切換。XNA以編程方式更改背景顏色

任何想法,我可以如何實現這一點?我知道有GraphicsDevice.Clear(Color.CornflowerBlue);但這顯然不是我想要的。

任何幫助,高度讚賞。

+3

爲什麼這顯然不是你想要的?您可以清除每個繪圖上的背景,使其顏色略有不同。 Color結構允許自定義顏色,因此您可以通過這種方式輕鬆地從一種顏色創建淡入淡出效果。 – 2013-03-27 23:24:26

回答

1

GraphicsDevice.Clear正是你想要的。

所有你仍然需要是interpolating between colors方式:

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 or HSV和動畫的色調。

1

@BrianRasmussen是完全正確的。您可以改變每一幀的清晰顏色。使用Color構造函數中的一個,該構造函數使用數字值而不是顏色枚舉值。

This one,

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

Or this one

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

,每幀,更新的rgb你的價值觀。簡單。

相關問題