//下面这段代码添加到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文字显示,添加汉字所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)