打算抽时间写个RichText,初步想法是直接使用 freetype 。
Android IOS 似乎都支持 freetype,暂未实践,只是在 win32 上尝试一下。
richtext::Font font("C:/Windows/fonts/simhei.ttf", 24);
richtext::Line line(480);
int color[] = {0xFFFFFF, 0xFF0000, 0xFFFFFF, 0x00FFFF, 0xFFFFFF};
char* text[] = {"恭喜", "[王尼玛]", "同学获取", "[草泥马]", " x 1" };
int effect[] = {0, 3, 0, 2, 0};
for (int i = 0; i < 5; ++i)
{
line.AddElement(new richtext::TextElement(font, text[i], color[i], richtext::TextElement::Effect(effect[i])));
}
addChild(line.ToSprite());
效果如图: