From Test-Scratch-Wiki
ग्लाइड () सेकंड से एक्स: () वाई: () | |
glide () secs to x: () y: ()
| |
Category | गति |
Type | ढेर |
ग्लाइड () सेकंड से एक्स: () वाई: () ब्लॉक एक मोशन ब्लॉक और एक स्टैक ब्लॉक है। ब्लॉक अपने स्प्राइट को चुने गए सेकंड के अनुसार चुने गए x और y निर्देशांक पर ले जाता है। हालाँकि, ग्लाइड ब्लॉक का एक नुकसान यह है कि जब स्प्राइट चल रहा होता है तो यह स्क्रिप्ट को रोक देता है, जिससे स्प्राइट के ग्लाइडिंग के दौरान स्क्रिप्ट को अन्य काम करने से रोका जा सकता है। इसके अलावा, एक ग्लाइड को केवल एक स्टॉपिंग स्क्रिप्ट ब्लॉक द्वारा ही बाधित किया जा सकता है, और यदि किनारे पर है, तो उछाल ब्लॉक अपने इच्छित कार्य को करने में विफल हो जाएगा, जबकि एक स्प्राइट ग्लाइडिंग कर रहा है।
उदाहरण उपयोग
जब भी किसी स्प्राइट को ग्लाइड करने की आवश्यकता होती है तो ब्लॉक का उपयोग किया जाता है - कुछ सामान्य उपयोग हैं:
- टैंक में मछलियाँ घूम रही हैं
forever glide (pick random (1) to (2)) secs to x: (pick random (-240) to (240)) y: (pick random (-100) to (100))
- बाधा स्प्राइट बनाए जाते हैं और स्क्रीन के किनारे की ओर सरकते हैं, जैसे फ्रॉगर में
when I receive [StartCars v] hide set x to (240) repeat until <(gameOver) = [1]> create clone of (myself v) wait (3) secs end when I start as a clone show glide (5) secs to x:(-240) y:(y position) delete this clone
- गिरती हुई वस्तुएँ
set y to (180) glide (1) secs to x:(x position) y:(-180)
- एक प्रेत दूसरे की ओर बढ़ रहा है
glide (1) secs to x: ([x position v] of (Sprite2 v)) y: ([y position v] of (Sprite2 v))
ग्लाइड और मूव ब्लॉक की तुलना
यह स्क्रिप्ट आठ सेकंड में स्प्राइट को बाएं किनारे से दाएं किनारे तक लगातार ले जाने के लिए मूव स्टेप्स ब्लॉक का उपयोग करती है।
set x to (-240) repeat (80) move (6) steps wait (0.1) secs end
यह स्क्रिप्ट ग्लाइडिंग द्वारा वही कार्य करती है।
set x to (-240) glide (8) secs to x:(240) y:(y position)
ईज़ आउट इफ़ेक्ट के साथ ग्लाइडिंग
ग्लाइड ब्लॉक स्प्राइट को रैखिक तरीके से चलाता है, जिसका अर्थ है कि स्प्राइट पूरे समय एक ही गति से चलता है। हालाँकि, "ईज़ आउट" प्रभाव को दोहराना काफी आसान है जो ग्राफिक डिज़ाइन में भारी रूप से उपयोग किया जाता है, जहां वस्तु अपने लक्ष्य के करीब पहुंचने पर धीमी हो जाती है।
when I receive [tween v] repeat until <<([abs v] of ((target x) - (x position))) < [.25]> and <([abs v] of ((target y) - (y position))) < [.25]>> change x by (((target x) - (x position)) / (2)) change y by (((target y) - (y position)) / (2)) end go to x: (target x) y: (target y)
वैकल्पिक रूप से, निम्नलिखित स्क्रिप्ट का उपयोग किया जा सकता है, जो आसानी से प्रभाव डालने के साथ-साथ यह चुनने की अनुमति देता है कि वांछित स्थिति तक पहुंचने में कितना समय लगना चाहिए। २०० वह स्थिति है (इस मामले में, एक्स-अक्ष में) जिस पर स्प्राइट को सरकना चाहिए। यदि स्प्राइट को Y-अक्ष पर चलने की आवश्यकता है तो दो X स्थिति ब्लॉक को Y स्थिति वाले ब्लॉक से बदला जा सकता है। संख्या १० स्थिति तक पहुंचने में लगने वाले सेकंड की संख्या को १० से गुणा करने पर प्राप्त होती है।
when I receive [tween v] repeat until <(round (x position)) = [200]> change x by (((200) - (x position)) / (10)) end set x to (200)