2009-10-02 18 views
1
圖層

我工作的一個俄羅斯方塊克隆在cocos2d iPhone和我使用的是Block類精靈,爲各個塊和四格拼板CocosNode類的用戶控件爲了移動塊。所有這些塊在GameBoardLayer上的一個20×10的空塊中移動。釋放一個CocosNode並增加其子女在cocos2d

當該塊完成下降時,我想釋放Tetromino並將其阻擋到GameBoardLayer,以便讓他們獨立漫遊併爲用戶創建一個新的Tetromino。

我試圖壓倒一切的removeChild之:在層中

- (void)removeChild: (CocosNode*)child cleanup:(BOOL)cleanup 
{ 
    if ([child isEqual:userTetromino]) { 
     for (Block *currentBlock in userTetromino.children) { 
      [self addChild:currentBlock]; 
      [userTetromino removeChild:currentBlock cleanup:YES]; 


     } 
    } 

    [super removeChild:child cleanup:cleanup]; 
} 

但似乎我不能添加子兩次,因爲它已經通過四格拼板層的孩子。有什麼想法嗎?

回答

1

你爲什麼不交換的addChild和removeChild之?

- (void)removeChild: (CocosNode*)child cleanup:(BOOL)cleanup 
{ 
    if ([child isEqual:userTetromino]) { 
     for (Block *currentBlock in userTetromino.children) { 
       // The following lines are swapped here. 
       [userTetromino removeChild:currentBlock cleanup:YES]; 
       [self addChild:currentBlock]; 


     } 
    } 

    [super removeChild:child cleanup:cleanup]; 
} 
相關問題