sprite套件-在sprite套件中使用removeFromParent时删除了错误的节点



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

您需要一种使每个实例唯一的方法。一种方法是为每个节点实例指定一个唯一的名称。首先你需要创建一个计数器:

@property (nonatomic) int myCounter;

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

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

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

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

最新更新