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

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

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

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

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

的最后一段

if (!dynamic_cast(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类才能实现位置的设置,而UIPanel类不继承Layout类,所以不会进行位置设置,即使cocostudio有位置设置,

在游戏运行中也不会看到设置位置。

转载于:https://www.cnblogs.com/HemJohn/p/5140163.html

更多相关:

  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 示例 2:...

  • 问题描述 centos7虚拟机如何设置开机自启动网络设置 解决方法 切换到root用户进入到网络设置的目录下面cd /etc/sysconfig/network-scripts/当前目录下面有一个类似于ifcfg-ens33,使用vim打开文件进行编辑,将ONBOOT=no修改成为yes就可以了...

  •  摘自https://zhidao.baidu.com/question/983204331427010139.html java中如何设置Jtabbedpane为透明 20在Jtabbedpane下有背景图片,如何设置让他透明呢?0oo宝贝xxX | 浏览 1147 次 |举报我有更好的答案 2014-12-30最佳答案你好,你可以...

  •   本文全文参考:http://jingyan.baidu.com/album/4e5b3e1957979d91901e24f1.html?picindex=1,谢谢        对于很多的linux初学者来说,最开始学习linux时通常是在虚拟机上进行的,然而对于新手来说虚拟机联网会对他们来说是比较困难的。这里我根据自己的经验写了...

  • 转载自:http://www.chinaz.com/web/2015/0424/401323.shtml   大多数的Nginx安装指南告诉你如下基础知识——通过apt-get,或yum安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然...

  • 1.先去qq邮箱,设置,账户 开启pop3服务,假如之前开启过,最好关闭之后重新开启 最新版本的必须使用邮箱的独立密码才可以收取邮件 (否则就算你之前开通了,也无法用你的qq账号和密码收取邮件的)   2.高级设置里面,需要勾选ssl加密,pop3端口设置为995 另外,记得不要同步删除邮件服务器的邮件 http://jingyan....