做中文游戏有一个麻烦事就是要用到中文的字库,libgdx框架提供两种方式:
1)直接读取ttf文件:这个看起来很方便,什么都是动态生成的,但是实际测试了一下,性能非常差,每次启动程序加载字库要好几秒,这应该也是因为中文字库太大导致的。
2)采用bitmapfont:这个需要手动制作字体文件,其实原理非常简单,就是把文字都写在一个图片上,然后配合一个坐标文件,和图片打包是一个道理。
这个字库做起来倒是不难,直接使用Hiero工具即可,但是有些小地方需要注意。以下是根据经验总结的使用步骤:
1.对gdx-tools工程点run,选择Hiero运行,注意不能用Hiero4,那个打包有问题。
2.选择字体文件、字号,输入sample text。
padding看打包出来的情况,如果字体边缘有其他字的像素,则要相应的+1。
字体的特殊效果自己根据情况选择,颜色最好是白色,这样显示的时候可以动态调整。
3.选择Glyph cache,调整page大小,确保打包的字体图片只有一页,如果出现多页则字体显示会有bug。字体一定要控制在1024*2048以内,否则手机加载字体速度会非常慢
4.导出的文字图片文件用PNGGauntlet进行压缩,可以减小大约40%的文件大小,且字体画质不会有任何影响
注:制作有描边的文字,要注意Effects顺序,先加Outline,再加Color。