我已经学习了RGBA的工作机制,所以我意识到属于不同颜色的十六进制数字可以变成简单的整数。这意味着我可以用整数存储颜色,即使它们中的一些非常大。
我的问题是如何获得属于我给程序的整数的颜色?
编辑:当然我忘了提到我也使用了Allegro,但我是新手......有什么功能可以做到吗?答案 0 :(得分:0)
如果您将颜色存储为整数,则听起来您正在使用Allegro 4。它提供了多种功能供您使用,请查看手册。
// int makecol(int r, int g, int b);
int white = makecol(255, 255, 255);
int green = makecol(0, 255, 0);
或反过来:
int r = getr(color);
int g = getg(color);
int b = getb(color);
使用Allegro 4时,订购取决于显卡。因此,对于相同的颜色,makecol()
的返回值可能会有所不同,具体取决于它是否存储了RGB或BGR。因此,您必须使用上述功能才能获得正确的颜色值,并且只能在设置图形模式后使用。
如果使用Allegro 5(我强烈建议使用Allegro 4),则使用ALLEGRO_COLOR
结构,它隐藏了基础实现细节,因此上述内容均不适用。