Szukaj…


Utwórz i uruchom prostą SKAction

Bardzo prostym przykładem może być zanikanie węzła SKSpriteNode.

W Swift:

let node = SKSpriteNode(imageNamed: "image")
let action = SKAction.fadeOutWithDuration(1.0)
node.runAction(action)

Tworzenie powtarzającej się sekwencji akcji

Czasami konieczne jest wykonanie akcji na powtórce lub w sekwencji. Ten przykład spowoduje, że węzeł zaniknie i zniknie w sumie 3 razy.

W 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)

Uruchamianie bloku kodu w SKAction

Jednym pomocnym przypadkiem jest uruchomienie akcji kodu.

W 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)

Nazwane działania, które można uruchomić lub usunąć z innego miejsca.

Czasami chcesz uruchomić lub usunąć akcję na określonym węźle w określonym czasie. Na przykład możesz zatrzymać ruchomy obiekt, gdy użytkownik dotknie ekranu. Staje się to bardzo pomocne, gdy węzeł ma wiele akcji i chcesz uzyskać dostęp tylko do jednego z nich.

let move = SKAction.moveTo(x: 200, duration: 2)
object.run(move, withKey: "moveX")

Tutaj możemy ustawić klawisz „Movex” dla działań move w celu niego dostęp później w innej części klasy.

  override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        object.removeAction(forKey: "moveX")
    }

Gdy użytkownik dotknie ekranu, akcja zostanie usunięta, a obiekt przestanie się poruszać.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow