通过使用带有每个字母的“spritesheet like”纹理来渲染文本肯定会起作用,并且是一种非常常见的方法。
虽然不知道有任何库可以呈现这样的文本(我敢肯定有),但自己编写代码确实不难。如果您想编写自己的代码来执行此操作,您将需要某种方法来生成包含您需要的每个字母的纹理。BMFont是一款可以生成此类纹理的程序。此外,BMFont 生成一个随附的“.fnt”文件,指示每个字母在纹理中的位置。
下面是 BMFont 生成的纹理的样子:
和 .fnt 文件:
info face="Times New Roman" size=-22 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
common lineHeight=25 base=20 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
page id=0 file="Times22.png"
chars count=191
char id=32 x=253 y=37 width=1 height=1 xoffset=0 yoffset=20 xadvance=6 page=0 chnl=15
char id=33 x=253 y=21 width=2 height=15 xoffset=2 yoffset=5 xadvance=6 page=0 chnl=15
char id=34 x=195 y=118 width=6 height=6 xoffset=2 yoffset=5 xadvance=9 page=0 chnl=15
char id=35 x=72 y=42 width=11 height=16 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
char id=36 x=17 y=43 width=9 height=17 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
...