मैं एक चरित्र को दीवारों पर चलने में सक्षम कैसे बनाऊं?


34

मैं मकड़ी की तरह बढ़ने के लिए एक चरित्र प्राप्त करने की कोशिश कर रहा हूं: एक बढ़ती ढलान को देखते हुए जिसे एक गेंद आमतौर पर रोल करने में सक्षम नहीं होगी, मकड़ी धीरे-धीरे क्रॉल करेगी।

इसी तरह, एक मध्य-हवाई आयताकार मंच दिया जाता है, जो किनारे तक पहुंचने के दौरान नीचे गिरने के बजाय, मकड़ी को जारी रखता है, किनारे पर लपेटता है और नीचे की तरफ जारी रहता है और फिर प्लेटफ़ॉर्म के नीचे (अंत में मंच की परिधि के चारों ओर घूमता है)।

मैंने छोटी सफलता के साथ विभिन्न एकता 2 डी घटकों में देखा है। :(

मेरी दुनिया की अधिकांश टकराव सीमाएं कोलाइडर 2 डी घटकों द्वारा चिह्नित हैं (जो गुरुत्वाकर्षण से प्रभावित एक साधारण गेंद के साथ महान काम करते हैं, लेकिन इस मकड़ी के चरित्र के साथ कम है)।


1
वह खेल: youtube.com/watch?v=ga4Zqq1tXa8 (PS1 पर "स्पाइडर", मैंने इसे बहुत समय पहले खेला था) प्रेरणा का स्रोत हो सकता है।
बाघ

जवाबों:


43

मैं वॉकर दुश्मन पर क्षुद्रग्रह बेस ब्लॉग के लिए एक लिंक पोस्ट करने वाला था जब मैंने देखा कि कर्मिंग्टन पहले से ही एक टिप्पणी में गामासूत्र लेख से जुड़ा था ।

यह शायद अपने आप में एक उत्तर के रूप में इसे थोड़ा अधिक दृश्यता और स्पष्टीकरण देने के लायक है।

मैं राईशाइन पर चल रहा हूँ, ओ-ओह!

ट्रिक है रेवड्स । ये आपके कोड को टकराव के लिए एक लाइन के साथ स्कैन करते हैं।

वॉकर को सतहों पर अच्छी तरह से संरेखित करने के लिए, वे दो किरणों को इलाके में आग लगा देते हैं, एक वॉकर की बाईं ओर से और एक उसकी दाईं ओर (ऊपर लाल और पीली लाइनें)।

प्रत्येक RaycastHit2D ऑब्जेक्ट से, आप सतह (मैजेंटा और ग्रीन लाइन) के लिए लंबवत एक सामान्य वेक्टर इंगित कर सकते हैं। दो हिट से मानदंडों के औसत से, आपको अपने चरित्र के लिए एक उपयुक्त अभिविन्यास मिलता है जो कि अंतर्निहित भू-भाग (लघुरूप रेखा) का उचित रूप से प्रतिबिंबित होता है।

आप इस ओरिएंटेशन लाइन के साथ नीचे की ओर क्षेत्र के लिए चिपके हुए चरित्र को रखने के लिए एक बल लगा सकते हैं (हालांकि यह घर्षण कम होने पर कुछ फिसलने का कारण हो सकता है), या मैन्युअल रूप से चरित्र को औसत किरण चौराहे के बिंदु पर स्थित कर सकता है जैसा कि वॉकर के साथ किया जाता है।

आप अपने चरित्र को कंपन या रोबोट से देखने के लिए धीरे-धीरे चरित्र के अभिविन्यास को मिश्रण करना चाहते हैं (देखें कि जब वॉकर कोने को पार करता है, तो सामान्य कैसे तेजी से बदलता है, लेकिन शरीर आसानी से चलता है)।

यदि आपके पास अपने इलाक़े में नुकीले कोने हैं, तो आप शायद इन किरणों को थोड़ा अंदर की ओर खींचना चाहते हैं - ताकि अगर मकड़ी 90 डिग्री की चट्टान के किनारे पर चले, तो ओवरहैडिंग किरण चट्टान के चेहरे से टकराएगी।

क्षुद्रग्रह बेस टीम वॉकर की गति (नहीं दिखाया गया) की दिशा में एक छोटी किरण को भी गोली मारता है, जो कि इलाके को हिट करने पर उस तरफ की किरण को ओवरराइड करता है। यह सुनिश्चित करता है कि 90-डिग्री अवतल कोने में चलने पर वॉकर अटक न जाए।

डॉक्स के अनुसार, 2 डी रेकास्ट 3 डी से अलग होता है, जिसमें यह उन कोलियर्स का पता लगाता है जिनके भीतर किरण शुरू होती है। यह मुझे अजीब लगता है, लेकिन यदि आपका परीक्षण इस बात की पुष्टि करता है कि आप एक लेयरमास्क का उपयोग करना चाहते हैं, तो किरणों को सीमित पर्वतीय इलाके का पता लगाने के लिए किरणों को सीमित करना होगा।


मैं इस बात की पुष्टि कर सकता हूं कि 2 डी रेकास्ट कोलाइडर का पता लगाएगा जिसमें रेकास्ट का शुरुआती बिंदु है। यह आसानी से फ़िल्टर किया जा सकता है, हालांकि, क्योंकि पहले पता लगाना हमेशा 0 की दूरी के साथ वापस आ जाता है और रेकास्ट की दिशा के एक सामान्य विपरीत है।
XenoRo

2

इसके लिए आपको कस्टम कोड की आवश्यकता होगी।

मूल रूप से आपको यह जानने की आवश्यकता है कि प्रश्न में प्लेटफ़ॉर्म की तरह निकटतम वस्तु क्या है, और फिर निकटतम किनारे और उस किनारे पर निकटतम बिंदु को ढूंढें, और फिर वहां से मकड़ी की स्थिति और घुमाव का काम करें।

इसे वास्तव में अच्छा बनाना आसान नहीं होगा, लेकिन इसे पूरी तरह से काम में लाना एक अच्छी चुनौती होनी चाहिए।


2
यहाँ एक बहुत अच्छा लिंक है, यकीन है कि अगर यह आपके मामले के लिए बिल्कुल अनुकूल नहीं है, लेकिन हो सकता है कि ... gamasutra.com/blogs/AdamWinkels/20140220/211306/…
karmington
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.