【cocos2d-x3.1 Label】Labal如何显示TTF文件中不存在的字??

大家好,我用3.1

Label::createWithTTF(“李傕”, “font1.ttf”, 30);

的方式创建label标签,因为font1.ttf里面没有“傕”这个字,所以屏幕上就打印出了一个“李”字.

请问怎么才能让ttf里没有的字换成用系统默认字打出来。

我看了一下刀塔传奇,它的解决方案也是这样的,ttf字库里没有的字用默认字打出来,所以这个方案应该是能实现的。

多谢~~

自己顶一下,消灭0回复

自己顶一下,消灭1回复

自己顶一下,消灭2回复

自己顶一下,消灭3回复.

没有人知道吗??

只能分开两个Label

CCDevice.cpp中
bool setFont(const char * pFontName = nullptr, int nSize = 0)
这个方法,你查看下,应该可以设置

怎么样?找着解决方案了么?

同遇到:3:

换武将名字了。。。

FontAtlas::prepareLetterDefinitions 这个函数中
if (bitmap && bitmapWidth > 0 && bitmapHeight > 0)这个会检测ttf中是否能生成字对应的数据
所以要做的就是在else,自己利用Device::getTextureDataForText来获取系统字体对应的数据,仿照if中写进去
:14:前一阵策划也是有这种需求,所以花了几天来实现了
另外还有一种比较容易的做法就是在发现字库中没有的字时,整个label的fontAtlas替换为系统字体

createWithSystemFont(
字体选择ttf的路径,这样的话ttf内包含的字体用ttf显示,不包含的字体用系统字体

这个问题官方一直没有解决?

可以贴一下你改的prepareLetterDefinitions这个函数的代码吗?求参考啊。

:3:

大佬有没有解决啊 同样的问题

应该有人解决了,但是没贴出来

楼主说了,换武将名字了

。。。感觉改不动啊,谁有参考的就好了

@airind 哥这个问题怎么解决的呀