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>intmain(intargc,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_Colorcolor={255,255,255,255};SDL_Surface*surface=TTF_RenderUTF8_Blended(font,"english中文",color);TTF_CloseFont(font);TTF_Quit();SDL_Rectbox={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();}