说实在的,自学cocos到了迷茫区了,因为要结合cocos studio一起方便也能提高工作效率。没办法初学的我,在中途突然去接触了lua让自己深刻感受到把cocos转lua是多么需要坚实的cocos基础。因此,这几天又回过头来学了cocos,也在别人的帮助重新理了一下cocos,并深深通过与cocos studio的区分,来更深入理解和学习。
先说cocos吧,它大致要包括Node,scene,layer,sprite,menu,label等等,cocos studio主要是是以layout,imageview,button,text/textAtlas等等一系列控件。主要是以下图分布。
2者从图中可以看出有很多相互通的地方,比如:layer可以在cocos studio中用layout同等表示,可以互相对上号,只不过cocos studio中表现的很直观,因为有各种控件提供观察,而且属性都非常容易看懂。相对来说,这个还是非常方便的。
但是对于我这样的初学者,不明白其中关系,以为2者都是一样的,用统一的体系和代码,只要导入cocos studio生成的csb文件就可以用cocos的代码(其实这样也没错啊),可惜的是我自己当时没搞清楚,hello word生成的项目用到了cocos studio的方式把资源导入,我还天真的以为就该这么写的,结果当遇到另外一种导入方式的时候我就郁闷了。其实就是cocos的getChildByName和cocos studio的seekWidgetByName这2个导入图片。
今天终于明白了一点,cocos里的可以理解为节点,就是父节点和子节点的关系,一层镶嵌着一层,或者有些是并行层。而使用cocos studio的时候,node里面的都可以用,但是这个反过来就不行了,因为有些就不兼容了。
这就可以解释为什么我刚才导入文件的时候有2种方式了
Button* button = (Button *)rootNode->getChildByName("jump");//cocos的导入方式
auto button = (Button*)Helper::seekWidgetByName(rootNode, "jump");cocos studio导入方式
2者其实都可以用的,毕竟我用的是csb文件,这就不影响什么。只是初学者的我,分不清,也会时常认为这只是2个不同写法,一个功能,却忘了里面真正的原因。