📄 15-6.c
字号:
#include <SDL.h>
#include <SDL_ttf.h>
SDL_Surface *screen;
void Init_SDL()
{
if ( SDL_Init( SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr,"Can't init SDL: %s\n",SDL_GetError());
exit(1);
}
screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
if ( screen == NULL ) {
fprintf(stderr, "Error: %s\n",SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
}
int main()
{
SDL_Surface *text;
SDL_Rect dest_rect;
TTF_Font *font;
SDL_Color green={ 0, 255, 0, 0 }; /* 绿色 */
int fontsize=38; /* 字号38 */
Init_SDL(); /* 初始化SDL */
if(TTF_Init()!=0){ /* 初始化TTF库 */
fprintf(stderr, "Can't init ttf font!\n");
exit(1);
}
font=TTF_OpenFont("/usr/share/fonts/simsun.ttf",fontsize); /* 打开字体文件 */
TTF_SetFontStyle(font,TTF_STYLE_NORMAL); /* 设置字体类型 */
text=TTF_RenderUTF8_Blended(font,"TureType中文字体显示(Utf8)", green); /* 渲染文字生成新的surface */
if(text==NULL){
fprintf(stderr, "Can't render ttf text!\n");
exit(1);
}
TTF_CloseFont(font); /* “画”好字后就可以关闭字体文件了 */
TTF_Quit(); /* 关闭TTF引擎 */
dest_rect.x=100; /* 将在 (100,200) 处显示 */
dest_rect.y=200;
dest_rect.w=text->w;
dest_rect.h=text->h;
SDL_BlitSurface(text, NULL, screen, &dest_rect); /* 将绘好文字的平面“贴”到屏幕上 */
SDL_UpdateRect(screen,0,0,0,0); /* 更新屏幕 */
SDL_FreeSurface(text); /* 释放surface */
SDL_Delay(5000);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -