3.0正式版坐标问题

3.0 正式版的坐标跟锚点逻辑跟 rc0 不一致,这个没说?

CCSGUIReader.cpp line:1114 行 , load cocostudio child节点,这样setPostion逻辑变了要转成父节点锚点无关的坐标,也不可能直接除个2 就完事了吧… ?太坑了,这也能叫stable版啊…

            if (!dynamic_cast<Layout*>(widget))
                {
                    if (child->getPositionType() == cocos2d::ui::POSITION_PERCENT)
                    {
                        child->setPositionPercent(Point(child->getPositionPercent().x + 0.5f, child->getPositionPercent().y + 0.5f));
                    }
                    child->setPosition(Point(child->getPositionX() + widget->getSize().width / 2.0f, child->getPositionY() + widget->getSize().height / 2.0f));
                }
                widget->addChild(child);

:12::12::12:这个,习惯就好了…

本人没用过cocostudio 不敢发表意见啊哈!

但是这里的几句代码的意思是可以看得明白的。
X方向百分比增加50% 子节点在父节点的位置增加父节点宽度的一半

遇到同样的问题了。就是这段代码。。。坑爹啊。。。查了许久。升级了cocostudio重新导出。最后发现读入的数据是对的。又tm的打了内存断点结果发现是这里改了。。。以比对代码。。。发现居然是3.0release版加上的。。。

:14: :10:

你好,这段代码是因为新的引擎添加了size属性,为了兼容老数据,并保证CocoStudio导出数据正常显示而添加的。

但是如果使用程序去修改坐标的话,会由于默认起始点变了,而显示位置错误。您如果需要使用程序动态调整界面,请设置坐标时以左下角为起始点。

setPostion 行为变了已经无力吐槽了。。。
但这个直接 /2 的兼容也不靠谱啊,怎么能保证父节点锚点在 (0.5,0.5)处。

那也不对啊,如果之前编辑器里面设置父节点在左上角,子控件的pos在(0,0),那原来子控件位置在左上角,这样改了后直接跑到中间去了。
就算要做兼容也得取父控件真实的锚点位置才对

那是不是带来另外一个问题,stable后cocossdudio里面,设置控件的坐标是相对父节点的中心点,而程序控制控件的坐标,是相对于父节点的左下角,太不和谐了:12:

你好,我们正在修改该问题,稍后我将会发帖声明,并提供修复方法。

你好,我们正在修复该问题。同时我希望您能跟我们联系一下,并提供您的示例,我们针对性的测试一下这个内容。我的QQ522120460.感谢您对CocoStudio的支持。

这个解析是有问题的,我们正在修复,应该加上父节点的anchopointinpoints偏移

这个解析是有问题的,我们正在修复,应该加上父节点的anchopointinpoints偏移。。

您好,这个问题已经修复了,请查看http://www.cocoachina.com/bbs/read.php?tid=199751