2015-06-06 5 views
5

स्क्रैच में आप ब्रेक करने योग्य लूप कैसे बनाते हैं? मैं स्क्रैच 2.0 का उपयोग कर रहा हूं और लूप के अंदर से लूप ब्रेक करने योग्य बनाने का कोई अच्छा तरीका नहीं ढूंढ सकता।स्क्रैच में ब्रेक करने योग्य पाश?

उत्तर

6

अस्वीकरण:

ऐसा करने का कोई सही तरीका नहीं है। यदि आप संभवतः इस सच्चे तथ्य को खड़ा कर सकते हैं तो जारी रखने के लिए स्वतंत्र महसूस करें।


कुछ अलग तरीके हैं जो आप कर सकते हैं।

repeat until

पहली और सबसे सरल एक साथ इस प्रकार है:

scratchblocks

लेकिन यह तकनीकी रूप से स्क्रिप्ट का हिस्सा नहीं है - यह सिर्फ जब तक कुछ मान TRUE देता है दोहरा रहा है।

एक कस्टम ब्लॉक ( stop this script)

आदेश स्क्रिप्ट के अंदर यह करने के लिए में साथ

, आप कस्टम ब्लॉक के साथ एक डरपोक थोड़ा चाल का उपयोग करना होगा।

जो भी आप चाहते हैं उसे एक कस्टम ब्लॉक बनाएं - लेकिन शायद "ब्रेक करने योग्य पाश" की लाइनों के साथ। इसके अंदर, इस स्क्रिप्ट बनाने:

scratchblocks

stop script हम स्क्रिप्ट वर्तमान में चल रहे से बाहर तोड़ रहे हैं का उपयोग करके - जो, स्क्रैच के अनुसार, कस्टम ब्लॉक है।

See the result! (as scratchblocks)

साथ

broadcast and wait

तुम भी एक प्रसारण और इंतजार विधि, बहुत ऊपर के समान इस्तेमाल कर सकते हैं:

scratchblocks

हालांकि मैं अत्यधिक तुम डॉन सुझाव है ' इस विधि का उपयोग नहीं करें, जैसे कि किसी अन्य स्प्राइट्स में ब्रेक करने योग्य लूप हैं, आपको प्रत्येक का नाम बदलने की आवश्यकता होगी, जो बहुत से उपयोग करने के बाद थकाऊ हो सकता है बहुत सारे sprites में loops!


(इस बग नोट संपादक के संस्करण 442 में तय किया गया है और इस तरह के निम्नलिखित अब लागू नहीं होता।)

मदद! मेरी परियोजना अब एक गुच्छा लगी है! यदि आपके कोड एक फ्रेम आप शायद स्क्रीन रिफ्रेश बिना रन जाँच के अंदर चलाने जाना चाहिए

@foi के रूप में, noticed है। दुर्भाग्यवश, स्क्रैच प्लेयर में एक बग के कारण, यह प्रोग्राम को stop this script ब्लॉक सक्रिय करने के बाद अनिवार्य रूप से तोड़ने का कारण बनता है। आप इसे कैसे संभालेंगे?

यह है जब आप एक forever लूप के अंदर स्क्रीन रिफ्रेश कस्टम ब्लॉक के बिना एक रन का उपयोग इसी सिद्धांत आप का उपयोग इस प्रकार है - पल के लिए अनुमति देता है, पाश स्क्रीन रिफ्रेश का उपयोग नहीं करता है, जबकि अंदर करता है एनिमेशन turbo mode का उपयोग कर रहा है या नहीं।

यहां एक उदाहरण है - छवि को एम्बेड करने में बहुत लंबा समय है, इसलिए see it here इसके बजाय।

+0

हालांकि यह सुधार! पागल दोस्त! – towerofnix

+1

उदाहरण के लिए लिंक छवि मर चुका है। – ppperry

+0

धन्यवाद, तय। जब आप अपना उपयोगकर्ता नाम बदलते हैं तो गिटहब गिस्ट रीडायरेक्ट नहीं करता है .. – towerofnix

0

"दोहराना" ब्लॉक करने के लिए सबसे आसान तरीका "या" जब तक ब्रेक स्थिति के साथ स्थिति तक सामान्य नहीं होगा।

पाश आप केवल अपने ब्रेक के साथ ब्लॉक "जब तक दोहराने" एक "दोहराने जब तक" का उपयोग कर सकते हैं एक "दोहराने n बार" ब्लॉक

के समारोह को दोहराने के लिए एक का उपयोग करके में एक incremeting पाश काउंटर चर जोड़ कर आप एक "हमेशा के लिए" ब्लॉक

के बराबर मिलता है यदि आप किसी अन्य लिपि/स्प्राइट की जरूरत है को तोड़ने को गति प्रदान करने तो एक सार्वजनिक चर आप कहीं से भी पाश तोड़ने के लिए और एक भी शर्त को तोड़ने अलग स्प्राइट के लिए लूप जाने दूँगी हालत।

मैं ब्लॉक की एक छवि पोस्ट करूंगा लेकिन यह मेरा पहला जवाब है और साइट मुझे नहीं जाने देगी!

सौभाग्य

+0

आप एक तस्वीर बनाने के लिए [स्क्रैचब्लॉक] (http://scratchblocks.github.io) का उपयोग कर सकते हैं। ;) इसके साथ समस्या यह है कि हम तकनीकी रूप से लिपि से बाहर लिपि से बाहर नहीं टूट रहे हैं; हम बस कुछ सशर्त रिटर्न सच होने तक लूपिंग कर रहे हैं। – towerofnix

+0

यदि मिड लूप (स्क्रैच में एक अजीब चीज की आवश्यकता है) तोड़ना महत्वपूर्ण है, और लूप का अंतिम पुनरावृत्ति पोस्ट लूप ब्लॉक में पूर्ववत नहीं है, तो _if स्टॉप स्क्रिप्ट_ रूट जाने का एकमात्र तरीका हो सकता है। ब्रॉडकास्ट सुंदर नहीं हैं लेकिन वे कस्टम ब्लॉक पर मेरी फॉलबैक होगी जो मुझे कुछ बच्चों को समझाने में कम आसान पाया गया है। – sjrg1

1

आप के अंदर या repeat के बाहर एक चर बनाने के लिए और इस तरह अपनी स्क्रिप्ट बना सकते हैं:

repeat until [[my variable] = [e.g: 1]] 
your code 
your code 
your code 
your code 
end of repeat until 
+0

ओह हाँ, अब मैं इस बारे में सोचने के लिए मूर्खतापूर्ण महसूस नहीं करता हूं। मुझे इस समाधान की तरह है। :) – towerofnix

0

आप इसे एक्स बार दोहराने कर सकते हैं या यह एक निश्चित बिंदु जहां कर यह बंद हो जाता है, जैसे एक और परिवर्तनीय बदल रहा है।

अन्यथा, मुझे नहीं लगता कि ऐसा करने के लिए एक wat है।

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