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的區別是,當這個場景被顯示的時候纔會被調用,因此可以進行一些類似於精靈位置等初始化的工作。