Jestem nowy w Swift i SpritKit i mam kilka problemów z moją grą.Xcode SpriteKit - Usuwanie Sprites i zatrzymywanie akcji - repeatActionForever
W mojej sekcji didMoveToView(view: SKView) { }
mojego kodu wywołuję poniższą instrukcję, która zapełnia potwory na ekranie. W moim func addMonster() { }
Potwory następnie animowane, aby przejść od prawej strony, do lewej strony ekranu. Gdy znikną z ekranu po przeciwnej stronie, duszek zostanie usunięty.
kodują
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock(addMonster),
SKAction.waitForDuration(1.0),SKAction.
])
))
W polu Dodaj Mons † er funkcji wzywam następujący kod, który porusza Monster po ekranie.
let actualDuration = random(min: CGFloat(6.0), max: CGFloat(10.0))
let actionMove = SKAction.moveTo(CGPoint(x: -monster.size.width/2, y: actualY), duration: NSTimeInterval(actualDuration))
let actionMoveDone = SKAction.removeFromParent()
monster.runAction(SKAction.sequence([actionMove, actionMoveDone]))
Wszystkie powyższe kody działają poprawnie.
Kiedy użytkownik zabił X ilość potworów, chcę, aby wszystkie pozostałe potwory ekranu zniknęły i przestały się odradzać.
Moje pytania brzmią, jak mogę a) Zatrzymać KOD A od potworów ib) Jak uzyskać potwory z widoku, które należy usunąć?
Dzięki,
Ryann
a) removeAllActions() lub removeAcionForKey() przestanie Twój kod A. b) dodaj wszystkich potworów do tablicy, które pomogą ci śledzić/usuwać wszystkich potworów na ekranie. – Shoaib
Jak dodać je do tablicy i jak mam się do nich odwoływać? W przypadku metody removeAllActions, w jaki sposób wywołać ją, gdy Sprite jest tworzony w funkcji, a zatem nie można odwoływać się poza tą funkcją? – Ryann786