在Cocos2d-x中有类似于CCLayoutBox的东西吗?我正在寻找Cocos Studio,但一无所获。我想要一个节点,可以将其子节点放在宽度和/或高度未知的区域上 - 这样各个组件就会分散。
答案 0 :(得分:0)
我不熟悉CCLayoutBox,但我认为你想要的是Layout
。维基上有一些examples解释了如何使用它。这是其中之一:
// Create the layout
Layout* layout = Layout::create();
layout->setLayoutType(LayoutType::VERTICAL);
layout->setContentSize(Size(280, 150));
Size backgroundSize = background->getContentSize();
layout->setPosition(Vec2((widgetSize.width - backgroundSize.width) / 2.0f +
(backgroundSize.width - layout->getContentSize().width) / 2.0f,
(widgetSize.height - backgroundSize.height) / 2.0f +
(backgroundSize.height - layout->getContentSize().height) / 2.0f));
_uiLayer->addChild(layout);
Button* button = Button::create("cocosui/animationbuttonnormal.png", "cocosui/animationbuttonpressed.png");
layout->addChild(button);
LinearLayoutParameter* lp1 = LinearLayoutParameter::create();
button->setLayoutParameter(lp1);
lp1->setGravity(LinearLayoutParameter::LinearGravity::CENTER_HORIZONTAL);
lp1->setMargin(Margin(0.0f, 5.0f, 0.0f, 10.0f));
Button* titleButton = Button::create("cocosui/backtotopnormal.png", "cocosui/backtotoppressed.png");
titleButton->setTitleText("Title Button");
layout->addChild(titleButton);
LinearLayoutParameter* lp2 = LinearLayoutParameter::create();
titleButton->setLayoutParameter(lp2);
lp2->setGravity(LinearLayoutParameter::LinearGravity::CENTER_HORIZONTAL);
lp2->setMargin(Margin(0.0f, 10.0f, 0.0f, 10.0f));
Button* button_scale9 = Button::create("cocosui/button.png", "cocosui/buttonHighlighted.png");
button_scale9->setScale9Enabled(true);
button_scale9->setContentSize(Size(100.0f, button_scale9->getVirtualRendererSize().height));
layout->addChild(button_scale9);
LinearLayoutParameter* lp3 = LinearLayoutParameter::create();
button_scale9->setLayoutParameter(lp3);
lp3->setGravity(LinearLayoutParameter::LinearGravity::CENTER_HORIZONTAL);
lp3->setMargin(Margin(0.0f, 10.0f, 0.0f, 10.0f));
"为布局设置三个参数 - LinearLayoutParameter,Gravity和Margin,然后为三个UIPanel的内部小部件设置布局参数。
这里我们使用线性垂直方案,但每个重力设置为LinearLayoutParameter::LinearGravity::CENTER_HORIZONTAL
,水平显示为中心。边距显示边缘周围的间距,注意lp2的值为UIMargin(20, 20, 0, 5)
,这意味着左,上,右和按钮的间距。当左边距为20时,您可以看到textButton的位置向右偏移很少。除方向外,布局垂直方案的其他设置与水平方案相同。两种方案称为线性布局,它们使用相同的参数。"