cocos2d-x 3.2文字显示,添加汉字

cocos2d-x 3.2文字显示,添加汉字,第1张

概述//下面这段代码添加到init里面CCMenuItemFont::setFontSize(32); //设置字号 CCMenuItemFont::setFontName("Marker Felt"); //设置字体 CCMenuItemFont *font1=CCMenuItemFont::create("hah", this, menu_selector(MainUI:

//下面这段代码添加到init里面CcmenuItemFont::setFontSize(32);    //设置字号      CcmenuItemFont::setFontname("Marker Felt"); //设置字体  	CcmenuItemFont *Font1=CcmenuItemFont::create("hah",this,menu_selector(MainUI::menuChangeStart));//添加文字按钮,点击实现缩放      Font1->setcolor(ccc3(255,0));  //设置颜色        	CcmenuItemToggle * Font2=CcmenuItemToggle::createWithTarget(this,menu_selector(MainUI::menuChangeSet),CcmenuItemFont::create("on"),CcmenuItemFont::create("off"),NulL);   //添加选择按钮,点击实现on与off之间切换      Font2->setcolor(ccc3(0,255,0));      Font2->setSelectedindex(1);    //设置默认显示,从零算起(此为off)            Ccmenu *newmenu=Ccmenu::create(Font1,Font2,NulL);  // 此步很关键,否则只是菜单项,但不能点击      newmenu->setposition(ccp(visibleSize.wIDth/2,visibleSize.height/2));      newmenu->alignItemsvertically();     //设置为竖排排列      this->addChild(newmenu,2);  


修改文字

	label = LabelTTF::create("Last button: None","Marker Felt",32);	label->setposition(Point(winSize.wIDth / 2,winSize.height - 80));	label->setHorizontalAlignment(TextHAlignment::CENTER);	this->addChild(label);
先定义了文字,在其他地方修改。label定义成全局变量
label->setString("Last button: * ");

ok了,很简单

引用类库

1,在你的工程中添加对头文件cocos2dx\platform\third_party\win32\iconv\iconv.h的引用。
2,相应的库引用:cocos2dx\platform\third_party\win32\librarIEs\libiconv.lib。


添加汉字

先添加这两个转换函数

inline voID HelloWorld::WStrToUTF8(std::string& dest,const std::wstring& src){dest.clear();for (size_t i = 0; i < src.size(); i++){wchar_t w = src[i];if (w <= 0x7f)dest.push_back((char)w);else if (w <= 0x7ff){dest.push_back(0xc0 | ((w >> 6)& 0x1f));dest.push_back(0x80| (w & 0x3f));}else if (w <= 0xffff){dest.push_back(0xe0 | ((w >> 12)& 0x0f));dest.push_back(0x80| ((w >> 6) & 0x3f));dest.push_back(0x80| (w & 0x3f));}else if (sizeof(wchar_t) > 2 && w <= 0x10ffff){dest.push_back(0xf0 | ((w >> 18)& 0x07)); // wchar_t 4-bytes situationdest.push_back(0x80| ((w >> 12) & 0x3f));dest.push_back(0x80| ((w >> 6) & 0x3f));dest.push_back(0x80| (w & 0x3f));}elsedest.push_back('?');}}//! simple warpperinline std::string HelloWorld::WStrToUTF8(const std::wstring& str){std::string result;WStrToUTF8(result,str);return result;}
在要引用的地方添加这段就ok了
std::string text = WStrToUTF8(L"你好世界");		auto label = LabelTTF::create(text,"Arial",24);		label->setposition(Point(200,200));		this->addChild(label);
我也是看网上的,原理不是很懂,不过可以实现,要是有懂原理的,希望留个言 总结

以上是内存溢出为你收集整理的cocos2d-x 3.2文字显示,添加汉字全部内容,希望文章能够帮你解决cocos2d-x 3.2文字显示,添加汉字所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1008831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存