Я работаю над маленькой игрой для iOS (spritekit/swift).удалить узел из массива spritekit swift
Я массив SKSpriteNode в моей сцене определяется следующим образом:
var spritesTree = [SKSpriteNode]()
я заполнить массив с помощью функции и добавить их к сцене, как это:
spritesTree = spritesCollectionTree(count: numTrees)
for sprite in spritesTree {
addChild(sprite)
}
После этого в зависимости от ситуации процесс добавляет еще несколько деревьев в массив. Я знаю, как удалить элементы из сцены и массива, если я знаю, что индексировать
spritesTree[i].removeFromParent()
spritesTree.removeAtIndex(i)
, но моя проблема заключается в удаление especific узла в этом массиве, когда я не знаю, индекса. Для Exemple, когда один из спрайта была затронута
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, чтобы найти индекс previoustly, но он не работает с моим массив SKSpriteNode. Не могли бы вы мне помочь, пожалуйста?
Bests,
Спасибо за ответ, но Бесполезный Я полностью решу свою проблему. Представьте, что у меня есть следующие имена узлов списка ["0", "1", "2", "3", "4"], которые соответствуют позициям. Когда я удаляю первый элемент с именем «2», все в порядке, но если я попытаюсь _removeAtIndex_ с именем «4», он терпит неудачу, потому что элементы были реорганизованы с позициями 0 -> «0», 1 -> «1», 2 -> «3», 3 -> «4», и теперь в массиве нет «4» позиции. Вы знаете, есть ли какая-либо функция, которая возвращает позицию позиции из имени? – Xavi
переименовать все после удаления в цикле. Или вы можете попытаться найти узел в массиве следующим образом: для индекса в 0 ... spritesTree.count {if touchedNode == spritesTree [index] {spritesTree.removeAtIndex (index)}} – gabrielpf