如题目,在3.0rc0版本中利用ui编辑器生成的并且正确工作的json文件。代码升级到3.0release后。
载入json文件发现各种控件位置全部错乱。我比对代码后发现罪魁祸首如下:
3.0release版本中CCSGUIReader.cpp类1112行widgetFromJsonDictionary方法中加入了一段代码
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);
这段代码会导致从cocostudio1.3.0.1和1.3.0.0版本中UI编辑器导出的json文件解析后位置异常。
注释上以后就正确了。这是不是有bug啊?为何3.0release版要如此解析UI文件呢?还是我使用的有问题?求大神帮忙解释一下。
此处child->SetPosition为嘛要这么搞呢。
本人新手菜鸟一枚,不是太了解此处的意思。只是发现了这个现象。注释上以后可以正常工作,我就没有深究。希望研究过这段流程的大神给解答一下。小弟感激不尽。