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")
}
जब उपयोगकर्ता स्क्रीन को छूएगा तो कार्रवाई हटा दी जाएगी और ऑब्जेक्ट चलना बंद हो जाएगा।