您的位置:首页 > 移动开发 > Cocos引擎

决定放弃 Cocos Studio

2015-09-21 03:01 507 查看
本是怀着激动的心情摒弃cocosbuilder, 转为用cocos studio

结果发现完全无法胜任工作

cocos studio 缺点:

启动速度极慢 (吃多少内存没有详细去看)

功能很多, 但是真正提供实用的细节完全没有

bug, 会导致项目假死, 升级后工程一直假死, 重新打开也一样

bug, 会导致操作时崩溃

强推更新, 这个软件去年接触过一次, 就因为不稳定删掉了, 而它并不给你带来宽容, 升级都是强制性, 虽然可以点x, 但是底部按钮只有一个”升级”, 点了各种问题就出来了, 就上面说的假死问题

自定义触碰,点击事件构造起来极其复杂, 需要两个类, 以及一个单例来实现, 之前写我参照英文, 中文官方代码, 以及demo代码, 都没有实现成功, 官方是否应该反省一下这个问题的严重性, 你既然很多内容都简化了, 为什么偏偏和自己的csb文件对接, 都能这么费劲

csb读取后的查找子元素的方式居然用递归遍历查找, 多么浪费效率, 为了找一个变量对象, 遍历整个csb的树形结构, 官方到底想什么呢

cocosbuidler 缺点:

兼容性差

很久未更新, 可以去github搜 cocosbuilder_quick3.3版本, 这个是国人基于cocosbuilder3beta开发支持更新后的cocosstudio, 我试用了一下, 和官方beta4版没什么区别

应对两个不同构建对象的方法, 我使用

Map<string, Node*> Vars;


来实现, 这个代码放到捕捉ccb/csb内创建的对象,

在子类创建内部类:

class Keys:public KeyBoard{
public:
    string txt_title = "txt_title";
    string txt_content = "txt_content";
    string bt_yes = "bt_yes";
    string bt_no = "bt_no";
    string menu = "menu";
    string mcContent = "mcContent";
    string mcTitle = "mcTitle";
};
Keys keys;


然后通过

auto txtContent = dynamic_cast<Label*>(Vars.at(keys.txt_content));


来调用对象

本身Map是支持自动对Ref对象retain和release的, 其次不需要对每个ccb/csb创建的对象都建立内部私有变量, 这样很麻烦, 也很不好查找

总之, cocos studio 问题太多了, 官方不注重细节和性能, 只为了堆技术堆功能, 最后舍弃的人会越来越多, 另外值得一提的是, cocos2dx 整天更新apii名称, 今天用shareInstance(), 明天用getInstance(), 后天集成到Director里面去, 各种帮助, 注释是过时的, 真是折腾够了, 下一步开发的时候注意点, 有计划的进行并且能维持广大开发者的良性发展.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: