我對cocos2d和Objective C完全陌生。我剛剛開始研究與cocos2d包一起提供的HelloWorld示例,但無法弄清楚HelloWorldScene.m中的-init()函數在應用程序中的位置。cocos2d場景問題 - init()在應用程序中被調用到哪裏?
這裏是我下面的教程:提前 http://www.bit-101.com/blog/?p=2123
謝謝!
我對cocos2d和Objective C完全陌生。我剛剛開始研究與cocos2d包一起提供的HelloWorld示例,但無法弄清楚HelloWorldScene.m中的-init()函數在應用程序中的位置。cocos2d場景問題 - init()在應用程序中被調用到哪裏?
這裏是我下面的教程:提前 http://www.bit-101.com/blog/?p=2123
謝謝!
init()方法在場景中被覆蓋。當場景的一個實例被創建時,它在基類內被調用。通過覆蓋它,你有機會發射你自己的代碼。
jtalarico是正確的。我想稍微擴展他的回答。
通常,每當一個對象被實例化時,通常都會調用某種形式的[init]。對於很多對象來說,[init]就是所需要的,但是一些對象具有更復雜的形式,比如[initWithSomething]。
在cocos2d,init函數通常由[節點]的方法,其通常用於構建在cocos2d的對象調用。例如,查看CCNode.m,您將看到以下代碼:
+(id) node
{
return [[[self alloc] init] autorelease];
}
其他對象具有其他構造函數,但這是主要示例。
所以,如果你繼承CCNode,你可以重寫[INIT]方法,當一個對象被創建做你自己的東西。只要確保調用[super init],以便CCNode也可以進行自己的初始化。
cc,謝謝你的回答!這解釋了一切。 – pwang 2010-07-13 14:30:57