我有一個關於在繼承自CCNode的Player類中創建自定義init方法的問題。不知道如果我需要,而不是採取不同的路線,並創建類的方法來代替:從CCNode繼承的init方法
+ (id) addSprite: (CCSprite*) sprite andSpriteBatchNode: (CCSpriteBatchNode*) spriteBatch;
多類方法....
在Player
類,我有一個指定的init方法,以及一些便利init方法。
- (id) init;
- (id) initWithSpriteBatchNode: (CCSpriteBatchNode*) spriteBatch;
- (id) initWithSprite: (CCSprite*) sprite andSpriteBatchNode: (CCSpriteBatchNode*) spriteBatch;
//指定init方法
當我在我的水平類實例化這個類,我不能夠直接調用我的任何自定義的初始化方法。我要做的是:
Player *player = [Player node];
[player initWithSprite: sprite andSpriteBatchNode: spriteBatch;];
//不知道這是正確的,甚至還是會出現內存泄漏
我認爲,無論是應工作,因爲它們是在實例級別只是在做同樣的事情,其他方法的名稱。
請指教。
展望通你的代碼清除了我的困惑,過度思考和迷惑自己。我從CCNode繼承了幾個不同的原因。 1)我只想繼承我所需要的東西(保持objs光線)和2)我將切換小精靈,所以合成是我使用CCSprite的首選方法。我想我可能早一點弄糊塗了。 'Player * p = [Player node];'同時做alloc/init,所以我可以做一些像'Player * p = [[[Player alloc] init ..] autorelease];'。實例方法和類方法不應該成爲問題。類方法是方便的方法。謝謝,感謝你的幫助。 – badboy11 2013-03-14 23:58:43