您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x 3.1.1 学习笔记[22]代码创建GUI控件

2014-07-30 15:56 429 查看
文章出自于 http://blog.csdn.net/zhouyunxuan

这个 GUI控件很好用。

#include <ui/CocosGUI.h>
using namespace ui;


Button* btn = Button::create("CloseNormal.png");
btn->setPosition(Vec2(200, 200));
btn->addTouchEventListener([](Ref* ref,Widget::TouchEventType touchType){
static int count = 0;
if (touchType == Widget::TouchEventType::BEGAN)
{
++count;
log("Begin%d", count);
}
else if (touchType == Widget::TouchEventType::ENDED)
{
log("ENDED");
}
else if (touchType == Widget::TouchEventType::MOVED)
{
log("MOVE");
}
else if(touchType == Widget::TouchEventType::CANCELED)
{
log("CANCELED");
}

});
addChild(btn);

//    cocos2d::experimental::ui::VideoPlayer* video = cocos2d::experimental::ui::VideoPlayer::create();
//    video->setPosition(Vec2(150, 150));
//    addChild(video);

CheckBox* check = CheckBox::create("CloseNormal.png", "CloseSelected.png", "CloseSelected.png", "CloseSelected.png", "CloseSelected.png");
check->addEventListener([](Ref* ref,CheckBox::EventType type){
switch (type) {
case CheckBox::EventType::SELECTED:
log("selected");
break;
case CheckBox::EventType::UNSELECTED:
log("unselected");
break;
default:
break;
}
});
check->setPosition(Vec2(400, 400));
addChild(check);

//展示图片的
ImageView* imgView = ImageView::create("splash.png");
imgView->setScale(0.2);
imgView->setPosition(Vec2(300, 300));
addChild(imgView);

Slider* slider = Slider::create();
slider->loadBarTexture("countdown_progress_01.png");//空的图
slider->loadSlidBallTextures("CloseNormal.png", "", "");
slider->loadProgressBarTexture("countdown_progress_02.png");//满的图
slider->setPosition(Vec2(250, 250));
slider->addEventListener([](Ref* ref,Slider::EventType type){
auto s = static_cast<Slider*>(ref);
log("value is %d", s->getPercent());
});
addChild(slider);

LoadingBar* loadingBar = LoadingBar::create("countdown_progress_02.png");
loadingBar->setPosition(Vec2(500, 500));
loadingBar->setPercent(10);
addChild(loadingBar);

// Create the line wrap
Text* text = Text::create("Text can line wrap","AmericanTypewriter",32);
text->ignoreContentAdaptWithSize(false);
text->setSize(Size(280, 150));//设置字体会自动换行的范围
text->setTextHorizontalAlignment(TextHAlignment::CENTER);
text->setPosition(Vec2(300, 200));
addChild(text);

TextField* textField = TextField::create("input word", "AmericanTypewriter", 30);
//限制输入
textField->setMaxLengthEnabled(true);
textField->setMaxLength(20);

textField->setPasswordEnabled(true);
textField->setPasswordStyleText("*");

textField->setTextHorizontalAlignment(TextHAlignment::CENTER);
textField->setTextVerticalAlignment(TextVAlignment::CENTER);

textField->setPosition(Vec2(400, 500));

textField->addEventListener([&](Ref* ref, TextField::EventType type){
switch (type) {
case TextField::EventType::ATTACH_WITH_IME:
log("attach_with_me");
break;
case TextField::EventType::DELETE_BACKWARD:
log("delete backward");
break;
case TextField::EventType::DETACH_WITH_IME:
log("detach with me");
log("%s",static_cast<TextField*>(ref)->getStringValue().c_str());
break;
case TextField::EventType::INSERT_TEXT:
log("insert text");
break;
default:
break;
}
});

addChild(textField);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: