2013-03-27 95 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你的价值观。简单。

相关问题