sprite-kit
स्प्राइटकिट में समयबद्ध कार्य: SKActions बनाम NSTimers
खोज…
टिप्पणियों
आपको टाइमर फ़ंक्शन करने के लिए SKAction
s का उपयोग कब करना चाहिए? ज्यादातर हमेशा। इसका कारण यह है क्योंकि Sprite Kit
एक अद्यतन अंतराल पर संचालित होती है, और इस अंतराल की speed
को speed
संपत्ति का उपयोग करके प्रक्रिया के जीवन काल में बदला जा सकता है। दृश्यों को भी रोका जा सकता है। चूंकि SKAction
दृश्य के अंदर काम करता है, जब आप इन गुणों को बदलते हैं, तो आपके समय के कार्यों को बदलने की कोई आवश्यकता नहीं है। यदि आपका दृश्य प्रक्रिया में 0.5 सेकंड है, और आप दृश्य को रोकते हैं, तो आपको किसी भी टाइमर को रोकने और उस 0.5 सेकंड के अंतर को बनाए रखने की आवश्यकता नहीं है। यह आपको स्वचालित रूप से दिया जाता है, ताकि जब आप अनपोज़ करें, तो शेष समय जारी रहे।
टाइमर कार्यों को करने के लिए आपको NSTimer
s का उपयोग कब करना चाहिए? जब भी आपके पास कुछ ऐसा होता है जिसे SKScene
वातावरण के बाहर रखने की SKScene
है, और जब दृश्य को रोक दिया जाता है, तब भी निकाल दिया जाना चाहिए, या दृश्य गति में परिवर्तन होने पर भी स्थिर दर से फायर करने की आवश्यकता होती है।
यह UIKit
नियंत्रण और SpriteKit
नियंत्रण दोनों के साथ काम करते समय सबसे अच्छा उपयोग किया जाता है। चूंकि UIKit
को इस बारे में कोई जानकारी नहीं है कि SpriteKit
साथ क्या होता है, NSTimer
s SpriteKit
की स्थिति की परवाह किए बिना आग SKScene
। एक उदाहरण होगा कि हमारे पास एक UILabel
जिसे हर सेकंड एक अपडेट प्राप्त होता है, और इसे आपके SKScene
अंदर से डेटा की आवश्यकता SKScene
।
एक ऐसी विधि को लागू करना जो एक सेकंड के बाद आग लगाती है
SKAction:
let waitForOneSecond = SKAction.waitForDuration(1) let action = SKAction.runBlock(){action()} let sequence = SKAction.sequence([waitForOneSecond,action]) self.runAction(sequence)
NSTimer:
NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(action), userInfo: nil, repeats: false)