Cocos2d-x3.3Final3 Button常用成员函数(C++)

Button * button = Button::create("cocosui/animationbuttonnormal.png"); //新建按钮

Button* button = Button::create("cocosui/button.png","cocosui/buttonHighlighted.png"); //新建按钮

button->addTouchEventListener(CC_CALLBACK_2(UIButtonTest::touchEvent,this)); //设置按钮的触摸事件和作用目标(继承自Widget)

button->setZoomScale(0.4f);

//3.3新增函数,按钮点击后会变大为原来的系数1+这里的系数0.4,

//可搭配Slider配合使用,slider->getPercent()

//float zoomScale = percent * 0.01;

//btn->setZoomScale(zoomScale);


button->setpressedActionEnabled(true); //设置按钮是否启用点击缩放的效果

button->setopacity(100); //继承自node,设置node透明度,0完全透明,100完全不透明

button->loadTexturenormal("cocosui/animationbuttonnormal.png"); //加载正常情况下的填充图

btn->loadTexturepressed("cocosui/animationbuttonpressed.png"); //加载按下按钮情况下的填充图

button->setScale9Enabled(true); //是否启用九宫格显示模式

button->setContentSize(Size(150,70)); //设置按钮的大小(继承自Node)

button->setPosition(Vec2(widgetSize.width / 2.0f,widgetSize.height / 2.0f)); //设置按钮的位置(继承自Node)

button->runAction(Sequence::create(FadeIn::create(0.5),DelayTime::create(1.0),FadeOut::create(0.5),nullptr)); //执行一个动作或动作序列(继承自Node)

Touch事件处理函数的四种Touch状态:

Widget::TouchEventType::ENDED:

Widget::TouchEventType::CANCELED:

Widget::TouchEventType::MOVED:

Widget::TouchEventType::BEGAN:


button2->setName("normal"); //设置名字

button->setColor(Color3B::GREEN); //设置按钮的颜色

button2->setPosition(button->getPosition() + Vec2(100,0)); //(设置位置参数可以这样使用相加)

btn2->setAnchorPoint(Vec2(0,0.5)); //设置锚点

button->setTitleText("Title Button!"); //设置按钮的标题

button->setTitleColor(Color3B::YELLOW); //标题颜色

button->setFlippedX(true); //设置按钮在X方向上翻转

auto label = button->getTitleRenderer(); //按钮的标题渲染器是一个label

button->runAction(RepeatForever::create(Sequence::create(Scaleto::create(1.0f,1.2f),
Scaleto::create(1.0f,1.0f),nullptr))); //按钮一直重复膨胀1.2倍和回复原状的动作

{ //点击删除自己

Layout *layout = Layout::create();
layout->setContentSize(widgetSize * 0.6f);
layout->setBackGroundColor(Color3B::GREEN);
layout->setBackGroundColorType(Layout::BackGroundColorType::SOLID);
layout->setBackGroundColorOpacity(100);
layout->setPosition(Size(widgetSize.width/2,widgetSize.height/2));
layout->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
layout->setTag(12);
_uiLayer->addChild(layout);


Button* button = Button::create("cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
button->setPosition(Vec2(layout->getContentSize().width / 2.0f,layout->getContentSize().height / 2.0f));
// button->addTouchEventListener(this,toucheventselector(UIButtonTest::touchEvent));
button->addTouchEventListener(CC_CALLBACK_2(UIButtonTestRemoveSelf::touchEvent,this));
layout->addChild(button);


auto layout = _uiLayer->getChildByTag(12);
layout->removeFromParentAndCleanup(true);
//删除自己删除自己,注意按钮是放在Layout中

}


button->ignoreContentAdaptWithSize(false); //继承自Widget,设置参数为true,setContentSize失效,大小等于函数getVirtualRendererSize的返回值

{//设置按钮标题效果

Label *title = button->getTitleRenderer();
title->enableShadow(Color4B::BLACK,Size(2,-2));
//阴影

title2->enableOutline(Color4B::GREEN,3); //It only works on IOS and Android when you use System fonts

}


button2->setnormalizedPosition(Vec2(0.8f,0.5f)); //等价

void setnormalizedPosition(Vec2 pos) { Size s = getParent()->getContentSize(); _position = pos * s; }

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...