解决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有位置設置,
在游戲運行中也不會看到設置位置。
轉載于:https://www.cnblogs.com/HemJohn/p/5140163.html
總結
以上是生活随笔為你收集整理的解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 他想去追是什么歌?
- 下一篇: 求一个好听的水果捞名字。