[英]How to automatically adjust width for text with SDL2_TTF
這是我顯示速度的代碼部分(基本上只是得分):
void Renderer::renderText(const char* text, SDL_Rect* destR)
{
SDL_Surface* surfaceText = TTF_RenderText_Solid(Renderer::font, text, { 255,255,255 });
SDL_Texture* textureText = SDL_CreateTextureFromSurface(renderer, surfaceText);
SDL_FreeSurface(surfaceText);
SDL_RenderCopy(renderer, textureText, NULL, destR);
SDL_DestroyTexture(textureText);
}
有一個明顯的問題是,如果我有一個數字“1”的寬度,文本會被壓縮很多數字是“10000”等等,因為你必須將 5 個字符放入一個只有 1 個字符寬的 SDL_Rect .
我可以將寬度乘以字符數,但這不是很准確,因為不同的字符具有不同的寬度。
我將如何解決這個問題?
(我只回答了這個,因為我發現了其他人沒有回答)
你可以做這樣的事情。
SDL_Rect destR = { x, y, 0, 0 };
TTF_SizeText(font, text, &destR.w, &destR.h);
基本上,TTF_SizeText 使您能夠從帶有字體的文本中獲取本機寬度和高度。 然后,您可以根據需要將高度和寬度相乘。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.