cocos2dx-3.3 使用编辑框(EditBox)
发布时间:2020-12-14 21:35:47 所属栏目:百科 来源:网络整理
导读:头文件要包含: #include "cocos-ext.h"USING_NS_CC_EXT; 类要继承于 class HelloWorld : public cocos2d::Layer,public EditBoxDelegate 这里有个问题,我这样写之后会报错,提示:EditBoxDeletgate不是类名或者结构名,这个纠结了很久,后来在网上看到别人
头文件要包含: #include "cocos-ext.h" USING_NS_CC_EXT; 类要继承于 class HelloWorld : public cocos2d::Layer,public EditBoxDelegate 这里有个问题,我这样写之后会报错,提示:EditBoxDeletgate不是类名或者结构名,这个纠结了很久,后来在网上看到别人用ScoreView的时候也会出现这样的问题,有人说包含目录:$(EngineRoot)就行了,我试了一下果然成功~
在类里重载编辑框的函数 //---------------------------------添加编辑框 virtual void editBoxEditingDidBegin(cocos2d::extension::EditBox* editBox); virtual void editBoxEditingDidEnd(cocos2d::extension::EditBox* editBox); virtual void editBoxTextChanged(cocos2d::extension::EditBox* editBox,const std::string &text); virtual void editBoxReturn(cocos2d::extension::EditBox *editBox); 根据函数名我们可以知道这些函数的作用
在init函数里创建编辑框 //---------------------------------添加账号框 auto pEditBox_name = EditBox::create(CCSizeMake(250,50),Scale9Sprite::create("button.png")); pEditBox_name->setPosition(ccp(visibleSize.width/2,visibleSize.height*3/4)); pEditBox_name->setFontColor(Color3B(0,0));//设置字体颜色 pEditBox_name->setPlaceHolder("Name:");//设置预置文本 pEditBox_name->setMaxLength(8);//设置最大长度 pEditBox_name->setInputMode(cocos2d::ui::EditBox::InputMode::SINGLE_LINE);//可以输入任何,但是不包括换行 pEditBox_name->setInputFlag(cocos2d::ui::EditBox::InputFlag::INITIAL_CAPS_WORD);//设置输入标志位 pEditBox_name->setReturnType(cocos2d::ui::EditBox::KeyboardReturnType::DONE);//设置返回类型 pEditBox_name->setDelegate(this);//当前类继承CCEditBoxDelegate类 pEditBox_name->setTag(101); this->addChild(pEditBox_name); //---------------------------------添加密码框 auto pEditBox_password = EditBox::create(CCSizeMake(250,Scale9Sprite::create("button.png")); pEditBox_password->setPosition(ccp(visibleSize.width/2,visibleSize.height*2/4)); pEditBox_password->setFontColor(Color3B(0,0)); pEditBox_password->setPlaceHolder("Password:"); pEditBox_password->setMaxLength(6); pEditBox_password->setInputMode(cocos2d::ui::EditBox::InputMode::NUMERIC); pEditBox_password->setInputFlag(cocos2d::ui::EditBox::InputFlag::PASSWORD); pEditBox_password->setReturnType(cocos2d::ui::EditBox::KeyboardReturnType::DONE); pEditBox_password->setDelegate(this); pEditBox_password->setTag(102); this->addChild(pEditBox_password); 然后重写编辑框的功能函数 void HelloWorld::editBoxEditingDidBegin(EditBox *editBox) { CCLOG("start edit"); } void HelloWorld::editBoxEditingDidEnd(EditBox *editBox) { CCLOG("end edit"); } void HelloWorld::editBoxReturn(EditBox *editBox) { CCLOG("editbox return"); } void HelloWorld::editBoxTextChanged(EditBox *editBox,const std::string &text) { auto editbox = (EditBox*)editBox; switch(editBox->getTag()) { case 101: CCLOG("EditBox_name changed"); m_name=text; break; case 102: CCLOG("EditBox_password changed"); m_password=text; break; default: break; } } 好了,这样编辑框就出来了
之后说说如何做个登陆的效果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |