cocos2dx-3.3 使用编辑框(EditBox)

cocos2dx-3.3 使用编辑框(EditBox),第1张

概述头文件要包含: #include "cocos-ext.h"USING_NS_CC_EXT; 类要继承于 class HelloWorld : public cocos2d::Layer ,public EditBoxDelegate 这里有个问题,我这样写之后会报错,提示:EditBoxDeletgate不是类名或者结构名,这个纠结了很久,后来在网上看到别人用ScoreView的时候也会出现这

头文件要包含:

#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;	}}

好了,这样编辑框就出来了


之后说说如何做个登陆的效果

总结

以上是内存溢出为你收集整理的cocos2dx-3.3 使用编辑框(EditBox)全部内容,希望文章能够帮你解决cocos2dx-3.3 使用编辑框(EditBox)所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1062331.html

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

发表评论

登录后才能评论

评论列表(0条)

保存