0

我已经创建了节点(里面有图像和标签),我实例化并添加到场景中(在 C++ 代码中)

    auto item_one = CSLoader::createNode("item.csb");
    sprite->addChild(item_one);
    auto r = item_one->getBoundingBox();

它是可见的,但r总是具有width并且 height等于zero。这就是我无法点击该项目的原因。为什么边界框为零以及如何更改?在cocos studio Nodefor item 的尺寸为542 x 542but。任何人都可以帮忙吗?

4

1 回答 1

1

CSLoader::createNode("fileName.csb") 加载整个场景/图层(取决于您创建的内容)。如果您想要特定子项的尺寸,请使用:

auto imageNode = item_node->getChildByName("NameOfChildInCocostudio");
auto spriteImage = dynamic_cast<Sprite*>(imageNode);
auto spriteBoundingBox = spriteImage->getBoundingBox();

此时你应该得到图像的宽度和高度。如果你想要它出现的大小,你必须将边界乘以节点比例。使用下面的代码来做到这一点。

auto onScreenWidth = spriteBoundingBox.width * spriteNode->getScaleX();
auto onScreenHeight = spriteBoundingBox.height * spriteNode->getScaleY();

让我知道这是否有帮助。

于 2015-11-12T09:25:17.903 回答