수색…


간단한 SKAction 만들기 및 실행

아주 간단한 예는 SKSpriteNode를 페이드 아웃하는 것입니다.

스위프트 :

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

반복되는 액션 시퀀스 만들기

때로는 반복 또는 순서대로 작업을 수행해야 할 때가 있습니다. 이 예제는 노드가 전체적으로 3 번 페이드 인 / 아웃되도록합니다.

스위프트 :

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)

SKAction에서 코드 블록 실행

한 가지 유용한 경우는 액션이 ​​코드 블록을 실행하도록하는 것입니다.

스위프트 :

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)

다른 곳에서 시작하거나 제거 할 수있는 명명 된 작업.

특정 시점에 특정 노드에서 작업을 시작하거나 제거하려는 경우가 있습니다. 예를 들어 사용자가 화면을 누를 때 움직이는 물체를 멈추고 싶을 수 있습니다. 이는 노드에 여러 작업이 있고 그 중 하나에 액세스하기를 원할 때 매우 유용합니다.

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

여기서 우리는 액션 move 을위한 키 "moveX"를 클래스의 다른 부분에서 나중에 액세스하기 위해 설정합니다.

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

사용자가 화면을 터치하면 동작이 제거되고 객체의 이동이 중지됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow