cocos2dx中常见的类及类继承关系

场景:CCScene,继承自CCNode,几乎完全等于CCNode类

CCNode继承自CCObject,CCObject是真正意义上的父类,CCObject又继承自CCCopying类,CCCopying的只是定义接口,完全虚基类

CCObject主要定义了两方面的内容:

1.是有内存管理有关的东西,如引用计数,内存托管对象

2.与回调函数有关的东西,如定时器回调,菜单回调,等等

CCLayer继承自CCNode,CCSprite也继承自CCNode,因此可以认为CCNode是cocos中最重要的核心类

凡是继承自CCNode类的子类都有如下特点:

1.是一个容器,可以包含任意多个其他节点(addchild)

2.可以执行一个动作(runaction)

3.可以执行一个回调函数(XX_selector),定时器回调,菜单回调,动作回调,控件回调(CCControl类继承自CCLayer,CCLayer继承自CCNode)

4.拥有坐标转换信息set/get,position,scale,rotation

5.每个节点可以添加任意其他节点,形成一个树状,构成一颗渲染树,每个节点只能有一个父节点(和现实生活一样,每个人只能有一个父亲)

时间: 2024-08-30 01:41:28

cocos2dx中常见的类及类继承关系的相关文章

Hibernate中的Entity类之间的继承关系之一MappedSuperclass

在hibernate中,Entity类可以继承Entity类或非Entity类.但是,关系数据库表之间不存在继承的关系.那么在Entity类之间的继承关系,在数据库表中如何表示呢? Hibernate提供了4种兼容JPA的策略,解决Entity类的继承与关系数据库表的对应不匹配问题.这里介绍第一种MappedSuperclass. 在这种策略中,存在如下特征: 只在Entity类之间存在继承关系,其中的父Entity类使用@javax.persistence.MappedSuperclass标注

验证当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。

结果:当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行.

里氏替换原则:切忌按照常识实现类间的继承关系

什么是里氏替换原则 里氏替换原则(Liskov Substitution Principle LSP)定义为:任何基类可以出现的地方,子类一定可以出现. LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为. 为什么需要里氏替换原则 里氏替换原则看起来好像没啥了不起的,不就是继承要注意的一丢丢细节么,年轻人呐,你这样的思想很危险啊.事实上里氏替换原则常常会被违反,我在下面举例说明吧: 我们定义了一个矩形类:

cocos2dx中常见设计模式

1.单例设计模式:导演类 2.观察者模式: 被观察者含有一个数组,里边存放了所有观察者的引用,在被观察者的状态发生改变的时候,通过调用观察者的函数来通知观察者,实现了信息的传递.  事件监听器:就是采用了观察者模式,当一个事件被触发的时候,所有监听它的对象都将收到通知 3.工厂模式 4.管理者模式

当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。

源代码 public class inherit { public static void main(String[] args){ first a=new first(); a.show(); } } class second{ String name; { name="zxr"; } } class first extends second{ int age=20; void show() { System.out.println("名字"+name); Sys

python 常见的错误类型 和 继承关系

BaseException +-- SystemExit #系统结束 +-- KeyboardInterrupt #键盘中断 ctrl+D +-- GeneratorExit #主动结束 +-- Exception #异常 +-- StopIteration #迭代器错误 +-- StandardError #标准错误 | +-- BufferError #buff错误 | +-- ArithmeticError #数学错误 | | +-- FloatingPointError #浮点数错误 |

【深入理解JVM】:Java类继承关系中的初始化顺序

Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类的一个实例,普通成员变量SampleClass 类的2个实例(在程序中的顺序不一样)以及一个静态代码块,其中静态代码块中如果静态成员变量sam不为空,则改变sam的引用.main()方法中创建了2个主

Java类继承关系中的初始化顺序

Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类的一个实例,普通成员变量SampleClass 类的2个实例(在程序中的顺序不一样)以及一个静态代码块,其中静态代码块中如果静态成员变量sam不为空,则改变sam的引用.main()方法中创建了2个主

关于在cocos2dx中继承Sprite的分析与技巧

本文章特指使用C++作为编程语言,基于cocos2dx游戏引擎开发游戏. 在cocos2dx中,sprite作为精灵类是使用最为频繁的类,与其它类相比,如:Node, Layer或Scene,Sprite最大的不同是它包含一个纹理,通过OpenGL的渲染,在游戏中呈现出来.游戏中的主角,怪物,背景,或是精灵的血条等都是通过Sprite来实现的. 在cocos2dx中,关于创建Sprite的类,根据输入参数的不同有以下几个工厂函数, static Sprite* create() static S