(转) cocos2dx 显示中文
总结一句话,就是UTF-8编码。
1. 中文FNT字体文件制作
使用Bitmap Font Generator制作字体文件
选择Opotion->FontSetting,来设定需要导出的字体,主要注意选择Unicode编码,其他的size就是设置字体大小,height设置100%就行了。
导出设置,padding其实就是字的边缘留多大的空间,主要是考虑后期加入一些特效。bit depth要选择32的,不然背景是不会透明的!
presets选择一种自己要的样式就行了,我这里选的是 黑字白底。下边的 Texture选择 png。
具体字符的选择,可以通过主界面右侧的列表选择字符,但是数量很大,尤其是汉字,太多了。。。
选择菜单 Edit->Selecting text from file... 选择一个文件,里面包含你想生成字体的文字,使用文本工具创建一个txt的文件
通过Selecting text from file载入,如果弹出错误,就说明这个1.txt文件的编码方式不是utf-8的,需要修改它的编码方式,很多文本编辑器都能做到。
载入之后,option->Save bitmap font as...就会生成一个 fnt文件和一个png文件,可以打开png查看是不是自己想要的效果
字体文件就搞定了。
2. cocos2dx字体文件使用
先添加编码转换函数
#include "iconv/iconv.h"
#pragma comment(lib,"libiconv.lib")
int GBKToUTF8(std::string &gbkStr)
{
iconv_t iconvH; iconvH = iconv_open("utf-8","gb2312");
if(iconvH == ){
return -;
}
const char* strChar = gbkStr.c_str();
const char** pin = &strChar; size_t strLength = gbkStr.length();
char* outbuf = (char*)malloc(strLength*);
char* pBuff = outbuf;
memset(outbuf,,strLength*);
size_t outLength = strLength*;
if(- == iconv(iconvH,pin,&strLength,&outbuf,&outLength)){
iconv_close(iconvH);
return -;
}
gbkStr = pBuff;
iconv_close(iconvH);
return ;
}
这个库cocos2dx都是自带的,搜一下就能找到。
std::string str2 = "得分:";
GBKToUTF8(str2);
scoreItem=CCLabelBMFont::create(str2.c_str(),"fonts/Felt.fnt");
这样就可以显示汉字了!
(转) cocos2dx 显示中文的更多相关文章
- cocos2d-x 显示中文字符和解析XML文件 转载
源地址:http://codingnow.cn/cocos2d-x/1038.html 在cocos2d-x中直接显示中文的时候会出现乱码,虽然在实际开发中把字符串直接写在代码里也不是好的做法,但是有 ...
- cocos2D-X 显示中文
{ 将所在的cpp文件改为utf-8 无签名格式再编译 //但,治标不治本 }
- cocos2d-x wp8 中文显示问题
cocos2d-x项目在wp8下中文显示不了.有两个原因: 1. 本身字符串的utf8编码, 有问题. 2. 显示中文所须要的字体,缺失. 要解决第二个问题非常easy,在fonts下加入一个中文字体 ...
- Cocos2d-x项目移植到WP8系列之八:CCLabelTTF显示中文不换行
原文链接: http://www.cnblogs.com/zouzf/p/3985330.html 在wp8平台上,CCLabeTTF显示中文不会自动换行,看了下源码,原来底层的实现是根据text的空 ...
- 移动开发之浅析cocos2d-x的中文支持问题
题记:这阵子一直在学习cocos2d-x,其跨平台的特性确实让人舒爽,引擎的框架概念也很成熟,虽然相应的第三方工具略显单薄,但也无愧是一件移动开发的利器啊,有兴趣的朋友有时间就多了解吧. 使用引擎的过 ...
- Cocos2d-x 对于中文的支持-----iconv库
Cocos2d-x 对于中文的支持-----iconv库 转自:http://momowing.diandian.com/post/2013-01-16/40047183777 Jetion: 我们在 ...
- cocos2d-x解决中文乱码问题的几种办法
昨天改写cocos2d-x的例程,想在其基础上加上一个计分系统.没有分数实在让人没有玩下去的动力! 我在主场景上加上了一个CCLabelTTF,用于显示分数. 但是意外的发现,当内容含有中文时,CCL ...
- win10 环境 gitbash 显示中文乱码问题处理
gitbash 是 windows 环境下非常好用的命令行终端,可以模拟一下linux下的命令如ls / mkdir 等等,如果使用过程中遇到中文显示不完整或乱码的情况,多半是因为编码问题导致的,修改 ...
- linux显示中文
设置centos显示中文 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言 ...
随机推荐
- 解析私有IP地址和公网IP地址
局域网私有IP地址上外网的原理 IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上.一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行 ...
- .net 实现Office文件预览,word文件在线预览、excel文件在线预览、ppt文件在线预览
转自源地址:http://www.cnblogs.com/GodIsBoy/p/4009252.html,有部分改动 使用Microsoft的Office组件将文件转换为PDF格式文件,然后再使用pd ...
- jQuery库中的变量$和其它类库的变量$冲突解决方案
jQuery.noConflict();//把变量$给其它插件 /* 由于把jQuery插件中的变量$给了其它插件使用 那么在调用jQuery插件的时候只能使用jQuery 但是这样很不方便 1.其实 ...
- Ogre代码学习之1——Ogre中地形lod的基础:deltaHeight的计算
Ogre的地形系统中的重要概念:高度差,英文HeightDeltas,表示某个完整细节中的顶点,在某个它被隐去的lod中被插值之后的高度和原始高度(即高度图中的高度)之差. DeltaHeight = ...
- centos安装php-memcached扩展及cas用法
一.安装libmemcachedwget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar ...
- $(document).ready(function(){});
$(document).ready 里的代码是在页面内容都加载完才执行的,你直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,如果你标签里执行的代码调用了当前还没加载过 ...
- CSS 中的内联元素、块级元素以及display的各个属性的特点
CSS的内联元素和块级元素 块级元素<h1>-<h6>.p.dt是不可以内联块级元素的 1.block和inline这两个概念是简略的说法,完整确切的说应该是 block-le ...
- C# 获取DataTable数据导出到Excel
protected void ExportExcel(System.Data.DataTable dt) { ) return; Microsoft.Office.Interop.Excel.Appl ...
- JS-011-颜色进制转换(RGB转16进制;16进制转RGB)
在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#0000 ...
- angularJs之template指令
template: 如果我们只需要在ng-view 中插入简单的HTML 内容,则使用该参数: .when('/computers',{template:'这是电脑分类页面'}) templateUr ...