笔者今天发现导入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类才能实现位置的设置,而UIPanel类不继承Layout类,所以不会进行位置设置,即使cocostudio有位置设置,

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

最新文章

  1. js string 转 int Number()
  2. Linux线程学习(一)
  3. CloudStack服务引擎配置(cloud-engine-service模块)
  4. MySQL中MySQL X.X Command Line Client一闪而过的问题
  5. bzoj4009
  6. PPTPD/L2TP/IPSec VPN一键安装包 For CentOS 6
  7. sybase从表A创建表B
  8. MVVM 介绍
  9. git的sshkey生成步骤
  10. neutron二
  11. 【安富莱】【RL-TCPnet网络教程】第11章 RL-TCPnet调试方法
  12. Android Studio插件GsonFormat
  13. php array_map与array_walk使用对比
  14. 【第四十章】Spring Boot 自定义拦截器
  15. IIS 7.5 上传文件大小限制
  16. Android上面通过URL来启动本地应用
  17. 【大数据系列】MapReduce详解
  18. openstack中的server
  19. talib 中文文档(七):Overlap Studies Functions
  20. python sort与sorted使用笔记

热门文章

  1. 洛谷P1132 数字生成游戏
  2. 从各处收集的switch语句
  3. 判断jquery对象是否在执行动画
  4. [Android]简略的Android消息机制源码分析
  5. [Android]四大组件的运行状态
  6. MySQL数据库(4)
  7. ASM 磁盘组的的scrip
  8. 走进docker的世界之入门篇
  9. JAVA基础之线程
  10. SpringBoot 2.x (15):Actuator监控