0
我很困惑與的addChild:行爲在cocos2d,由於下列原因:的Cocos2D的addChild行爲
我有擁有CCSprite和Box2DBody一個CCNode子類。 林這個子類的-init方法,我的精靈添加到主GameScene的CCSpriteBatchNode,像這樣:
//Ball class, CCNode subclass with a CCSprite and a b2Body
-(id)initBallInWorld:(b2World *)word spriteFile:(NSString *)file
{
//self = [super init] blablabla
CCSpriteBatchNode *batch = [GameScene getSpriteBatch]; //singleton
//create Box2dBody inside the world
//create a CCSprite
[batch addChild:sprite]; //Here is the confusion!
}
在主GameScene我做的: 球*球=球ballInWorld ... ]
如果我這樣做[個體經營的addChild:球],物理工作正常,但如果我不這樣做,ballSprite卡在(0,0)......這是爲什麼?該批次已添加到GameScene和ballSprite已經被添加到批,這種額外的addChild似乎怪我!
謝謝!
你一定'batch'由你來使用它的時候初始化。嘗試一個NSLog或斷點,以確保發送消息到nil對象只是在默默地失敗objective-c –
我看到的是,你是在內部添加對象到spriteBatch,而不是在你調用initBallInWorld的範圍內,我是博彩是GameScene。 CCScene不應該是單身人士。你濫用單身模式。修復可能不會解決你的問題,但它會讓你成爲一個更好的程序員。 –