加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2d-x LayoutComponent的使用

发布时间:2020-12-14 16:54:54 所属栏目:百科 来源:网络整理
导读:void touchEvent(Ref *pSender,cocos2d::ui::Widget::TouchEventType type); cocos2d::LayerColor* _baseLayer; void HelloWorld::init2(); ------------------------------------------------------------------------------------------------------------

void touchEvent(Ref *pSender,cocos2d::ui::Widget::TouchEventType type);
cocos2d::LayerColor* _baseLayer;
void HelloWorld::init2();

------------------------------------------------------------------------------------------------------------

Size widgetSize = Director::getInstance()->getVisibleSize();
_baseLayer = LayerColor::create();
_baseLayer->setColor(Color3B(50,100,0));
_baseLayer->setOpacity(100);
_baseLayer->setContentSize(Size(200,200));
this->addChild(_baseLayer);

Button* button = Button::create("animationbuttonnormal.png");
CCLOG("content size should be greater than 0: width = %f,height = %f",button->getContentSize().width,
button->getContentSize().height);
button->setPosition(Vec2(widgetSize.width / 2.0f,widgetSize.height / 2.0f));
button->addTouchEventListener(CC_CALLBACK_2(HelloWorld::touchEvent,this));
button->setZoomScale(0.4f);
button->setPressedActionEnabled(true);
this->addChild(button);


void HelloWorld::touchEvent(Ref *pSender,Widget::TouchEventType type)
{
switch (type)
{
case Widget::TouchEventType::BEGAN:
break;

case Widget::TouchEventType::MOVED:
break;


case Widget::TouchEventType::ENDED:
{
Size widgetSize = Director::getInstance()->getVisibleSize();
Size layerSize = Size(300,200);
if (layerSize.width == widgetSize.width && layerSize.height == widgetSize.height)
_baseLayer->setContentSize(Size(200,200));
else
_baseLayer->setContentSize(widgetSize);
//ui:Helper::doLayout(_baseLayer);
init2();
}
break;


case Widget::TouchEventType::CANCELED:
break;


default:
break;
}
}


void HelloWorld::init2()
{
Sprite* leftTopSprite = Sprite::create("CloseSelected.png");
LayoutComponent* leftTop = LayoutComponent::bindLayoutComponent(leftTopSprite); leftTop->setHorizontalEdge(LayoutComponent::HorizontalEdge::Left); leftTop->setVerticalEdge(LayoutComponent::VerticalEdge::Top); _baseLayer->addChild(leftTopSprite); Sprite* leftBottomSprite = Sprite::create("CloseSelected.png"); LayoutComponent* leftBottom = LayoutComponent::bindLayoutComponent(leftBottomSprite); leftBottom->setHorizontalEdge(LayoutComponent::HorizontalEdge::Left); leftBottom->setVerticalEdge(LayoutComponent::VerticalEdge::Bottom); _baseLayer->addChild(leftBottomSprite); Sprite* rightTopSprite = Sprite::create("CloseSelected.png"); LayoutComponent* rightTop = LayoutComponent::bindLayoutComponent(rightTopSprite); rightTop->setHorizontalEdge(LayoutComponent::HorizontalEdge::Right); rightTop->setVerticalEdge(LayoutComponent::VerticalEdge::Top); _baseLayer->addChild(rightTopSprite); Sprite* rightBottomSprite = Sprite::create("CloseSelected.png"); LayoutComponent* rightBottom = LayoutComponent::bindLayoutComponent(rightBottomSprite); rightBottom->setHorizontalEdge(LayoutComponent::HorizontalEdge::Right); rightBottom->setVerticalEdge(LayoutComponent::VerticalEdge::Bottom); _baseLayer->addChild(rightBottomSprite); ui::Helper::doLayout(_baseLayer); }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读