有没有办法以编程方式不断改变背景的颜色/颜色,例如,我希望开始颜色完全蓝色(例如),然后每个Update()
调用我想要背景慢慢地变成绿色,然后是黄色,然后是蓝色等......我希望颜色淡入到下一种颜色,而不是突然切换。XNA以编程方式更改背景颜色
任何想法,我可以如何实现这一点?我知道有GraphicsDevice.Clear(Color.CornflowerBlue);
但这显然不是我想要的。
任何帮助,高度赞赏。
有没有办法以编程方式不断改变背景的颜色/颜色,例如,我希望开始颜色完全蓝色(例如),然后每个Update()
调用我想要背景慢慢地变成绿色,然后是黄色,然后是蓝色等......我希望颜色淡入到下一种颜色,而不是突然切换。XNA以编程方式更改背景颜色
任何想法,我可以如何实现这一点?我知道有GraphicsDevice.Clear(Color.CornflowerBlue);
但这显然不是我想要的。
任何帮助,高度赞赏。
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和动画的色调。
@BrianRasmussen是完全正确的。您可以改变每一帧的清晰颜色。使用Color
构造函数中的一个,该构造函数使用数字值而不是颜色枚举值。
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
你的价值观。简单。
为什么这显然不是你想要的?您可以清除每个绘图上的背景,使其颜色略有不同。 Color结构允许自定义颜色,因此您可以通过这种方式轻松地从一种颜色创建淡入淡出效果。 – 2013-03-27 23:24:26