首页 > 其他 > 详细

解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题

时间:2016-01-18 18:57:38      阅读:1575      评论:0      收藏:0      [点我收藏+]

笔者今天发现导入cocostudio的ui界面时,会有部分控件出现错位的现象,后来我看了一下源码,发现是部分控件是没有继承

Layout类,导致不能设置控件位置造成,原因可以看看cocos2dx 源码的CCSGUIReader.cpp文件的函数:

Widget* WidgetPropertiesReader0300::widgetFromJsonDictionary(const rapidjson::Value& data)

的最后一段

if (!dynamic_cast<Layout*>(widget))
     {
                        if (child->getPositionType() == ui::Widget::PositionType::PERCENT)
                        {
                            child->setPositionPercent(Vec2(child->getPositionPercent().x + widget->getAnchorPoint().x, child->getPositionPercent().y + widget->getAnchorPoint().y));
                        }
                        child->setPosition(Vec2(child->getPositionX() + widget->getAnchorPointInPoints().x, child->getPositionY() + widget->getAnchorPointInPoints().y));
                    }
                    widget->addChild(child);

 

从代码中可以看出来,控件需要继承Layout类才能实现位置的设置,所以,将判断语句if (!dynamic_cast<Layout*>(widget))注释掉,就不会出现

位置没有设置的问题了。

解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题

原文:http://www.cnblogs.com/HemJohn/p/5140163.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!