最新版本Cocos2d-x 本想给大家带来完美的体验,但由于测试的准备仍不够充分,导致了部分UI在游戏中的显示和编辑器里不一致。
问题详情:
今天经过几位用户提供的示例工程发现,如果Ui界面含有父节点与子节点的锚点设置不一致,则会在解析时出现显示错位的问题。
编辑器中的样子
3.0版本显示的效果:
可以看到,子节点的位置明显偏移。
经过查验,这个问题是由于Cocos2d-x3.0版本和Cocos2d-x2.2.x版本底层差异过大,但解析方面未做到足够的兼容性导致的。
目前我们的工程师已经紧急修复了该问题,并将代码临时提交到了:
https://github.com/cocos2d/cocos2d-x/pull/6403/files
主要修改了一下两行:
百分比模式下:
child->setPositionPercent(Point(child->getPositionPercent().x + widget->getAnchorPoint().x, child->getPositionPercent().y + widget->getAnchorPoint().y));
正常模式下:
child->setPosition(Point(child->getPositionX() + widget->getAnchorPointInPoints().x, child->getPositionY() + widget->getAnchorPointInPoints().y));
这里主要是添加了父节点的偏移量,如果大家使用GUIReader读取json文件修改以上方法就可以解决界面错误的问题。
如果大家需要使用代码设置坐标,您可能需要参考上面的方法修改坐标设置方法。
问题详情:
今天经过几位用户提供的示例工程发现,如果Ui界面含有父节点与子节点的锚点设置不一致,则会在解析时出现显示错位的问题。
编辑器中的样子

3.0版本显示的效果:

可以看到,子节点的位置明显偏移。
经过查验,这个问题是由于Cocos2d-x3.0版本和Cocos2d-x2.2.x版本底层差异过大,但解析方面未做到足够的兼容性导致的。
目前我们的工程师已经紧急修复了该问题,并将代码临时提交到了:
https://github.com/cocos2d/cocos2d-x/pull/6403/files
主要修改了一下两行:
百分比模式下:
child->setPositionPercent(Point(child->getPositionPercent().x + widget->getAnchorPoint().x, child->getPositionPercent().y + widget->getAnchorPoint().y));
正常模式下:
child->setPosition(Point(child->getPositionX() + widget->getAnchorPointInPoints().x, child->getPositionY() + widget->getAnchorPointInPoints().y));
这里主要是添加了父节点的偏移量,如果大家使用GUIReader读取json文件修改以上方法就可以解决界面错误的问题。
如果大家需要使用代码设置坐标,您可能需要参考上面的方法修改坐标设置方法。