中文支持

来源:互联网 发布:淘宝商品排名软件 编辑:程序博客网 时间:2024/04/28 09:52

不像javame绘制文字Graphics.drawString那么简单,多平台的游戏框架一般采用生成BitampFont的方案。libgdx的字体支持方案BitmapFont是一个字符对应一个图片,根据要显示的字符串把字符图片拼起来。英文26个字母组合能解决所有表达,每个字母重用性很大,所以这种方案就显得非常灵活。但像中文这样的象形文字,一个字重用性不大,应用到中文BitmapFont的这种方案就有点别扭,倒不如自己ps张图片直接显示。不过还是建议使用BitmapFont,因为用hiero来生成规范点,还有数字和标点符号的生成还是得依赖它。

如果游戏用的中文字数较少,用hiero生成文件后游戏加载就行了。但当中文数合计有1000个那么多,而且不是一起显示的,那这样做就很不可取了,不仅文件大,而且加载后占内存大,这种情况可以尝试动态加载,这需要引入FreeType库,然后增加一个字体库作为游戏资源(虽然中文字体库文件也不小),然后在需要的时候生成相应的字符串就行了。(FreeType原理也是依赖BitmapFont,相当于在游戏中开个hiero任务根据字体库生成BitmapFont)。网上也有其他字体支持的方案,例如smartFont。

如果你想基于BitmapFont在游戏中做个聊天室的东西,那有点难度。不过可以引入其他的框架。在android中libgdx游戏其实是个view,你可以在一个linear layout中嵌入它,再嵌入一个textview和edittext,让android原生来显示中文也是种方法。

题外话,有时候使用BitmapFont缩小字体时会模糊,可以尝试这样解决:http://passover.blog.51cto.com/2431658/1199927?utm_source=tuicool&utm_medium=referral


1 0
原创粉丝点击