XNA以编程方式更改背景颜色

时间:2013-03-27 23:11:15

标签: colors xna sprite

有没有办法以编程方式持续改变背景的颜色/颜色,例如,我希望开始的颜色是完全蓝色的(例如),然后每个Update()调用我希望背景为慢慢变为绿色,然后是黄色,然后是蓝色......我希望颜色淡入下一个颜色而不是突然切换。

我是如何实现这一目标的?我知道有GraphicsDevice.Clear(Color.CornflowerBlue);,但这显然不是我想要的。

2 个答案:

答案 0 :(得分: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的值。容易。

答案 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并为色调设置动画。