困扰我半年多的问题了,今天总算解决了,特别记录一下。


   之前用libgdx做游戏就发现,有些文字显示效果就是不好。经过研究,共有一下几个问题和相应的解决办法:

   1. 做的字库边缘会有其他字的像素点:这是由于Hiero做的字是一个整图片,用的时候是在里面切出来一个字的图片,但是当字过于密集,就会造成切到其它字的边缘了。所以这里做字库的时候padding加一个像素就够了。如果觉得字间距太大,可以调整fnt文件的xadvance值。

   2. 做的字库在电脑上看清楚,手机上不清楚:这是由于手机分辨率有很多种,所以会对字进行缩放。其实就算是和电脑上一样的分辨率,在手机上其实也不清楚。这是因为默认是用nearest算法,这里改成linear就好了。如:bitmapFont.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);

   3. 用了Linear算法,有的字清楚,有的不清楚:这就是一直困扰我的问题,最后才发现,还是由于画面显示的像素问题,字所在的坐标必须是整数,这样不论是nearest还是Linear都会是最佳显示效果。


   做中文的产品就是有很多不得不面对的问题,现在算是完美解决了,就是解决的时间太长了。。。