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.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow