做单机游戏可能不会用到,但是对于联机类游戏,都是需要做登录界面的。
登录界面的话,肯定需要账号输入框,密码框等。另外聊天界面也会涉及到输入框。
这里简单做了一个登录界面。
首先需要引入头文件
#include "extensions\cocos-ext.h"
USING_NS_CC_EXT;
附上代码两个输入框的代码
//账号框 设置输入8个字符
auto editbox1 = EditBox::create(Size(200, 35), Scale9Sprite::create("editbox.png"));
editbox1->setAnchorPoint(Point(0, 0));
editbox1->setPosition(Point(visibleSize.width *0.3, visibleSize.height*0.55));
editbox1->setPlaceHolder("name:");//占位字符
editbox1->setMaxLength(8);
editbox1->setFontColor(Color3B::BLACK);//设置输入字体的颜色
editbox1->setTag(1);
this->addChild(editbox1,2);
//密码框 password
auto editbox2 = EditBox::create(Size(200, 35), Scale9Sprite::create("editbox.png"));
editbox2->setAnchorPoint(Point(0, 0));
editbox2->setPosition(Point(visibleSize.width *0.3, visibleSize.height*0.4));
editbox2->setPlaceHolder("mima:");
editbox2->setPlaceholderFontColor(Color3B::RED);//设置占位字体的颜色
editbox2->setFontColor(Color3B::BLACK);
editbox2->setInputMode(EditBox::InputMode::NUMERIC);//设置输入类型 数字及特殊符号输入
editbox2->setInputFlag(EditBox::InputFlag::PASSWORD);//设置输入标志 密码输入标志(显示为*)
editbox2->setMaxLength(8);
editbox2->setTag(2);
this->addChild(editbox2,2);
第一的输入框可以输入任意字符
第二个输入框只能输入规定的字符类型(设置输入类型)
获取输入框字符的代码:
void TestSceneOne::Compare()
{
auto editbox1 = (EditBox*)this->getChildByTag(1);
CCLOG("editbox1---%s", editbox1->getText());
auto editbox2 = (EditBox*)this->getChildByTag(2);
CCLOG("editbox2---%s", editbox2->getText());
if (strcmp(editbox1->getText(),editbox2->getText()) == 0)//字符char型数组比较 string型直接==
{
log("OK");
SceneChange();
}
}
这里另外设的方法所以需要先获取指针 用editbox1->getText() 获取就行了
下面是用于调试用的输出
用这种方式可以直接调出输入键盘,已经用手机测试。在电脑上是弹出右边的input框。最右边是调试的输出结果。
另外输入框还有更多的属性设置;
返回值类型:EditBox::KeyboardReturnType::(DEFAULT,DONE,SEND,SEARCH,G0)
键盘输入类型:EditBox::InputMode:: (ANY,EMAIL_ADDRESS,NUMERIC,PHONE_NUMBER,URL,DECIMAL)
分别表示(默认输入,电子邮件地址输入,数字及特殊符号输入,电话号码输入,URL输入,数字及实数输入)
输入标志类型:EditBox::InputFlag::(PASSWORD,SENSITIVE,INITIAL_CAPS_WORD,INITIAL_CAPS_SENTENCE,INITIAL_CAPS_CHARACTERS)
分别表示(密码输入(显示为*),关闭提示功能,每个单词首字母大写,每个句子首字母大写,所有字母大写)