Cocos2d-x….放东西的规则

来源:互联网 发布:手机矢量图软件 编辑:程序博客网 时间:2024/05/17 08:36


   原本想把这篇文章命名为《cocos2d-x数据结构基础》…后来想想,“数据结构”这个词对于很多新手这个标题很吓人的~!数据结构!!究竟是嘛玩意啊!!其实我倒觉得,这个名词的发明者唐纳德·克努特也是不得已而为之起了这么一个抽象的名字,因为他那个年代(1968年)的计算机还是只能处理数据的家伙,多媒体?那时候的计算机只能读纸片呢~~所以我们只好原谅他了~不过我们今天既然讲的是cocos2d-x,所以我们可以举一些更有意思的例子。

大家应该都进过仓库,各种各样的仓库,放工具的,放原材料的,放书的..(好吧..那是图书馆)。我对仓库的定义就是:放东西的地方。

好吧,肯定有同学会认为我这句话属于脱裤子放屁——菊花紧啊。但是大家想过一个问题没有,如果你去一个仓库找东西,你会如何做呢?大家可以假装自己是一个程序,模仿一下命令行输出调试信息,例如我的方式是:

进入仓库;

随机找一个方向;

随机行走一定距离;

随机抓取一个东西;

查看是否是我需要的;

如果是,则结束;

如果不是,重新开始;

      

大家对我这种找东西的方式有何想法呢?99%的同学会认为我是白痴,1%的同学则会认为我的脑子里有一坨刘翔。

那正确的方式呢?大家可以回想一下自己去图书馆找C++ primer时候的流程:

进入图书馆;

寻找计算机书籍(第一层);

找到计算机书籍,再找编程语言(第二层);

找到编程语言,从头开始找;

找到《C++ primer》,结束;

 

现在大家发挥一下自己的绘画才能,绘制一下这个图书馆书籍的分类情况


搞定。

这个图画的非常丑,因为Mac上的Word做的非常烂,可我手头上只能用这个画,所以大家稍微忍一下。

接下来呢,我们要在编程语言下面增加一门Python语言,然后图就变成了这样。


这种结构,我们称之为“树状结构”,因为它从根(图书馆)开始,像树杈一样展开,每一个类别同时又被称为“节点”。

接下来!!!我们终于要进入Cocos2d-x的世界看看它放东西的规则是什么样子的!!!!

 

………………………….

你一定在想..这TM的都是啥?(友情提示Node的中文意思是“节点”)

不过下面这张图,会让你稍微感觉好一些。

 

 

其实这里面的CCScene CCLayerCCLabel CCSprite 还是没出现的CCMenu…..等等等等一些类,都是CCNode的子类,都继承了他们共同的爹CCNode的一个能力,这个能力就是“形成树状结构”。

大家回想一下helloworld中遇到的例子:

bool HelloworldScene:: init(){       //…..Do something//HelloWorldScene继承自CCLayer,是CCNode的孙子//mysprite是CCSprite类,也是CCNode的孙子       this->addchild(mysprite); }


上述语句中的addchild() 翻译成中文就是“加孩子()”,“加孩子“就是CCNode类的特殊能力,所有他的孩子都会。

而上例中的this代表的是HelloWorldScene,下面两张图是执行addchild前后。

addchild执行前

 

 

addchild执行后:

 

困死了,碎觉,明天再写

原创粉丝点击