zoukankan      html  css  js  c++  java
  • 我学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;

        }

    }


  • 相关阅读:
    mysql/mariadb学习记录——查询2
    mysql/mariadb学习记录——查询
    touchSwipe 上下左右滑动,二指缩放 效果不好。
    c# 调用c++ 使用指针传递的时候
    c# 调用 matlab 引发初始化错误 异常
    创建非主键唯一约束
    sql 中 如果添加 时间戳 字段 timestamp
    JS frame 跨域 传值
    VS 附加进程调试
    Aspose.words 替换字符 操作
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7353989.html
Copyright © 2011-2022 走看看