我学cocos2d-x Node:一切可视化对象的祖先

Posted blfbuaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我学cocos2d-x Node:一切可视化对象的祖先相关的知识,希望对你有一定的参考价值。

在cocos2d-x中一切可视化的对象都继承自Node(如文字(label)、精灵(sprite)、场景(scene)、布局(layer))。这是一个纯虚类。主要负责决定元素显示的位置。


由导演(Director)负责场景(Scene)的切换,在场景中加入不同的布局(Layer),这里有一个zOrder的值,仅仅有处于同一个zOrder中的Layer才干进行交互。


Scene和Layer在对象显示中起到了比較基本的作用,我们一般都是在Scene和Layer中来处理可视化对象的布局、碰撞、分数等状态的显示。


Scene是一个抽象类,仅用于依据对象的像素坐标把对象放置到场景中正确的位置。


Layer类本身没有特殊的功能。但它能够用于接收触摸事件和加速输入。


在Node中又几个比較重要的方法须要在子类中实现:


virtual bool init() override;

在cococs2d-x中,使用init方法进行初始化,在这种方法中,须要调用父类的init方法,然后能够进行子类的初始化,此方法返回false表示初始化失败。cocos2d-x不会进行界面的绘制。


static Layer *create();

用于创建和初始化Node对象。在子类中使用CREATE_FUNC这个宏来实现此方法。这样就实现了子类构造函数和init方法的调用:


#define CREATE_FUNC(__TYPE__) \

static __TYPE__* create() \

{ \

    __TYPE__ *pRet = new __TYPE__(); \

    if (pRet && pRet->init()) \

    { \

        pRet->autorelease(); \

        return pRet; \

    } \

    else \

    { \

        delete pRet; \

        pRet = NULL; \

        return NULL; \

    } \

}


以上是关于我学cocos2d-x Node:一切可视化对象的祖先的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d-x-3.6 引擎基础概念

跟我学Node高性能Web服务器开发

Cocos2d-x 核心概念 - Node中的重要操作

跟我学Node高性能Web服务器开发

Part 17:Cocos2d-x开发实战-基于Node.js的Socket.IO网络通信-关东升-专题视频课程

如何评价cocos creator,与unity比的优劣势