如何在XNA中改变色调?

Epi*_*dex 4 c# xna colors argb

我有一种颜色的课Microsoft.Xna.Framework.Color.如何更改其色调(或获得略有不同色调的新颜色).我应该将其转换为System.Drawing.Color,然后以某种方式改变它并转换回来?我无法在任何地方找到任何有用的信息.

编辑 示例:我有红色R:255,G:0,B:0.现在我想要稍微更橙色.然后,如果我得到这种颜色并再次转换它,我会得到更多的橙色,然后经过一些转换,我会去黄色,绿色等.我不知道每种颜色的ARGB的确切值,我不知道需要它们.我只需要改变颜色的色调(例如10度).

Oma*_*mar 6

您应该使用A R G B属性并更改值以获得不同的nyansers.

例如:

Color color = new Color(0,0,0);
//Then you can change the argb properties:
color.A = 10;
color.R = 15;
color.G = 9;
color.B = 25;
Run Code Online (Sandbox Code Playgroud)

如果我明白你需要这样的东西:

public static class Utilities
{
    public static void Increase(this Color color, int value)
    {
        if(color.R >= color.G && color.R >= color.B)
           color.R += value;
        else if(color.G >= color.R && color.G >= color.B)
           color.G += value;
        else
           color.B += value;
    }

    public static void Decrease(this Color color, int value)
    {
        if(color.R <= color.G && color.R <= color.B)
           color.R -= value;
        else if(color.G <= color.R && color.G <= color.B)
           color.G -= value;
        else
           color.B -= value;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后:

Color myColor = new Color(10,0,0);
myColor.Increase(10);
//or
myColor.Decrease(10);
Run Code Online (Sandbox Code Playgroud)