博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2d-x3.2 EditBox的使用
阅读量:6281 次
发布时间:2019-06-22

本文共 4980 字,大约阅读时间需要 16 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "cocos2d.h"
 
//引入头文件和命名空间
#include "extensions/cocos-ext.h"
USING_NS_CC_EXT;
 
USING_NS_CC;
 
class 
GameScene : 
public 
cocos2d::Layer, 
public 
EditBoxDelegate
{
public
:
    
static 
cocos2d::Scene* createScene();
     
    
virtual 
bool 
init();
     
    
CREATE_FUNC(GameScene);
     
    
void 
funCallback(Ref* pSender);
     
    
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);
    
void 
toExtensionsMainLayer(cocos2d::Ref *sender);
     
     
private
:        
//注意不能用auto关键字
    
Size size;
    
Sprite *sprite;
    
cocos2d::Label *_TTFShowEditReturn;
    
cocos2d::extension::EditBox *_editName;
    
cocos2d::extension::EditBox *_editPassword;
    
cocos2d::extension::EditBox *_editEmail;
    
bool 
_drag;
};

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
//  Created by Jacedy on 14-8-11.
//
//
 
#include "GameScene.h"
 
USING_NS_CC;
 
cocos2d::Scene* GameScene::createScene()
{
    
auto 
scene = Scene::create();   
//创建一个场景
    
auto 
layer = GameScene::create();   
//创建一个图层
    
scene->addChild(layer);
    
return 
scene;
}
 
//初始化当前的图层
bool 
GameScene::init()
{
    
if
(!Layer::init())      
//初始化父类
        
return 
false
;
     
    
//获取屏幕大小
    
size = Director::getInstance()->getVisibleSize();
    
//auto size = Director::getInstance()->getWinSize();
     
    
//添加一个图片精灵
    
sprite = Sprite::create(
"OnePiece_1.png"
);
    
sprite->setPosition(Vec2(size.width/2, size.height/2));
    
this
->addChild(sprite);
     
    
auto 
glview = Director::getInstance()->getOpenGLView();
    
auto 
visibleOrigin = glview->getVisibleOrigin();
    
CCLOG(
"%f"
, visibleOrigin.x);
     
    
_TTFShowEditReturn = Label::createWithSystemFont(
"No edit Control return!"
"Mark Felt"
, 30);
    
_TTFShowEditReturn->setPosition(Point(visibleOrigin.x + size.width /2, visibleOrigin.y + size.height - 50));
    
addChild(_TTFShowEditReturn);
     
    
//Back Menu
    
auto 
itemBack = MenuItemFont::create(
"Back"
, CC_CALLBACK_1(GameScene::toExtensionsMainLayer, 
this
));
    
itemBack->setPosition(Point(visibleOrigin.x + size.width - 50, visibleOrigin.y + 25));
    
auto 
menuBack = Menu::create(itemBack, NULL);
    
menuBack->setPosition(Point::ZERO);
    
addChild(menuBack);
     
    
auto 
editBoxSize = Size(size.width - 100, 60);
     
    
_editName = EditBox::create(editBoxSize, Scale9Sprite::create(
"green_edit.png"
));
    
_editName->setPosition(Point(visibleOrigin.x + size.width /2, visibleOrigin.y + size.height * 3 / 4));
    
_editName->setFontName(
"Paint Boy"
);
    
_editName->setFontSize(25);
    
_editName->setFontColor(Color3B::RED);
    
_editName->setPlaceHolder(
"Name:"
);
    
_editName->setPlaceholderFontColor(Color3B::WHITE);
    
_editName->setMaxLength(8);
    
_editName->setReturnType(EditBox::KeyboardReturnType::DONE);
    
_editName->setDelegate(
this
);
    
addChild(_editName);
     
    
_editPassword = EditBox::create(editBoxSize, Scale9Sprite::create(
"orange_edit.png"
));
    
_editPassword->setPosition(Point(visibleOrigin.x + size.width / 2, visibleOrigin.y + size.height / 2));
    
_editPassword->setFont(
"American Typewriter"
, 30);
    
_editPassword->setFontColor(Color3B::GREEN);
    
_editPassword->setPlaceHolder(
"Password:"
);
    
_editPassword->setMaxLength(6);
    
_editPassword->setInputFlag(EditBox::InputFlag::PASSWORD);
    
_editPassword->setInputMode(EditBox::InputMode::SINGLE_LINE);
    
_editPassword->setDelegate(
this
);
    
addChild(_editPassword);
     
    
//bottom
    
_editEmail = EditBox::create(Size(editBoxSize.width, editBoxSize.height), Scale9Sprite::create(
"yellow_edit.png"
));
    
_editEmail->setPosition(Point(visibleOrigin.x + size.width / 2, visibleOrigin.y + size.height / 4));
    
_editEmail->setAnchorPoint(Point(0.5f, 1.0f));
    
_editEmail->setPlaceHolder(
"Email:"
);
    
_editEmail->setInputMode(EditBox::InputMode::EMAIL_ADDRESS);
    
_editEmail->setDelegate(
this
);
    
addChild(_editEmail);
     
    
return 
true
;
}
 
void 
GameScene::editBoxEditingDidBegin(cocos2d::extension::EditBox* editBox)
{
    
log
(
"editBox %p DidBegin."
, editBox);
}
 
void 
GameScene::editBoxEditingDidEnd(cocos2d::extension::EditBox* editBox)
{
    
log
(
"editBox %p DidEnd."
, editBox);
}
 
void 
GameScene::editBoxTextChanged(cocos2d::extension::EditBox* editBox, 
const 
std::string &text)
{
    
log
(
"editBox %p TextChanged, text: %s"
, editBox, text.c_str());
}
 
void 
GameScene::editBoxReturn(cocos2d::extension::EditBox *editBox)
{
    
log
(
"editBox %p was returned."
, editBox);
     
    
if
(_editName == editBox)
    
{
        
_TTFShowEditReturn->setString(
"Name EditBox return."
);
    
}
    
else 
if 
(_editEmail == editBox)
    
{
        
_TTFShowEditReturn->setString(
"Email EditBox return."
);
    
}
}
 
void 
GameScene::toExtensionsMainLayer(cocos2d::Ref *sender)
{
     
}
 
void 
GameScene::funCallback(Ref* pSender)
{
     
}

转载地址:http://ansva.baihongyu.com/

你可能感兴趣的文章
精度 Precision
查看>>
Android——4.2 - 3G移植之路之 APN (五)
查看>>
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>