परीक्षण को नियम से मिलाएँ
अक्ष-संरेखित आयतों के लिए, प्रत्येक वस्तु के बाएँ, दाएँ, ऊपर और नीचे के विस्तार की तुलना करें; ओवरलैप तब होता है जब अंतराल दोनों अक्षों पर प्रतिच्छेद करते हैं। वृत्तों के लिए, केंद्र की दूरी की तुलना त्रिज्याओं के योग से करें। एक ग्रिड गेम यह जाँच कर ज्यामिति से पूरी तरह बच सकता है कि क्या दो अभिनेता एक ही सेल का दावा करते हैं।
दो रंगीन आकृतियों वाला छोटा जाँच दृश्य बनाएँ और उनके चुने हुए टक्कर क्षेत्र दिखाएँ। किनारों के छूने, आंशिक रूप से ओवरलैप होने और बिना टकराए पास से निकलने की स्थितियाँ जाँचें। तय करें कि किनारों का छूना टक्कर माना जाएगा या नहीं, और यही नियम लगातार लागू करें ताकि गति और स्कोर के निर्णय अलग न हों।
तेज़ गति से बाधा पार करने वाली टक्कर न चूकें
एक तेज़ वस्तु एक अद्यतन पर पतली दीवार के एक तरफ और अगले पर दूसरी तरफ हो सकती है। छोटे निश्चित सिमुलेशन कदम मदद कर सकते हैं, लेकिन एकमात्र उत्तर नहीं हैं: जब बाधा की मोटाई के सापेक्ष गति सीमा बड़ी हो तो एक स्वेप्ट सेगमेंट या विस्तारित लक्ष्य का परीक्षण करें।
बहुत सारी वस्तुओं में पहले मोटे ग्रिड या स्थानिक सेल से उन जोड़ियों को हटाएँ जो एक-दूसरे के पास नहीं हो सकतीं, फिर केवल संभावित जोड़ियों की विस्तृत जाँच करें। यह ढाँचा जोड़ने से पहले मापें; कुछ दर्जन इकाइयों के लिए सीधे हर जोड़ी की जाँच आसान और पर्याप्त हो सकती है।
गेम टकराव का पता लगाना से जुड़े सवाल
क्या हिटबॉक्स को स्प्राइट रूपरेखा से मेल खाने की आवश्यकता है?
आमतौर पर नहीं। थोड़ा उदार आयत या वृत्त नियंत्रणों को अधिक न्यायसंगत महसूस करा सकता है। विकास के दौरान हिटबॉक्स दिखाएँ और गेम के नियम तथा खिलाड़ी की अपेक्षा के अनुसार उन्हें समायोजित करें।
क्या कैनवास मुझे बता सकता है कि क्या दो स्प्राइट टकराते हैं?
Canvas में isPointInPath() जैसी पाथ जाँच होती है, जो किसी बिंदु के खींचे गए पाथ के भीतर होने का पता लगाती है; लेकिन Canvas सामान्य गेम-वस्तुओं के टक्कर नियम तय नहीं करता। सिमुलेशन की ज्यामिति स्पष्ट रखें और ड्रॉइंग से स्वतंत्र रखें।
आगे पढ़ें
कोई पुरानी जानकारी दिखी? सुधार की जानकारी दें