解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题
笔者今天发现导入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有位置设置,
在游戏运行中也不会看到设置位置。
最新文章
- js string 转 int Number()
- Linux线程学习(一)
- CloudStack服务引擎配置(cloud-engine-service模块)
- MySQL中MySQL X.X Command Line Client一闪而过的问题
- bzoj4009
- PPTPD/L2TP/IPSec VPN一键安装包 For CentOS 6
- sybase从表A创建表B
- MVVM 介绍
- git的sshkey生成步骤
- neutron二
- 【安富莱】【RL-TCPnet网络教程】第11章 RL-TCPnet调试方法
- Android Studio插件GsonFormat
- php array_map与array_walk使用对比
- 【第四十章】Spring Boot 自定义拦截器
- IIS 7.5 上传文件大小限制
- Android上面通过URL来启动本地应用
- 【大数据系列】MapReduce详解
- openstack中的server
- talib 中文文档(七):Overlap Studies Functions
- python sort与sorted使用笔记