cocos2dx中init()与onEnter()的区别

cocos2dx中init()与onEnter()的区别,第1张

概述init()和onEnter()这俩个方法都是CCNode的方法。其区别如下: 1.其被调用的顺序是先init(),后onEnter()。 2.init()在类的初始化时只会调用一次。 3.onEnter在该类被载入场景的时候被调用,可能会发生多次。 4.CCLayer* cclayer = new MyLayer(); 这种情况下,只会触发onEnter。 5.CCLayer* cclayer

init()和onEnter()这俩个方法都是CCNode的方法。其区别如下:


1.其被调用的顺序是先init(),后onEnter()。


2.init()在类的初始化时只会调用一次。


3.onEnter在该类被载入场景的时候被调用,可能会发生多次。


4.cclayer* cclayer = new MyLayer();

这种情况下,只会触发onEnter。


5.cclayer* cclayer = MyLayer::create();

这样情况下,既会触发init()方法,也会触发onEnter()方法。


这里说的new会触发onEnter不是说在new中直接或间接的调用了init,而是说:1.create函数内部调用了init方法,而后在addChild的时候间接调用了onEnter。2.直接调用new没有调用init方法,而后在addChild的时候间接调用了onEnter。以上两种情况下,init方法没有被调用。最后,建议不要直接使用new,而是使用静态的create方法,因为该方法中做了更多的事情

总结

以上是内存溢出为你收集整理的cocos2dx中init()与onEnter()的区别全部内容,希望文章能够帮你解决cocos2dx中init()与onEnter()的区别所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1061667.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存