有没有办法以编程方式持续改变背景的颜色/颜色,例如,我希望开始的颜色是完全蓝色的(例如),然后每个Update()
调用我希望背景为慢慢变为绿色,然后是黄色,然后是蓝色......我希望颜色淡入下一个颜色而不是突然切换。
我是如何实现这一目标的?我知道有GraphicsDevice.Clear(Color.CornflowerBlue);
,但这显然不是我想要的。
答案 0 :(得分:1)
@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
的值。容易。
答案 1 :(得分: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并为色调设置动画。