SDL2入门(四)显示文字

 时间:2026-02-13 20:06:25

1、这里只解释修改的代码,若想了解其余代码,请查看上一节课。

首先准备ttf文件,因为我们将要用它来显示文字,我这里准备了DroidSansFallback.ttf 文件。

SDL2入门(四)显示文字

SDL2入门(四)显示文字

2、首先我们引用拓展库SDL_ttf.h头文件。

SDL2入门(四)显示文字

3、之后用TTF_Init来初始化字体。

然后用TTF_Font创建的指针变量加载字体文件,TTF_OpenFont的参数:第一个为字体路径、第二个为字体大小。返回一个指针。

注意:TTF_Font只能加载ttf字体文件和支持UTF-8编码,不支持换行符等特殊字符。

SDL2入门(四)显示文字

4、这里的SDL_Color存储着字体的颜色,它有四个成员变量:r、g、b、a,分别是红(red)、绿(green)、蓝(blue)、透明(alpha)。

我把字体设置成白色不透明,即r:255,g:255,b:255,a:255。

SDL2入门(四)显示文字

5、利用TTF_RenderUTF8_Blended可以将字符串转换成SDL_Surface的指针变量,函数参数:第一个是TTF_Font指针变量、第二个是字符串、第三个是SDL_Color变量。

SDL2入门(四)显示文字

6、最后别忘了处理释放内存的工作。

SDL2入门(四)显示文字

7、运行结果:

SDL2入门(四)显示文字

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();

}

  • 魔兽世界怀旧服潜行者怎么接到亲爱的艾琳娜任务
  • 明日之后好友度等级
  • 王者荣耀五路精神礼包怎么获得
  • 鬼泣5mod怎么用
  • 手机UC浏览器如何开启章评入口功能?
  • 热门搜索
    skype怎么用 上海儿童博物馆 末影人怎么打 精心的近义词 基本礼仪常识 过敏性紫癜怎么治疗 用处的近义词 探索的近义词 鼓浪屿钢琴博物馆 火热的近义词