2016-01-13 4 views
9

enter image description hereदोनों सिरों पर वर्ग की चौड़ाई को बढ़ाने (एनिमेट) कैसे करें?

मैंने ऊपर दिखाए गए अनुसार 40x40 का एक वर्ग बनाया है। मेरे पास एक 4x40 पट्टी है जिसे मैं अपने वर्ग की चौड़ाई को एनिमेट (वृद्धि) करने के लिए उपयोग करना चाहता हूं जब तक कि स्क्वायर की स्थिति के बावजूद, दूसरी स्क्रीन के भीतर पूरी स्क्रीन की चौड़ाई नहीं ले जाती। दोनों पक्षों पर एक प्रगति पट्टी लोडिंग के समान ही।

अद्यतन

मुझे लगता है कि वर्ग एक भौतिक विज्ञान शरीर है, इसलिए भौतिक विज्ञान शरीर भी स्प्राइट बढ़ जाती है के रूप में वृद्धि करनी चाहिए उल्लेख करना भूल गया।

उत्तर

0

सामान्य रूप से, मानते हैं कि आपकी ऑब्जेक्ट्स की उत्पत्ति शीर्ष-बाएं (या कम से कम बाईं ओर है, क्योंकि हम केवल एक अक्ष पर चीजें बदल रहे हैं) यदि आप अपने वर्ग की मूल x स्थिति में start_x सेट करते हैं, इसकी चौड़ाई को start_width, target_x अपने पट्टी के एक्स स्थिति के लिए, और इसकी चौड़ाई, तो करने के लिए target_width:

x = start_x + (target_x - start_x) * a; 

और

width = start_width + (target_width - start_width) * a; 

और a के रूप में 0.0 से 1.0, ०१२३९३१०१०८६ को जाता है स्ट्रिप से मेल खाने के लिएऔर width बढ़ेगा।

उम्मीद है कि इससे मदद मिलती है।

2

आप को प्राप्त करने के लिए आप क्या देख रहे हैं SKAction.scaleXTo का उपयोग कर रहा है क्या करना चाहते हैं क्या:

SKAction.scaleXTo(sceneWidth/spriteWidth, duration: 1). 

अब अगर आप बाएँ और दाएँ पक्ष समान रूप से स्केल नहीं करना चाहते हैं, लेकिन इसके बजाय दोनों किनारों तक पहुँचने एक ही समय में, आप एंकर पॉइंट बदल सकते हैं।

इस के पीछे का गणित यह मानता है कि अपने मूल लंगर बिंदु (0.5,0.5)

sprite.anchorPoint = CGPointMake(sprite.position.x/scene.width,sprite.anchorPoint.y) 

E.G. है दृश्य आकार चौड़ाई 100 है, स्प्राइट x 75

मूल रूप से यह कह रहा है कि आपका स्प्राइट दृश्य के कुछ प्रतिशत पर है, उदाहरण के मामले में, 75%। तो एंकर पॉइंट को .75 में बदलकर, क्या होने जा रहा है, जब आप अपनी चौड़ाई का विस्तार कर रहे हैं तो बाईं तरफ दाएं तरफ से तेज़ तरफ भर जाएगा क्योंकि एंकर पॉइंट के बाईं तरफ चौड़ाई का 75% है, और दाएं पक्ष की चौड़ाई का 25% है।

आइए मान लें कि हम स्केल को 2 पर सेट करते हैं, इसका मतलब है कि एंकर पॉइंट का बायां तरफ 150% पर होगा, जबकि दायां तरफ 50% होगा।

+0

@KnightOfDragon: धन्यवाद। मुझे वास्तव में आपका दृष्टिकोण पसंद है। कृपया मुझे माफ़ कर दो, मैं यह उल्लेख करना भूल गया कि स्प्राइट में भौतिकी शरीर है। मैंने अभी सवाल को अद्यतन किया है। – iGetIt

+0

अच्छी तरह से यदि आपको भौतिकी निकाय को भी बढ़ाने की आवश्यकता है, तो आपको गणित करने के बाद आपको कुछ गणित लागू करने की आवश्यकता है। मेरा जवाब यहां देखें http://stackoverflow.com/questions/34581226/how-to-make-physics-body-stick-to-nodes-anchor-points/34584013#34584013, बस सुनिश्चित करें कि आप आकार का आकार भी समायोजित करें स्प्राइट – Knight0fDragon

+0

@ नाइट 0 एफड्रैगन के आकार से मेल खाने के लिए शरीर की सराहना होगी यदि आप इस http://stackoverflow.com/questions/40458673/issues-scaling-sprite-width-to-screen-width पर देख सकते हैं – NSologistic

संबंधित मुद्दे