我一直试图改变TTF文字的颜色,但我无法弄清楚如何去做。我有:
SDL_Color color_text = { 0, 0, 0 }; //Text color
SDL_Surface * surface = TTF_RenderText_Solid(font, "text text text text text ", color_text);
但看起来无法以任何方式改变颜色。如果可能的话,我可以用另一种方式存储颜色。
答案 0 :(得分:0)
要更改相关文字的任何属性,您需要重新呈现文字。
假设您从一个黑色文本开始,您将拥有:
SDL_Color color_text = { 0, 0, 0 }; // Text color
SDL_Surface* surface = TTF_RenderText_Solid(font, "TEXT", color_text)
这会使"TEXT"
变黑,因为{ 0, 0, 0 }
是黑色的RGB代码。
如果要将其设为红色,则可以操作值,例如:
color_text.r = 255;
SDL_Surface* surface = TTF_RenderText_Solid(font, "TEXT", color_text)
这会使"TEXT"
变为红色,因为r
的{{1}}成员设置为color_text
,使255
的成员color_text
,红色的RGB代码。