任何人对如何将ccc3转换为ccc4甚至只是宏都有任何想法!
我目前正在使用CCMotion条纹,它要求我使用ccc4,但我不知道哪种组合可以产生什么颜色!
请任何帮助将不胜感激!
谢谢

最佳答案

来自ccTypes.h

typedef struct _ccColor4B
{
 GLubyte r;
 GLubyte g;
 GLubyte b;
 GLubyte a;
} ccColor4B;
//! helper macro that creates an ccColor4B type
static inline ccColor4B
ccc4(const GLubyte r, const GLubyte g, const GLubyte b, const GLubyte o)
{
 ccColor4B c = {r, g, b, o};
 return c;
}

例如:
ccColor4b myColor = ccc4(255, 0, 0, 255);创建纯红色

再次从ccTypes.h
/** Returns a ccColor4F from a ccColor3B. Alpha will be 1.
 @since v0.99.1
 */
static inline ccColor4F ccc4FFromccc3B(ccColor3B c)
{
 return (ccColor4F){c.r/255.f, c.g/255.f, c.b/255.f, 1.f};
}

如果这还不足以像上一个那样编写自己的转换器,

编辑:

如果您有ccColor3B myColor3B,并且想要ccColor4F myColor4F,则只需使用转换器:
myColor4F c = ccc4FFromccc3B(myColor3B);

如果要让ccColor4B编写您自己的转换器,请执行以下操作:
static inline ccColor4B ccc4BFromccc3B(ccColor3B c)
{
 return (ccColor4F){c.r, c.g, c.b, 255};
}

并像这样使用它:
ccColor4B c = ccc4BFromccc3B(myColor);

10-06 08:57