cocos2d-x 显示中文字符

cocos2d-x中文显示 cocos2d-x中文显示 cocos2d-x v2.2.0 立即下载

解决显示中文乱码问题。

1,、cocos2d-x 显示中文字符
首先包含iconv.h头文件,c++->常规->附加包含目录:cocos2dx\platform\third_party\win32\iconv

2、新建tool.h,内容如下

#ifndef _TOOLS_H_
#define  _TOOLS_H_


#include "cocos2d.h"


#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#include "iconv.h"
#endif


#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#pragma comment(lib,"libiconv.lib")
#endif


float heronsformula(float x1,float y1,float x2,float y2,float x3,float y3);


bool triangleContainPoint(float x1,float y1,float x2,float y2,float x3,float y3,float px,float py);


#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
//字符转换,使cocos2d-x在win32平台支持中文显示
int GBKToUTF8(std::string &gbkStr,const char* toCode,const char* formCode);
#endif


#endif //_TOOLS_H_


新建tool.cpp,内容如下


#include "tools.h"


float heronsformula(float x1,float y1,float x2,float y2,float x3,float y3)
{
float a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
float b=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
float c=sqrt(pow(x3-x1,2)+pow(y3-y1,2));
float s=(a+b+c)/2;


return sqrt(s*(s-a)*(s-b)*(s-c));
}


bool triangleContainPoint(float x1,float y1,float x2,float y2,float x3,float y3,float px,float py)
{
float s1=heronsformula(x1,y1,x2,y2,px,py);
float s2=heronsformula(x2,y2,x3,y3,px,py);
float s3=heronsformula(x3,y3,x1,y1,px,py);
float s=heronsformula(x1,y1,x2,y2,x3,y3);


return abs(s-(s1+s2+s3))<0.001f;
}


#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
//字符转换,使cocos2d-x在win32平台支持中文显示
int GBKToUTF8(std::string &gbkStr,const char* toCode,const char* formCode)
{
iconv_t iconvH;
iconvH = iconv_open(formCode,toCode);
if(iconvH == 0)
{
return -1;
}


const char* strChar = gbkStr.c_str();
const char** pin = &strChar;


size_t strLength = gbkStr.length();
char* outbuf = (char*)malloc(strLength*4);
char* pBuff = outbuf;
memset(outbuf,0,strLength*4);
size_t outLength = strLength*4;
if(-1 == iconv(iconvH,pin,&strLength,&outbuf,&outLength))
{
iconv_close(iconvH);
return -1;
}


gbkStr = pBuff;
iconv_close(iconvH);
return 0;
}
#endif

3、具体使用实例

std::string menuItemStr = "单人游戏";
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
GBKToUTF8(menuItemStr,"gb2312","utf-8");
#endif

CCLabelTTF *labelSingleGame = CCLabelTTF::create(menuItemStr.c_str(), "Arial", 17); 
labelSingleGame->setPosition(ccp(origin.x + 800*scalex, origin.y + 550*scaley));


搞定....

解决cocos2d中文乱码的项目 解决cocos2d中文乱码的demo, 在win和android平台下验证成功 立即下载

相关推荐

Cocos2D-中文版

Cocos2D 中文版 第1章 介绍cocos2d 第2章 开始学习 第3章 基础知识 第4章 你的第一个游戏 第5章 游戏构成要素 第6章 深入了解精灵 第7章 横向滚屏射击游戏 第8章 完成滚屏射击游戏 第9章 粒子效果 第10章 瓷砖地图 第11章 45度角

Cocos2d-x 中文内容设置

解决在Cocos2dx内显示中文文本的问题。

HYY的博客 5052

cocos2dx+中文版

一本基础教程,对于刚刚接触cocos2d-x的朋友十分有帮助,可以帮你快速的进入cocos2d引擎,讲解详细到位,希望可以帮到大家!

cocos2d-x显示中文,方法(1)

我们用两种方法来实现在cocos2d-x中显示中文,在这之前,我会认为你已经按照子龙山人的 文章配置了环境,如若不了解的请先移步我转载的子龙山人前辈的文章《Cocos2d-x win7 + vs2010 配置图文详解(亲测)》和《Cocos2d-x建工程时避免copy文件夹和库》。我们新建一个工程,取名为LabelTest1        首先我们来看一下第一种方法,即TestCpp示例使用

路上的点滴 2415

cocos2d-x 显示中文字符 实例源码

cocos2d-x 显示中文字符 实例源码,详情请移步到博客:http://codingnow.cn/program/1038.html

sentaurus学习笔记(HFET_pGate_GaN仿真)(九)

`(sdedr:define-constant-profile-placement "Ohmic.s" "Ohmic" "Pl.ohmic.s" 0.002)`这一行将`"Ohmic"`掺杂剖面放置在`"Pl.ohmic.s"`参考评估窗口中,同样`0.002`可能表示掺杂剖面在窗口中的偏移量或其他参数。欧姆接触是半导体器件中的一种低阻抗电气接触,通常需要高掺杂来减少接触电阻并提高器件性能。通过这些步骤,SDE能够为器件的源极和漏极区域设置高掺杂的欧姆接触,这对于确保器件的高性能和低接触电阻至关重要。

qq_52640792的博客 1382

cocos2d-x : 解决中文乱码问题

在开发中常会遇到显示中文的情况,但是如果不加处理会出现乱码的问题。 一般会有日志乱码和 窗体上的字体乱码 原因: vs2015 默认的编码格式是GBK/GB312,而在输出的时候,都是以utf-8 格式输出的 所以会出现乱码的情况 例如新建一个项目,将默认显示的Hello World 改为中文。 默认显示: 将Hello World 改为中文: 显示: 解决: ...

better的博客 2198

企业固定资产管理的SAP实战:FICO模块配置与折旧范围设置详解

本文深入解析了SAP FICO模块中固定资产会计配置的核心实践,重点阐述了折旧范围的设计哲学与配置逻辑。通过详解折旧表、折旧范围、资产分类及折旧码等关键配置步骤,指导企业如何搭建满足多会计准则(如CAS、IFRS)与税务要求的资产管理体系,实现资产购置、折旧计提与报废清理的自动化与精准化。

wdx01234567的博客 728

cocos2dx 3.4 Label中文显示

第一种方式: Label* a = Label::createWithSystemFont("中国", "宋体", 30); a->setPosition(Point(100, 200)); addChild(a);  这种方式也可以显示中文,不过显示中文的个数必须是双数,单数会产生莫名其妙的错误,不建议使用 第二种方式          这种方式

u014626120的专栏 3776

Codesys—Modbus RTU称重变送器通讯案例

Codesys控制器使用标准的Modbus库,与支持ModbusRTU的称重变送器进行通讯的案例

原来你也__的博客 2739

ESP32连接OneNet云平台实现多设备联动控制完整示例

通过esp32连接onenet云平台,实现远程设备间的智能联动控制,利用MQTT协议完成数据通信,esp32连接onenet云平台后可高效稳定地上传与下发指令,提升物联网系统响应速度与自动化水平。

weixin_42360733的博客 547

cocos2d中文显示问题的解决方法

在cocos2d中如果输入中文,在场景中会显示出乱码,这是因为编码方式的问题,解决这个问题的放大也不是很难,而且代码能反复使用比较简单,易于操作 这篇博客只能算是部分原创,因为这里我借鉴了 原始出处 我借鉴了一些代码,希望大家转载时也能尊重原创,在这里我说明的会更加详细一些,对于新手或是不是很熟练的人来说还是很有帮助的,高手忽略我... 第一步: 我们需要新建一个cpp文件和一个.h

troublemaker2014的专栏 664

STM32 SYSTICK定时器及延时函数详解

STM32 SYSTICK及延时函数详解 SysTick定时器 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心

w1050321758的博客 2366

cocos2d-x 显示中文字符和解析XML文件

在cocos2d-x中直接显示中文的时候会出现乱码,虽然在实际开发中把字符串直接写在代码里也不是好的做法,但是有时候也是为了更方便了。 本文采用两种方案来解决这个问题: 1. 使用iconv,引擎也提供了这个库,不过只是win32平台,移植到android上还得自己去下载iconv库编译。 2. 把字符串写到xml文件中,然后解析xml文件,格式按照android中的strings.xml

Alex Zhou的程序世界 1780

ORB-SLAM3在windows11下的编译使用

近期在学习SLAM,想部署一下ORB-SLAM3,但是自己电脑是win11系统,因此就想着在win11上部署一下。但是网上看了一些教程,有一些博客,但是可能不适合我这种情况把,就很纠结。先说下结果,配置成功,过程极其痛苦。

weixin_44457768的博客 6095

Transformers 实战修炼与源码剖析专栏大纲

本专栏以 Hugging Face Transformers 为主线,围绕“能用、会调、敢上线、懂源码”四个目标展开。内容不把理论堆成公式墙,而是用真实或拟真的业务场景驱动:客服分类、合同抽取、知识库问答、模型微调、推理服务、监控告警、源码扩展等。采用“业务痛点 → 三人剧本对话 → 代码实战 → 总结思考”的四段式结构,让读者在动手完成一个个小项目的过程中,逐步理解 Tokenizer、Model、Pipeline、Trainer、Generation、PEFT、Accelerate、Serving等概念

davidwang456的专栏 921

cocos2d-x 显示中文字符和解析XML文件 转载

源地址:http://codingnow.cn/cocos2d-x/1038.html 在cocos2d-x中直接显示中文的时候会出现乱码,虽然在实际开发中把字符串直接写在代码里也不是好的做法,但是有时候也是为了更方便了。本文采用两种方案来解决这个问题:1. 使用iconv,引擎也提供了这个库,不过只是win32平台,移植到android上还得自己去下载iconv库编译。2. 把字符串写到xml...

weixin_30951389的博客 86

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 185

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

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

weixin_34391445的博客 378

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

cocos2d-x lua BMFont中文问题解决

在研究用lua使用cocos2d-x 显示中文的问题,好像对ttf支持的不是很好,只能用CCLabelBMFont了,看了下BMFont工具生成的fnt文件,发现英文字符的char id 和asic2一样, 但是中文id 比如“一”这个汉字的char id 为 19968,google一下发现这是unicode编码。 CCLabelBMFont代码中生成字体纹理函数为void CCLabelB

westice的专栏 3685

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Learning Cocos2d-x for WP8(4)——中文显示

原文:Learning Cocos2d-x for WP8(4)——中文显示C#(wp7)兄弟篇Learning Cocos2d-x for XNA(4)——中文显示 Cocos2d-x中文显示,似乎还没有非常完美的解决方法,一切的根源还是UTF-8编码问题。 我选择了CCLabelBMFont结合位图坐标文件(.fnt)显示,CCLabelBMFont优于CCLabelTTF是因为CCLab...

weixin_34001430的博客 84

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

cocos2d-x解决中文乱码问题的几种办法

昨天改写cocos2d-x的例程,想在其基础上加上一个计分系统。没有分数实在让人没有玩下去的动力! 我在主场景上加上了一个CCLabelTTF,用于显示分数。 但是意外的发现,当内容含有中文时,CCLabelTTF的显示内容为乱码。   无奈只好Google百度寻求答案,明白了这个问题的缘由。 因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为G...

weixin_34219944的博客 132
上一篇: Cocos2d-x 的“HelloWorld” 深入分析
下一篇: Box2D 中的 PTM_RATIO
mincheat
博客等级 码龄17年 46粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值