http://www.microsoft.com/typography/SpecificationsOverview.mspx

我的方案是直接载入ttf文件解析,在内存中动态生成字模。上面的链接是微软对ttf文件的格式说明,我昨夜搞到半夜,以simsunb.ttf为测试对象,将字体文件的基本数据读取分析完成了,剩下就是对于轮廓数据的解析和显示。就整个方案来说10%完成度。

使用方法如下,都是伪代码

clge_font font =new clge_font(“simsunb.ttf”);

最终输出方案我还没写,不过脑子里已经构造的很清楚了。

输出一,输出到模型,其实就是采用输出二来实现,将会提供源码

clge_font.MakeMesh(顶点格式,string 输入字符串,模型尺寸)

输出二,输出成路径。

路径就是点列表。

用户可以使用这些路径去做效果,那我就不管了。比如在每条路径上搞一个闪光特效,结合楼上的输出一,就可以实现有一个围着字的边缘放烟花的效果。用户可以使用路径创建模型,我提供一些从路径创建模型的示例,比如创建带导角,和空心字模型。

clge_font.MakePathList(string 输入字符串)

输出三,输出到贴图

clge_font.WriteToTexture(ushort 字符,int 字号,RECT 目标输出区域)

输出四,直接绘制String

这个只是对输出三的封装,将会提供源码

ShowFont sfont = new ShowFont(clge_font 字体,int 字号,bool 采用动态缓存还是静态缓存)

//动态缓存就是只创建一张贴图,根据词频调整删除最早使用的。静态缓存在贴图放满字模时会再创建一张

SpriteBatch.begin();

sfont.draw(SpriteBatch,string 显示字符串,int x,int y);//提供采用SpriteBatch输出的实现,用户如果采用其他引擎做UI输出,对应修改源码即可。

SpriteBatch.end();

相关文章:

  • 2021-06-12
  • 2021-07-25
  • 2021-12-01
  • 2021-08-05
  • 2021-08-18
  • 2021-06-20
猜你喜欢
  • 2021-11-29
  • 2022-01-22
  • 2021-08-01
  • 2021-12-26
  • 2021-08-06
  • 2021-09-09
相关资源
相似解决方案