本是怀着激动的心情摒弃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里面去,各种帮助,注释是过时的,真是折腾够了,下一步开发的时候注意点,有计划的进行并且能维持广大开发者的良性发展.