在spritekit中使用removeFromParent时删除了错误的节点

时间:2015-06-23 01:14:06

标签: sprite-kit

我希望在与对象接触后从父节点中删除节点,但是节点会连续生成,同时屏幕上会显示多个同一节点。问题是,每当节点进行联系并且调用removeFromParent时,它都不会被删除,但是另一个尚未联系的节点是。我想知道我能做些什么来确保删除的节点是接触节点而不是相同类型的节点。

2 个答案:

答案 0 :(得分:0)

而不是将节点添加到自己作为孩子。将它们添加到您创建的另一个节点。然后,您可以使用此行代码删除较大节点中的所有节点:

bigNode.addChild(smallNode) //Add smallNode to bigNode instead of self
bigNode.removeAllChildren() //Removes all of the smallNodes since they all are children of bigNode

答案 1 :(得分:0)

您需要一种方法来使每个实例都是唯一的。一种方法是为每个节点实例分配唯一的名称。首先,您需要创建一个计数器:

@property (nonatomic) int myCounter;

然后您将计数器用作节点名称的一部分:

myCounter++;
myNode.name = [NSString stringWithFormat:@"myNode-%i",myCounter];