我创建了Node(里面有图片和标签),我实例化并添加到场景中(用C ++代码)
auto item_one = CSLoader::createNode("item.csb");
sprite->addChild(item_one);
auto r = item_one->getBoundingBox();
并且可见,但r
总是width
且height
等于zero
。这就是为什么我无法获取点击该项目的原因。为什么边界框为零以及如何更改?
在cocos studio Node
for item中,维度为542 x 542
但是。
有人可以帮忙吗?
答案 0 :(得分: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();
如果有帮助,请告诉我。