作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 RBGA 值填充我的枚举。例如:
enum Colors
{
COLOR_BLACK,
COLOR_WHITE,
COLOR_RED,
COLOR_GREEN,
COLOR_DARKBLUE,
};
Colors[COLOR_BLACK] = CColor(0.0f, 0.0f, 0.0f, 1.0f);
我的问题是:我必须以哪种方式声明 CColor 才能用 4 个 float 填充我的枚举?
最佳答案
你需要一组 CColor
来做到这一点:
struct CColor
{
CColor( float r, float g, float b, float a )
: red(r), green(g), blue(b), alpha(a) {}
float red, green, blue, alpha;
};
enum Colors
{
COLOR_BLACK,
COLOR_WHITE,
COLOR_RED,
COLOR_GREEN,
COLOR_DARKBLUE,
};
CColor mycolors[] = {
CColor(0.0f, 0.0f, 0.0f, 1.0f), // COLOR_BLACK
CColor(1.0f, 1.0f, 1.0f, 1.0f), // COLOR_WHITE
CColor(1.0f, 0.0f, 0.0f, 1.0f), // COLOR_RED
CColor(0.0f, 1.0f, 0.0f, 1.0f), // COLOR_GREEN
CColor(0.0f, 0.0f, 1.0f, 1.0f) // COLOR_DARKBLUE
};
CColor GetColor( Colors col ) { return mycolors[col]; }
CColor red = GetColor(COLOR_RED);
这是有效的,因为枚举有升序数字,从 0
开始。
关于c++ - 用 RBGA 值填充枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697128/
我是一名优秀的程序员,十分优秀!