向scene中添加一个按钮
// button
auto button = Button::create("Button_Normal.png", "Button_Press.png",
"Button_Disable.png");
button->setTitleText("Button 1");
button->setPosition(Vec2(visibleSize.width/2, visibleSize.height - 170));
auto rabbit4 = Sprite::create("origin_red.png");
rabbit4->setPosition(400,400);
rabbit4->setVisible(false);
scene->addChild(rabbit4, 4);
button->addTouchEventListener([& rabbit4](Ref *sender, Widget::TouchEventType type) {
switch(type) {
case ui::Widget::TouchEventType::BEGAN:
break;
case ui::Widget::TouchEventType::ENDED:
log("cout");
break;
}
});
scene->addChild(button);
向lambda表达式中传递参数失败,不知道怎么做。
还有怎么不显示按钮的图片,有点搞不懂.
不过终端有输出。
// checkbox
auto checkbox = CheckBox::create("CheckBox_Normal.png",
"CheckBox_Press.png",
"CheckBoxNode_Normal.png",
"CheckBox_Disable.png",
"CheckBoxNode_Disable.png");
checkbox->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 400));
checkbox->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
switch (type)
{
case ui::Widget::TouchEventType::BEGAN:
break;
case ui::Widget::TouchEventType::ENDED:
std::cout << "checkbox 1 clicked" << std::endl;
break;
default:
break;
}
});
scene->addChild(checkbox);
这个checkbox还不错。
反复点时两种情况。
// loadingbar
auto loadingBar = LoadingBar::create("LoadingBarFile.png");
loadingBar->loadTexture("LoadingBarFile.png");
loadingBar->setPercent(20.0);
loadingBar->setDirection(LoadingBar::Direction::LEFT);
loadingBar->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 400));
scene->addChild(loadingBar, 1);
loadingBar->schedule([loadingBar](float f){
if (loadingBar->getPercent() < 100.0)
{
loadingBar->setPercent(loadingBar->getPercent() + 10.00f);
std::cout << "LoadingBar percent: " << loadingBar->getPercent() << std::endl;
}
else
{
loadingBar->unschedule("update_loading_bar");
std::cout << "Loading complete!" << std::endl;
}
}, 0.5f, "update_loading_bar");
这个也看上去不错,已经走完的效果。
slider看上也不错,可以自由拖动。
// slider
auto slider = Slider::create();
slider->loadBarTexture("Slider_Back.png"); // what the slider looks like
slider->loadSlidBallTextures("SliderNode_Normal.png", "SliderNode_Press.png", "SliderNode_Disable.png");
slider->loadProgressBarTexture("Slider_PressBar.png");
slider->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - (++index) * 40));
slider->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
switch (type)
{
case ui::Widget::TouchEventType::BEGAN:
break;
case ui::Widget::TouchEventType::ENDED:
std::cout << "slider moved" << std::endl;
break;
default:
break;
}
});
scene->addChild(slider);
文本框什么也不能动。
scene->addChild(slider);
// textfield
auto textField = TextField::create("TextField - Edit Me", "Marker Felt.ttf", 30);
textField->setPosition(Vec2(visibleSize.width / 2, visibleSize.height - 550));
textField->setMaxLength(10); // max number of chars user can enter
textField->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
std::cout << "editing a TextField" << std::endl;
});
scene->addChild(textField);