ऐसा लगता है कि आप पहले ही अपने प्रश्न का उत्तर दे चुके हैं। A * संभवतः सबसे अच्छा तरीका है। हां, यह आपके द्वारा वर्णित तरीके से उपयोग किया जा सकता है, जिसमें पहाड़ों से बचने के लिए ऊंचाई की जानकारी का उपयोग करना शामिल है। जब तक आप अपनी दुनिया की सतह पर किसी भी ग्रिड के बारे में जानकारी प्राप्त करने में सक्षम होते हैं, तब तक कोई कारण नहीं है कि आप इसे ए * हेयुरिस्टिक में उपयोग नहीं कर सकते।
अंत में, आप अपने प्रश्न के अंत में पथ खोज के साथ पथ भ्रमित कर रहे हैं। पथ खोज गुरुत्वाकर्षण की परवाह नहीं करती है, जब तक कि आप इसे एक अनुमानी के रूप में नहीं जोड़ते हैं और जब से आप किसी ग्रह की सतह पर हैं, गुरुत्वाकर्षण अनिवार्य रूप से पूरी सतह पर समान होगा। कई खेलों में एक साथ गति होती है, मुझे लगता है कि आप ऐसा नहीं कर सकते।
मूल रूप से हम लाल से नीले रंग में जाने के लिए नक्शा बनाना चाहते हैं, क्योंकि यह एक गोले पर है।
चूंकि ए * अक्सर अपने वर्तमान नोड के लिए पड़ोसी हो रहा है, आप आसन्न नोड प्राप्त करने के लिए आसानी से फ़ंक्शन का एक सेट बना सकते हैं। उदाहरण के लिए, getXPlus()
, getXMinus()
, getZPlus()
और पर इतना। ये फ़ंक्शन वर्तमान नोड लेंगे और नोड को फ़ंक्शन नाम द्वारा निर्दिष्ट दिशा में वापस कर देंगे।
अधिकांश समय ये कार्य केवल एक मूल्य वृद्धि कर सकते हैं और किए जा सकते हैं, हालांकि, किनारों पर, यह बदल जाएगा।
आप अपने घन की सतह को 2D समन्वय प्रणाली में मैप करना चाहते हैं। हालाँकि, आप ऐसा करते हैं, उन्हें लाइन में नहीं लगना है, बस प्रत्येक ग्रिड को एक विशिष्ट एक्स, वाई कोऑर्डिनेट करना है।
अब जब एक किनारे पर, और आसन्न ग्रिड स्थान प्राप्त करना जरूरी नहीं है कि बस निर्देशांक बढ़ाना होगा। हमें यह पता लगाना होगा कि हम किस चेहरे की ओर बढ़ रहे हैं और उस चेहरे के निर्देशांक पर स्विच कर रहे हैं।
उदाहरण के लिए, यहां XPlus को समन्वित होने से X और Y दोनों निर्देशांक बदल जाएंगे क्योंकि हम एक नए चेहरे पर एक नए ग्रिड स्थान पर जा रहे हैं। हरी रेखा दो चेहरों के बीच एक धार का प्रतिनिधित्व करती है।
अब ये सिर्फ वैश्विक निर्देशांक हैं, एक आंतरिक स्थानीय समन्वय प्रणाली का उपयोग करना आसान हो सकता है, 3 डी आयाम के साथ जो वर्तमान में आप जिस घन चेहरे का प्रतिनिधित्व करते हैं।
किसी भी तरह से, आपको घन के चेहरे पर प्रत्येक ग्रिड स्थान के लिए एक अद्वितीय समन्वय करने की आवश्यकता है। उनके बीच ट्रैवर्सिंग इस बात पर निर्भर करेगी कि आप समन्वय प्रणाली को कैसे लागू करते हैं। आपको यह जानना होगा कि उस क्षेत्र के मानचित्र में मानचित्रों का समन्वय कहाँ से किया जाता है।
यह सब अंततः दूर होना चाहिए ताकि आपको इसके बारे में पता भी न चले।