cocos2d-x3.0输入框

我要实现很简单的像下面的东东:

cocos2d-x3.0输入框_第1张图片

左边的是LabelTTF,右边用EditBox。这里有个建议,大家写代码的就不要再用CC前缀的,有命名空间了还用那玩意干毛呢。。。纯粹是cocos2d-x作者仿制的cocos2d的不好的东东。

好,下面写代码了:

	CCDictionary *strings = CCDictionary::createWithContentsOfFile("word.xml");

	const char *keyWordsFind = ((String*)strings->objectForKey("KeyWordsFind"))->getCString();
	const char *suarAyaFind = ((CCString*)strings->objectForKey("SuarAyaFind"))->getCString();

	auto labelKeywordFind = LabelTTF::create(keyWordsFind, "Arial", 24);
	labelKeywordFind->setPosition( ccp(labelKeywordFind->getContentSize().width/2 , visibleSize.height - 50) );
	addChild(labelKeywordFind, 1);

	auto labelSuraAyaFind = LabelTTF::create(suarAyaFind, "Arial", 24);
	labelSuraAyaFind->setPosition( ccp(labelSuraAyaFind->getContentSize().width/2, visibleSize.height - 100) );
	labelSuraAyaFind->setAnchorPoint(ccp(0.5,0.5));
	addChild(labelSuraAyaFind, 1);

	auto keyWordFindBox = createMyEditBox("test.png", CCSizeMake(200, 30),
		ccp(labelKeywordFind->getContentSize().width+100, visibleSize.height - 50) );

	auto suraAyaFindBox = createMyEditBox("test.png", CCSizeMake(200, 30),
		ccp(labelSuraAyaFind->getContentSize().width+100, visibleSize.height - 100) );

	addChild(keyWordFindBox, 1);
	addChild(suraAyaFindBox,1);

createMyEditBox函数是我订制的一个函数,因为很多东西一样,避免重复代码。

EditBox* HelloWorld::createMyEditBox( std::string spriteFolder,Size& size, Point& position )
{
	CCScale9Sprite* sacel9Spr = CCScale9Sprite::create(spriteFolder.c_str());
	auto box = CCEditBox::create(size, sacel9Spr);
	box->setPosition(position);
	box->setFontColor(ccc3(255, 228, 173));
	box->setInputMode(kEditBoxInputModeAny);
	box->setInputFlag(kEditBoxInputFlagInitialCapsWord);
	box->setFont("Arial", 24);

	return box;
}

效果是上图。

你可能感兴趣的:(cocos2d-x3.0输入框)