2013-07-25 50 views
6

我刚开始使用SDL2_ttf。我已经想通过TTF_RenderText_Blended在屏幕上获得一些文字,但我怎么才能让它做换行符和自动换行呢?如何使用SDL-TTF进行换行和换行?

  1. 它似乎不支持\n;它只是创造一个空间而不是一条线。有没有办法为此添加支持?具体来说,使用正确的文本行高度,而不是在不同的Y坐标上多次调用RenderText。
  2. 给定一个X,Y坐标和一个宽度,当达到这个宽度时(字之间的间隔),我怎么能自动沿着一条直线走下去?

回答

18

而不是使用TTF_RenderText_Blended,请使用TTF_RenderText_Blended_Wrapped。它需要额外的参数:以像素为单位的宽度,之后文本将分解到下一行。

+0

是标准库的一部分吗?我找不到任何文档。如果存在,那很好。 – mpen

+0

这是最新的SDL_ttf。我找不到合适的文档(不知道为什么没有提及它),但我可以向你保证它的工作。 – Mars

+0

必须在VCS中,然后.....在2.0.11源文件中不存在。 Hrm ...刚刚下载2.0.12,它在那里。真棒。 – mpen

2

SDL_TTF不做包装,你必须自己写。

TTF_Font* ttf; 
TTF_SizeText(ttf, "Hello World", &w, &h); 

给你一个字符串的宽度和高度。

+0

我希望能更深入一点,但我想我可以编写自己的字体管理器类。 – mpen

+0

如果你愿意的话,我可以去看看一些代码。 C还是C++?我总是把任何长信息分成几个短信。实际上,C#实际上是 – parkydr

+0

。我正在编写SDL2的封装。你不需要编写任何代码,我只是想知道任何陷阱。我现在无法弄清楚如何去做的一件事就是找人。 – mpen

相关问题