2010-07-08 22 views

回答

1

init()方法在場景中被覆蓋。當場景的一個實例被創建時,它在基類內被調用。通過覆蓋它,你有機會發射你自己的代碼。

5

jtalarico是正確的。我想稍微擴展他的回答。

通常,每當一個對象被實例化時,通常都會調用某種形式的[init]。對於很多對象來說,[init]就是所需要的,但是一些對象具有更復雜的形式,比如[initWithSomething]。

在cocos2d,init函數通常由[節點]的方法,其通常用於構建在cocos2d的對象調用。例如,查看CCNode.m,您將看到以下代碼:

+(id) node 
{ 
    return [[[self alloc] init] autorelease]; 
} 

其他對象具有其他構造函數,但這是主要示例。

所以,如果你繼承CCNode,你可以重寫[INIT]方法,當一個對象被創建做你自己的東西。只要確保調用[super init],以便CCNode也可以進行自己的初始化。

+0

cc,謝謝你的回答!這解釋了一切。 – pwang 2010-07-13 14:30:57

相關問題