美文网首页cocos creator 基础教程
#5cocos creator 节点-组件关系介绍

#5cocos creator 节点-组件关系介绍

作者: 93ef88b32dec | 来源:发表于2017-03-10 13:19 被阅读53次

想想看,游戏中有各种各样的对象,比如地板,比如桌子,比如背包。

他们都具备的共同的属性是什么?

位置属性,旋转属性等等。

将这些通用的属性抽象出来,整理为一个父类,是面向对象编程的一个重要的概念:以继承复用通用的代码。

我们将这个父类称之为“节点”

一个具有游戏对象通用属性的实体(cc.Node)

然后让子类继承父类,扩展自己独特的功能。

我们将这个子类称之为“组件”

一个能够扩展游戏对象功能的零部件(cc.Component)

但是注意了。

传统地通过继承扩展功能的方式,会让继承树越长越高,功能的扩展只能基于一个父类,试图基于两个以上的父类进行扩展将不可能实现!(只能进行树结构扩展,而不能进行图结构扩展)

在传统的C++/JAVA中,试图基于两个毫不相关的类进行功能地扩展,我们会使用接口,定义好两个类通信的口头协议(接口),然后实现这个协议(接口)。这样,一个图结构的扩展就能够实现。所有扩展“子类”的关系都能够平铺在地板上成为图,而不是越长越高成为树。

这会引入另一个问题,图的连线达到一定规模后将会变得难以维护,在状态机中有一种缓解这个问题的方案,用分层的状态机: 即对这些连线进行分组。 组内随便连,但是如果要跨组相连,只能由组内的代表代理连线。

这就讲到我们的ECS模型,组内的代表就是E,就是entity,就是我们刚提到的"父类",就是我们刚提到的节点cc.Node

组内的成员就是各式各样的C,就是component, 就是我们刚提到的子类,就是我们刚提到的组件cc.Component

如果当前节点的组件试图访问另一个节点的组件,首先得先得到目标的节点,再访问目标的组件。

组件围着节点转。节点和节点平起平坐。这就是节点和组件的基本关系。

相关文章

网友评论

    本文标题:#5cocos creator 节点-组件关系介绍

    本文链接:https://www.haomeiwen.com/subject/xobngttx.html