मैं एक छोटा 2 डी गेम इंजन विकसित कर रहा हूं। वर्णों में एक पेंट विधि है जो वर्तमान में निम्नलिखित है:
- चरित्र की नई स्थिति की गणना उसकी गति आदि के अनुसार करें।
- टक्कर ग्रिड सेल का अद्यतन **
- नई स्थिति में चरित्र बनाएं
** मैंने चौराहे की जाँच की संख्या को कम करने के लिए एक टकराव ग्रिड बनाया है
अब बुनियादी एल्गोरिथ्म जो मैंने टक्कर का पता लगाने के लिए सोचा है:
For Each Character
Check intersection with characters in surrounding 8 cells
मैं बस इस कोड को पेंट विधि में रख सकता हूं। लेकिन यहाँ समस्या है जिसका मुझे अनुमान है।
मान लीजिए कि दो वर्ण A और B टकराव ग्रिड में आसन्न कोशिकाओं में स्थित हैं। अब वर्ण A के पुनरावृत्ति में उपरोक्त एल्गोरिथम के अनुसार यह पता लगाएगा कि यह B से टकरा गया है। वर्ण B के लिए पुनरावृत्ति में यह पता लगाएगा कि यह A से टकरा गया है।
लेकिन मुझे इस बात का अंदाजा है कि जब A पता लगाता है कि वह B से टकरा गया है, तो उसे B को सूचित करना चाहिए कि वह A से टकरा गया है। यह तुलना बहुत से बचाएगी जब 2 से अधिक कलाकार टकरा रहे हों। लेकिन मुझे यकीन नहीं है कि इसे कैसे संभालना है। मुझे लगता है कि हर किरदार को इसके टकराने की जाँच करने के बजाय, मुझे गेम लूप के अंदर की टक्कर की जाँच करनी चाहिए।
क्या यह दृष्टिकोण सही होगा? आपने इस तरह की समस्या को कैसे संभाला है? मैंने खुद से टकराव ग्रिड की बात सोची। क्या ग्रिड तर्क को टकराने के कोई विकल्प हैं?