libgdx吧 关注:1,019贴子:2,351
  • 9回复贴,共1

求问关于FreeTypeFont同时绘制中英文问题

只看楼主收藏回复

我在用FreeTypeFont的时候,想要同时绘制中英文,就给FreeTypeFontGenerator.FreeTypeFontParameter 设置了characters。
当我直接在FreeTypeFontGenerator.DEFAULT_CHARS 后面拼接一个简单字符串 "你好世界"的时候,还是可以用的。
但是后面我尝试把常用汉字放在一个txt文本里(大概7000多字),代码里面读取文本中所有的汉字拼接后,


就出现一些问题了,有的时候时中文显示不出
来, 有的时候时英文显示不出来,甚至有的时候什么也没有。

不知道这是什么导致的,还是说freetypefont 本身有什么限制啊?


IP属地:上海1楼2023-11-26 10:29回复
    还有,txt文本中的内容,我是从 https://zhuanlan.zhihu.com/p/612426036 这里面复制的,只复制了里面所有的一级汉字


    IP属地:上海2楼2023-11-26 10:30
    回复
      求救啊


      IP属地:上海来自iPhone客户端3楼2023-11-26 11:36
      回复
        好吧,我测试了一下,好像就是因为txt里面字太多导致的


        IP属地:上海4楼2023-11-26 11:47
        回复
          删去一些不常用的字就好了。
          不过这个限制可以在哪里改吗?有大佬知道吗


          IP属地:上海5楼2023-11-26 11:47
          回复
            我又看了一下,好像跟字体大小也有关系,文字比较多的话就不能设置的太大,太大的话就会漏掉某些字符。我猜测ttf底层应该是类似于把所有的文字预先渲染在一张存在内存中的图片中这种形式,但图片大小是固定的,分配太多太大的字就会导致某些字被覆盖掉。感觉应该是这个原因。


            IP属地:上海6楼2023-11-26 11:59
            回复
              但我还是想问一下,有人知道该怎么改这个大小吗


              IP属地:上海7楼2023-11-26 12:18
              收起回复
                我用的是这种方法加载汉子字库的,然后使用label。按理说如果配置文件(对应fnt和png文件)没问题,一般不会出现不显示的问题,除非配置的字库里没有对应文字。
                BitmapFont bitmapFont=new BitmapFont(Gdx.files.internal("font/font.fnt"),Gdx.files.internal("font/font.png"),false);


                IP属地:广东8楼2023-11-27 20:54
                回复

                  new Label(str, StyleFactory.getLabelStyle(null))


                  IP属地:广东9楼2023-11-27 21:00
                  回复