sprite-kit
SKAction
수색…
간단한 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