游戏通常在适当的适合需要些文字提示,有的游戏甚至用文字的方式来表示人物的交流,通常剧情游戏都是这样的,所以文字显示也是相当重要的一部分,SDL本身好像没有支持文字显示的函数,不过,它的拓展库SDL_ttf提供了相当大的支持,可以直接使用ttf格式的字体文件,大大方便了中文显示,毕竟如果是英文,完全可以做26张图,呵呵,废话不说了,下面来看看SDL_ttf提供的几个函数
首先,和SDL一样,它有初始化函数
int TTF_Init()
初始化拓展库,这个函数乍看似乎很眼熟,恩,将TTF改成SDL确实就一样了,还有很多TTF开头的函数和类型,它的命名方式与SDL一致
函数int TTF_WasInit()检测拓展库ttf是否初始化了
与图片一样,字体库需要打开才能使用
TTF_Font *TTF_OpenFont(const char *file, int ptsize)
这个函数打开字体文件file,大小设置成ptsize,返回字体类型指针,失败时返回null
这个指针在之后写文字时都会用到
将文件写成一个图片格式,这里只介绍一个函数,毕竟中文用这个函数就够用了
SDL_Surface *TTF_RenderUTF8_Solid(TTF_Font *font, const char *text, SDL_Color fg)
这个函数使用font指向的字体库,颜色为fg,将text指向的文字写成图片,返回到Surface结构里
将这张图片画到屏幕上就等价与输出文字了,是不是很简单哈
当然,最后需要做扫尾工作
void TTF_CloseFont(TTF_Font *font)
用这个函数关掉打开的字体库
最后,相应的退出ttf模块
void TTF_Quit()
具体的字体文件在网上下载就行了,推荐一个网站哈http://www.font5.com.cn/zitixiazai/1/104.html