Cocos2d-x之onEnter與init

CNode onEnter()調用:
class MyLayer:public CCLayer
{
};
1.MyLayer *layer = new MyLayer();
此時,會進行onEnter調用,不會調用init()

2.CCLayer* layer = MyLayer::node();
此時,不會進行onEnter回調。會調用init()

都是CCNode類的方法,被調用順序是先init後onEnter

init在初始化時只會調用一次;
onEnter在該類(如CCLayer,CCSprite)被載入場景時被調用,可能會發生很多次

CCNode 的子類,一般通過靜態方法node來得到實例,而node發那個發的真正代碼是:
return [[ [self alloc] init] autorelease];



一個是init函數,當這個場景被創建的時候,就會調用此函數,因此初始化工作就可以在這個函數內完成。第二個函數是onEnter,它與init的區別是,當這個場景被顯示的時候纔會被調用,因此可以進行一些類似於精靈位置等初始化的工作。
發佈了114 篇原創文章 · 獲贊 35 · 訪問量 91萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章