sprite-kit
SKAction
Zoeken…
Maak en voer een eenvoudige SKAction uit
Een heel eenvoudig voorbeeld zou zijn om een SKSpriteNode weg te faden.
In Swift:
let node = SKSpriteNode(imageNamed: "image")
let action = SKAction.fadeOutWithDuration(1.0)
node.runAction(action)
Een herhalende reeks acties maken
Soms is het nodig om een actie uit te voeren bij herhaling of in een reeks. Dit voorbeeld laat het knooppunt in totaal 3 keer in- en uitfaden.
In Swift:
let node = SKSpriteNode(imageNamed: "image")
let actionFadeOut = SKAction.fadeOutWithDuration(1.0)
let actionFadeIn = SKAction.fadeInWithDuration(1.0)
let actionSequence = SKAction.sequence([actionFadeOut, actionFadeIn])
let actionRepeat = SKAction.repeatAction(actionSequence, count: 3)
node.runAction(actionRepeat)
Een codeblok uitvoeren in een SKAction
Een handig geval is om de actie een codeblok te laten uitvoeren.
In Swift:
let node = SKSpriteNode(imageNamed: "image")
let actionBlock = SKAction.runBlock({
//Do what you want here
if let gameScene = node.scene as? GameScene {
gameScene.score += 5
}
})
node.runAction(actionBlock)
Benoemde acties die elders kunnen worden gestart of verwijderd.
Soms wilt u op een bepaald tijdstip een actie op een specifiek knooppunt starten of verwijderen. U wilt bijvoorbeeld een bewegend object stoppen wanneer de gebruiker op het scherm tikt. Dit wordt erg handig wanneer een knooppunt meerdere acties heeft en u slechts toegang wilt hebben tot een van deze.
let move = SKAction.moveTo(x: 200, duration: 2)
object.run(move, withKey: "moveX")
Hier zetten we de sleutel "Movex" voor de actie move
om het later openen in een ander deel van de klas.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
object.removeAction(forKey: "moveX")
}
Wanneer de gebruiker het scherm aanraakt, wordt de actie verwijderd en stopt het object met bewegen.