加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x学习笔记(六)TextBMFont控件显示中文乱码或者无法显

发布时间:2020-12-14 17:11:48 所属栏目:百科 来源:网络整理
导读:今天用cocos studio加了一个TextBMFont控件,然后需要动态修改TextBMFont控件显示的字符串,用来显示中文的,结果一直无法修改TextBMFont控件的值,最后原来是写到xml文件的中文字符串没有保存成UTF-8格式。 ==============================================

今天用cocos studio加了一个TextBMFont控件,然后需要动态修改TextBMFont控件显示的字符串,用来显示中文的,结果一直无法修改TextBMFont控件的值,最后原来是写到xml文件的中文字符串没有保存成UTF-8格式。

=====================================================================================

记录一下完整实现步骤

一、制作BMFont字体

1、下载并安装BMFont软件

2、因为要用到中文字符,所以要进行字体设置。选项->字体设置

wKiom1fOMZeQXfvUAACG_Tiyi6g902.png

3、设置导出设置,选项->输出设置

wKioL1fOMgjSzq92AACAi8qEbnI743.png

4、新建txt文本,输入所需要的字符,然后另存为UTF-8格式,否则软件不识别

5、回到BMFont软件,编辑->从文件中选择字符,找到刚才保存的txt文本

6、选项->位图字体另存为,这样就生成了fnt和png格式的文件


二、新建XML文件

由于cocos2d-x直接使用会出现乱码,这里我们使用将中文字符写到xml文件中的方法。注意文件编码要保存为UTF-8,xml文档格式如下

<dict>
<key>hello</key>
<string>你好</string>
<key>world</key>
<string>世界</string>
</dict>

三、代码中解析

autom_res=CSLoader::createNode("test.csb");
if(m_res==nullptr)
{
returnfalse;
}
addChild(m_res);
ui::TextBMFont*show=dynamic_cast<ui::TextBMFont*>(chestTip->getChildByName("Show"));
//创建词典类实例
autoconfig=Dictionary::createWithContentsOfFile("Config.xml");
constchar*hello=((String*)config->objectForKey("hello"))->getCString();
show>setString(hello);


注:test.csb是在cocos studio下导出的文件,

需要#include "../cocos/editor-support/cocostudio/CocoStudio.h"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读