Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[3]Cocos2d-x之Node的CREATE_FUNC、create、init、onEnter方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
总结:
1、节点的TestScene::create方法调用相当于调用 CREATE_FUNC(TestScenE)CREATE_FUNC重新实现了create;
2、调用create方法会调用到inti方法;
3、init在创建时会调用一次,onEnter在每次进入场景时都会调用,重写onEnter时,必须同时调用父类的onEnter方法。
一、create与init方法之间的关系
Sprite、Layer与Scene都继承Node,在使用create创建对象时会调用各自的init方法并添加引用计算。如下为scene的create方法实现
Scene * Scene ::create()
{
    Scene *ret = new (std::nothrow) Scene ();
    if (ret && ret->init())
    {
        ret->autorelease();
        return ret;
    }
    else
    {
        CC_SAFE_deletE (ret);
        return nullptr ;
    }
}
Scene的init方法设置显示内容的大小,Layer与Scene的init方法作用相同
bool Scene ::init()
{
    auto size = Director ::geTinstance()->getWinSize();
    return initWithSize(sizE);
}
Node的init方法
bool Node ::init()
{
    return true ;
}
当我们使用Scene与Layer的create方法创建实例时,可以通过重新实现init方法,达到我们想要做的一些初始化操作,实现:
1、重写init()方法。
2、使用宏定义CREATE_FUN(Scene或Layer的子类),这个宏定义相当于从重新定义了create方法,调用create等于调用重新定义的CREATE_FUN

二、init与onEnter
执行顺序:init->onEnter
init在创建对象时会执行一次。
onEnter每次进入场景的时候都会被调用,cocos2d-x的注释:
* Event callBACk that is invoked every time when Node enters the 'stage'.
* If the Node enters the 'stage' with a transition,this event is called when the transition starts.
* During onEnter you can't access a "sister/brother" node.
* If you override onEnter,you shall call its parent's one,e.g.,Node::onEnter().
当重写onEnter时,也必须调用父类的onEnter。

大佬总结

以上是大佬教程为你收集整理的[3]Cocos2d-x之Node的CREATE_FUNC、create、init、onEnter方法全部内容,希望文章能够帮你解决[3]Cocos2d-x之Node的CREATE_FUNC、create、init、onEnter方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。