2013-07-25 91 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

相關問題