Я работаю над небольшой игрой для iOS (spritekit/swift).
У меня есть массив SKSpriteNode в моей сцене, определенный следующим образом:
var spritesTree = [SKSpriteNode]()
затем я заполняю массив функцией и добавляю их в сцену следующим образом:
spritesTree = spritesCollectionTree(count: numTrees)
for sprite in spritesTree {
addChild(sprite)
}
После этого, в зависимости от ситуации, процесс добавляет в массив еще несколько деревьев. Я знаю, как удалить элементы из сцены и массива, если я знаю индекс
spritesTree[i].removeFromParent()
spritesTree.removeAtIndex(i)
но моя проблема состоит в том, чтобы удалить конкретный узел в этом массиве, когда я не знаю индекс. Например, когда один из спрайтов был затронут
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch in (touches as! Set<UITouch>) {
let location = touch.locationInNode(self)
let positionInScene = touch.locationInNode(self)
let touchedNode = self.nodeAtPoint(positionInScene)
В этом случае ¿Как я могу удалить touchedNode из моего массива spritesTree SKSpriteNode, если я не знаю индекс? Я читал что-то о indexOf, чтобы найти индекс ранее, но это не работает с моим массивом SKSpriteNode. Не могли бы вы мне помочь, пожалуйста?
Бестс,