1

我已经了解了RGBA的工作机制,所以我意识到属于不同颜色的十六进制数可以变成简单的整数。这意味着我可以将颜色存储在整数中,即使其中一些非常大。

我的问题是如何获得属于我给程序的整数的颜色?

编辑:当然我忘了提到我也使用 Allegro 但我是新手……有什么功能可以做到吗?

4

1 回答 1

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隐藏底层实现细节的结构,因此以上都不适用。

于 2013-05-19T17:16:41.840 回答