2013-04-26 18 views
0

Cocos2d不允許添加兩個類似的對象作爲孩子self是否有另一種添加副本而不在我的DigBackground類中實現深拷貝的方法?並做(DigBackground *)[idObject copy];Cocos2d:孩子已添加,添加2個類似的沒有深拷貝的孩子

btw!這不是針對雙胞胎的種族歧視?

DigBackground *bgImage = (DigBackground *)idObject; 
[self addChild:bgImage z:iterator tag:iterator]; 

       // Add duplicate sprite 
DigBackground *bgImage2 = (DigBackground *)idObject; 
[self addChild:bgImage z:iterator tag:iterator]; // Not allowed - duplicate child 
+0

你的例子不是一個重複的(也不是「相似」)對象,這是同一個對象。由於afaik cocos2d只實現了NSCopying的動作,所以你只能用相同的信息創建另一個obj,比如busta說 – LearnCocos2D 2013-04-26 09:26:54

回答

1

您不能添加已添加的精靈,在最後一行添加相同的第一個孩子。

但如果改變不工作,你可以創建具有相同信息的另一個精靈(我想DigBackground是CCSprite):

DigBackground *bgImage = (DigBackground *)idObject; 
[self addChild:bgImage z:iterator tag:iterator]; 

// Add duplicate sprite 
DigBackground *bgImage2 = [DigBackground spriteWithTexture:[bgImage texture] rect:[bgImage boundingBox]]; 
[self addChild:bgImage2 z:iterator tag:iterator+1]; //the tag should be unique.