上一章节我简单的介绍了我们的第一个SDL小程序,实现一个小调色板的功能,注重说明了怎样在SDL_Surface上绘制自己的图案,
这一章节我则侧重于对文字在SDL_Surface上的显示做一下分析。让我们的屏幕也有自己的文字标记...当然了..也可以做出自己的记事本....
当然了..想要写字,必备的一条便是要有字库,大家可以到网上下载nfs-share.tar.gz这个字体包。然后将其中的simfang.ttf放在工作目录即可了,
大致使用到的函数有
TTF_OpenFont(const char *file, int ptsize);
设置字体,在我这里即为刚才下的nfs-share.tar.gz中的simfang.ttf,第二个参数即为所要设置字体大小,
TTF_RenderUTF8_Solid(TTF_Font *font,
const char *text, SDL_Color fg);
第一个参数为由TTF_OpenFont函数返回的TTF_Font对象,第二个参数为所要显示的文本文件内容,第三个参数为是一个
字体颜色的结构体对象。
SDL_UpperBlit(SDL_Surface *src, SDL_Rect *srcrect,
SDL_Surface *dst, SDL_Rect *dstrect);
这个函数的宏定义是SDL_BlitSurface,所以一般用的都是SDL_BlitSurface函数,
下面就以一个简单的范例来说明问题吧....
int main(int argc,char *argv[])
{
if(SDL_Init(SDL_INIT_VIDEO) < 0 || TTF_Init() < 0 )
{
printf("Init error\n");
return -1;
}
SDL_Surface *screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
if(!screen)
{
printf("Init video mode error\n");
return -1;
}
TTF_Font * font = TTF_OpenFont("simfang.ttf",20);
SDL_Color color = {175,100,220};
SDL_Surface *text = TTF_RenderUTF8_Solid(font,"HELLO,你好",color);
SDL_BlitSurface(text,0,screen,0);
SDL_UpdateRects(screen,1,&screen->clip_rect);
TTF_CloseFont(font);
SDL_Delay(2000);
TTF_Quit();
SDL_Quit();
return 0;
}
在一切都完成以后别忘了释放哟....养成一个好的习惯是成功的开始。
下一章我会对图片的加载来一个剖析....