From Test-Scratch-Wiki
पोशाक को ()पर स्विच करें | |
switch costume to ( v)
| |
Category | लुक्स |
Type | ढेर |
पोशाक को ()पर स्विच करें ब्लॉक एक लुक्स ब्लॉक और एक स्टैक ब्लॉक है जो अपने स्प्राइट के कॉस्ट्यूम को एक निर्दिष्ट में बदल देता है।
इस ब्लॉक का उपयोग तब किया जाता है जब किसी स्प्राइट को किसी विशिष्ट पोशाक पर स्विच करना होता है (नेक्स्ट कॉस्ट्यूम ब्लॉक के बजाय, जो केवल कॉस्ट्यूम सूची में अगले कॉस्ट्यूम पर स्विच होता है)। एक वेरिएबल (या कोई रिपोर्टर ब्लॉक) जिसमें एक संख्या या पोशाक का नाम शामिल है, को इसमें छोड़ा जा सकता है। यदि ब्लॉक में एक गैर-संपूर्ण संख्या इनपुट की जाती है, तो संख्या को गोल किया जाता है।
मंच वेशभूषा के बजाय पृष्ठभूमि का उपयोग करता है, जिसे स्विच बैकड्रॉप से () ब्लॉक के साथ स्विच किया जा सकता है।
इतिहास
स्क्रैच के बहुत शुरुआती, अप्रकाशित बीटा संस्करणों में, इस ब्लॉक को लुक लाइक () कहा जाता था। इस मूल नाम के कारण ही इसकी स्क्वीक पद्धति को यह नाम दिया गया lookLike:
।
उदाहरण उपयोग
अपनी सरलता के कारण, इस ब्लॉक में मुख्य उपयोगों की कोई विशिष्ट सूची नहीं है — इसका उपयोग केवल स्प्राइट की पोशाक को बदलने के लिए किया जाता है।
कुछ सामान्य उपयोग इस प्रकार हैं:
- बस एक पोशाक बदलना
when I receive [Broadcast v] switch costume to (costume2 v) go to x: (0) y: (0) show
- अनुक्रम के भाग के रूप में पोशाक बदलना
wait until <(variable) = [50]> change x by (10) switch costume to (costume1 v)
पिछली पोशाक पर स्विच करना
स्क्रैच में कोई पिछला कॉस्ट्यूम ब्लॉक नहीं है। पिछली पोशाक की गणना के लिए इसके बजाय पोशाक संख्या का उपयोग किया जा सकता है:
switch costume to ((costume [number v]) - (1))
If the sprite doesn't have a costume named "previous costume", then the following block will also switch to the previous costume:
switch costume to (join [previous costume] [])
अंतिम पोशाक पर स्विच करना
पहली पोशाक की पोशाक संख्या १ है। १ से कम पोशाक संख्या पर स्विच करते समय, उदाहरण के लिए ०, -१, या -२, स्क्रैच पोशाक सूची के अंत में लपेट जाएगा। यह एक युक्ति है जिसका उपयोग स्प्राइट की अंतिम पोशाक तक जाने के लिए किया जा सकता है:
switch costume to (round (0))
समाधान
इस ब्लॉक को निम्नलिखित कोड के साथ दोहराया जा सकता है:
repeat until <(wanted costume #) = (costume [number v])> next costume end
हालाँकि, मूल ब्लॉक का उपयोग करना आम तौर पर बहुत तेज़ होता है, और यदि कई पोशाकें हैं, तो स्प्राइट विभिन्न पोशाकों के बीच "फ्लैश" करता हुआ दिखाई देगा।
ध्यान देने योग्य बातें
जब किसी पोशाक के नाम के लिए एक संख्या होती है
जब कम से कम एक पोशाक का नाम एक संख्या है और आप उस संख्या को इस ब्लॉक में पास करते हैं, तो ब्लॉक का व्यवहार इनपुट के प्रकार के आधार पर भिन्न होगा:
- यदि इनपुट एक संख्या-प्रकार का मान है (उदाहरण के लिए
(() + ())
द्वारा लौटाया गया एक नंबर), तो ब्लॉक उस पोशाक संख्या के साथ पोशाक पर स्विच हो जाएगा। - अन्यथा, या यदि यह एक स्ट्रिंग-प्रकार का मान है (उदाहरण के लिए
(join [] [])
ब्लॉक के साथ एक संख्या जुड़ी हुई है), तो पोशाक उस नंबर नामक पोशाक में बदल जाएगी।[1]
तो, switch costume to (round (5))
पोशाक संख्या ५ पर स्विच हो जाएगा, लेकिन switch costume to (join [5] [])
उस पोशाक पर स्विच हो जाएगा जो इसका नाम "५" है।
पोशाक स्विच पर बहुत अधिक परतों का प्रभाव
कभी-कभी, कोई पोशाक वांछित पोशाक में नहीं बदल जाती। यह आमतौर पर परतों के उपयोग का प्रभाव होता है। बड़ी मात्रा में परतों में अत्यधिक अंतराल पैदा करने की प्रवृत्ति होती है, और इसलिए कम शक्तिशाली कंप्यूटर/मशीनों पर, यह पोशाक की उपस्थिति में स्विच के बीच देरी का कारण बन सकती है।