Sono nuovo di Swift e SpritKit e ho alcuni problemi con il mio gioco.Xcode SpriteKit - Rimozione di Sprites e interruzione di un'azione - repeatActionForever
Nella mia sezione didMoveToView(view: SKView) { }
del mio codice, chiamo l'istruzione seguente che popola i mostri sullo schermo. Nel mio func addMonster() { }
I mostri sono quindi animati per spostarsi dal lato destro, al lato sinistro dello schermo. Una volta fuori dallo schermo, sul lato opposto, lo sprite viene rimosso.
CODE A
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock(addMonster),
SKAction.waitForDuration(1.0),SKAction.
])
))
In aggiunta funzione di ER Mons †, che io chiamo il seguente codice che si muove il mostro sullo schermo.
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]))
Tutto il codice sopra funziona correttamente.
Quando l'utente ha ucciso una quantità X di mostri, voglio che tutti gli altri mostri dello schermo scompaiano e smettano di spawnare.
Le mie domande sono, come faccio a) Interrompere il CODICE A dai mostri di deposizione e b) come ottengo i mostri che sono nella vista, vengono rimossi?
Grazie,
Ryann
a) removeAllActions() o removeAcionForKey() si fermerà il tuo codice A. b) aggiungi tutti i mostri in un array che ti aiuterà a tracciare/rimuovere tutto il mostro sullo schermo. – Shoaib
Come li aggiungo a un array e come faccio a farvi riferimento? Con removeAllActions, come faccio a chiamarlo quando lo Sprite viene creato in una funzione e quindi non può essere referenziato al di fuori della funzione? – Ryann786