From Test-Scratch-Wiki
| () रंग को स्पर्श? | |
<touching color [#d15fee]?>
| |
| Category | महसूस |
| Type | बूलियन |
| Introduced in | २२दिसंबर०४ |
() रंग को स्पर्श? ब्लॉक एक महसूस ब्लॉक और बूलियन ब्लॉक है। ब्लॉक जाँचता है कि क्या उसका स्प्राइट किसी निर्दिष्ट रंग को छू रहा है। अगर ऐसा है, तो ब्लॉक सत्य लौटाता है।
इस ब्लॉक का व्यापक रूप से टकराव का पता लगाने के लिए उपयोग किया जाता है। प्लेटफ़ॉर्मर अक्सर इस ब्लॉक का उपयोग करते हैं।
चेतावनी
() रंग को स्पर्श? ब्लॉक अप्रत्याशित/अवांछित परिणाम उत्पन्न कर सकता है।
अंतर्निहित सीमा
महत्वपूर्ण रूप से, () रंग को स्पर्श? ब्लॉक हमेशा गलत नहीं लौटाता है यदि उसका स्प्राइट निर्दिष्ट रंग को नहीं छू रहा है। ऐसा इसलिए है क्योंकि स्क्रैच में रंग संवेदन में एक अंतर्निहित सीमा है। जबकि मंच १६ मिलियन से अधिक रंग प्रदर्शित कर सकता है, स्क्रैच के महसूस ब्लॉक केवल बहुत कम संख्या में रंगों को अलग करते हैं।[1] इसका मतलब है कि () रंग को स्पर्श? ब्लॉक अक्सर एक गलत सकारात्मक लौटाएगा जब एक रंग को महसूस किया जाएगा जो निर्दिष्ट रंग से अलग (लेकिन समान) है।[2] कई स्क्रैचर्स इस घटना को कभी नहीं देख सकते हैं, लेकिन जो लोग रंग पहचान में पूर्ण सटीकता चाहते हैं उन्हें स्क्रैच सीमा को ध्यान में रखना चाहिए।
एंटी-अलियासिंग
कुछ ग्राफिक्स, भले ही वे स्क्रैच पेंट एडिटर में स्पष्ट किनारों के साथ दिखाई देते हों, मंच पर होने पर [wikipedia:Spatial anti-aliasing|एंटी-अलियासिंग]] के अधीन होते हैं। इसका मतलब यह है कि, क्लिक करके रंग का चयन करते समय, सावधानी बरतनी चाहिए कि गलती से पारभासी किनारे वाला पिक्सेल न चुनें।
प्रदर्शन
() रंग को स्पर्श? ब्लॉक का उपयोग करने पर विचार करने वाले स्क्रैचर्स को पता होना चाहिए कि यह स्पर्श ()? ब्लॉक की तुलना में धीमा है।[3]
उदाहरण उपयोग
- स्प्राइट को तब तक हिलाना जब तक वह किसी रंग को न छू ले।
repeat until <touching color [#000000]?>
move (10) steps
end
- यदि कोई स्प्राइट किसी रंग को छूता है तो उससे कुछ करवाना, उदाहरण के लिए, यदि स्प्राइट नीले रंग (पानी) को छूता है तो वह विशिष्ट तरीके से प्रतिक्रिया करता है।
if <touching color [#0000ff]?> then
say [I found water!] for (2) seconds
end
- यदि गोलियां किसी विशिष्ट रंग की दीवारों से टकराती हैं तो उन्हें रोकना।
repeat until <touching color [#cf4141] ?>
move (10) steps
end
delete this clone
- यह महसूस करना कि क्या कोई स्प्राइट भूलभुलैया में किसी मृत-अंत पर पहुंच गया है।
forever
if < not<touching color [#007f00]?>> then
move (2) steps
end
end
- स्प्राइट को दीवारों से गुजरने से रोकना।
forever
if <touching color [#ffff7f]?> then
set [x velocity v] to (0)
end
end
- किसी रंग को छूने पर खेल समाप्त हो जाना।
forever
if <touching color [#01efff]?> then
say [Game over.] for (1) seconds
broadcast (game over v)
end
end