[Swift 2] Ta bort alla SKSpriteNode av viss typ

Trädvy Permalänk
Medlem
Plats
Halmstad
Registrerad
Apr 2003

[Swift 2] Ta bort alla SKSpriteNode av viss typ

Hejsan!

Sitter & försöker få bort en massa "coins" från mitt spel men tydligen är inte jag & Swift 2 + SpriteKit helt överens.

Jag "spawnar" liter monster med liknande:

for Monsters = 0; Monsters < MonsterCount; ++Monsters { /* Massa Monster.position, Monster.size osv osv */ MonsterGroup.addChild(Monster) /* Massa Coin.position, Coin.size osv osv */ Monster.addChild(Coin) }

MonsterGroup är sedan tidigare inlagd i viewdidload, tycker det är enklast så att ta bort alla child osv & andra styrningsrelaterade grejer.

Iaf, problemet är att jag nu vill ta bort alla "Coins", trodde Coin.removeFromParent() skulle vara tillräckligt men den tar ju bara bort från senaste Monstret som lades till i for loopen.

Så hur tar jag bort ALLA "Coins" i min scen? Har testat enumerateChildNodesWithName osv osv & massa andra saker jag inte ens minns men får inte till det.

Så japp, hur tar jag bort alla "Coins", helst OAVSETT vilken child dom skulle ligga i (Kanske lägger dom i andra säker än just Monster i framtiden)

EDIT Jag fick det faktiskt att fungera men vore kul med en lite vettigare version så man slipper iterera igenom alla noder på skärmen, är väl inte så bra prestanda att göra detta om man nu har en massa noder körandes så har ni bättre/smartare förslag så vore det gött

(förutsätter såklart att man lagt in Coin med Coin.name = "Coin")

enumerateChildNodesWithName("//*") { node, _ in if node.name == "Coin" { node.removeFromParent() } }

Hur kan syltkakor överleva i det vilda utan ögon?