SDL2入门(四)显示文字
1、这里只解释修改的代码,若想了解其余代码,请查看上一节课。
首先准备ttf文件,因为我们将要用它来显示文字,我这里准备了DroidSansFallback.ttf 文件。
2、首先我们引用拓展库SDL_ttf.h头文件。
3、之后用TTF_Init来初始化字体。
然后用TTF_Font创建的指针变量加载字体文件,TTF_OpenFont的参数:第一个为字体路径、第二个为字体大小。返回一个指针。
注意:TTF_Font只能加载ttf字体文件和支持UTF-8编码,不支持换行符等特殊字符。
4、这里的SDL_Color存储着字体的颜色,它有四个成员变量:r、g、b、a,分别是红(red)、绿(green)、蓝(blue)、透明(alpha)。
我把字体设置成白色不透明,即r:255,g:255,b:255,a:255。
5、利用TTF_RenderUTF8_Blended可以将字符串转换成SDL_Surface的指针变量,函数参数:第一个是TTF_Font指针变量、第二个是字符串、第三个是SDL_Color变量。
6、最后别忘了处理释放内存的工作。
7、运行结果:
8、代码:
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
int main(int argc,char**argv)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Window*window=SDL_CreateWindow("显示文字", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 720, 1280, SDL_WINDOW_SHOWN);
SDL_Renderer*renderer=SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_RenderClear(renderer);
TTF_Init();
TTF_Font*font=TTF_OpenFont("resource/DroidSansFallback.ttf",100);
SDL_Color color={255, 255, 255, 255};
SDL_Surface*surface=TTF_RenderUTF8_Blended(font,"english 中文",color);
TTF_CloseFont(font);
TTF_Quit();
SDL_Rect box={0, 0, surface->w, surface->h};
SDL_Texture*texture=SDL_CreateTextureFromSurface(renderer, surface);
SDL_RenderCopy(renderer, texture, NULL, &box);
SDL_RenderPresent(renderer);
SDL_Delay(2000);
SDL_FreeSurface(surface);
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
}