From Test-Scratch-Wiki

यदि किनारे पर है, तो उछाल
if on edge, bounce
Category गति
Type ढेर
Introduced in १०जुलाई०४

यदि किनारे पर है, तो उछाल ब्लॉक एक मोशन ब्लॉक और एक स्टैक ब्लॉक है ब्लॉक यह देखने के लिए जांच करता है कि क्या कोई स्प्राइट स्क्रीन के किनारे को छू रहा है, और यदि यह है, तो स्प्राइट एक ऐसी दिशा की ओर इंगित करेगा जो उस दिशा को प्रतिबिम्बित करेगी जहाँ से वह आ रहा था। यह प्रतिबिंब कोण निर्धारित करने के लिए किनारे को दर्पण के रूप में उपयोग करता है। ब्लॉक स्प्राइट को स्क्रीन के किनारे से भी बाहर धकेल देगा।

उदाहरण उपयोग

  • स्प्राइट को आंशिक रूप से स्क्रीन छोड़ने से रोकना (अक्सर, इसके बाद प्रतिबिंब को रोकने के लिए दिशा ब्लॉक होता है)
  • प्रतिबिंब
  • "पोंग" जैसे खेल
  • स्प्राइट को स्क्रीन से उछलने की अनुमति देना:
  • जब उपयोगकर्ता चाहता है कि कोई विशिष्ट स्प्राइट किनारे को छुए बिना स्क्रीन में रहे।
when gf clicked
forever
move (10) steps
if on edge, bounce
  • यह मछली जैसे खेलों के लिए भी काम करता है।
when gf clicked
forever
turn cw (pick random (-10) to (10)) degrees
move (3) steps
if on edge, bounce
wait (0.01) seconds

समाधान

इस ब्लॉक को यह पता लगाकर दोहराया जा सकता है कि क्या स्प्राइट स्क्रीन के किनारे से परे है, और यदि ऐसा है तो स्प्राइट की दिशा बदल दी जा सकती है:

if <[240] < ([abs v] of (x position))> then 
    point in direction ((0)-(direction))
end
if <[180] < ([abs v] of (y position))> then
    point in direction ((0)-(direction))
end

हालाँकि, समाधान सही नहीं है, क्योंकि यह स्प्राइट को स्क्रीन के किनारे से बाहर नहीं धकेलता है। इसके अतिरिक्त, क्योंकि स्प्राइट की दिशा उसके वास्तविक आकार के बजाय उसके निर्देशांक के आधार पर बदलती है, पोशाक वाले स्प्राइट पोशाक केंद्र के आसपास केंद्रित नहीं होने के कारण स्क्रीन से उछलने के बजाय स्क्रीन के किनारे पर अटक सकते हैं।

बाउंस ब्लॉक

सुझाव फ़ोरम में कुछ उपयोगकर्ताओं ने एक सामान्यीकृत bounce::motion ब्लॉक का अनुरोध किया है, जो स्प्राइट को अन्य स्प्राइट या रंगों से टकराने पर बाउंस करने की अनुमति देगा।[1][2][3] हालांकि, ब्लॉक को अस्वीकार कर दिया गया है, क्योंकि ऐसे ब्लॉक का कार्यान्वयन कितना अस्पष्ट है है।[4][5]


सन्दर्भ

Cookies help us deliver our services. By using our services, you agree to our use of cookies.