मैं बेतरतीब ढंग से 2 डी टाइल-आधारित साइड-स्क्रोलर इलाके कैसे उत्पन्न कर सकता हूं?


11

मैं बेतरतीब ढंग से निम्नलिखित टाइलसेट का उपयोग करके 2 डी साइडस्कॉलर गेम के लिए एक मानचित्र बनाना चाहता हूं: यहाँ छवि विवरण दर्ज करें

मैंने उदाहरण के लिए, बिटमास्किंग प्रक्रिया पर कुछ बेहतरीन लेख पाए हैं: http://www.angryfishstudios.com/2011/04/adventures-in-bitmasking/ http://www.saltgames.com/2010/a-bitwise -method के लिए आवेदन करने वाले-tilemaps /

मुझे क्लॉज़ या स्विच स्टेटमेंट को बड़ा करने के बजाय बिटमास्क / टिलमास्क का उपयोग करने का विचार पसंद है।

हालाँकि, मुझे पूरी प्रक्रिया को देखने में परेशानी हो रही है और इनमें से कोई भी लेख यादृच्छिक होने की बात नहीं करता है।

मेरी टाइलें कई अलग-अलग तरीकों से एक साथ फिट होती हैं, न कि केवल एक ही तरीके से, जैसे कि मैं जिन उदाहरणों से जुड़ा हुआ हूं, उनमें टाइल्स लगती हैं।

उदाहरण के लिए यहाँ कुछ उदाहरण हैं:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

चूंकि मेरी टाइलें कई अलग-अलग तरीकों से एक साथ फिट होती हैं, मुझे नहीं लगता कि 8 बिट मास्क काम करेगा। इसलिए, मैं एक बड़े बिटमास्क का उपयोग करने के बारे में सोच रहा था। चार [8] या चार तरह कुछ 4

अगर कोई कृपया कुछ छद्मकोड / उदाहरण दिखा सकता है कि सामान्य एल्गोरिथ्म कैसा होगा, तो मैं इसकी बहुत सराहना करूंगा।

जवाबों:


3

हां, मास्क का आकार विकल्पों की बढ़ती संख्या के साथ बढ़ेगा - आपका अपना लिंक http://www.saltgames.com/2010/a-bitwise-method-for-applying-tilemaps/ दूसरा भाग मुख्य विचार की व्याख्या करता है।

संक्षेप में, आपको टाइल्स के बीच प्रत्येक 'बॉर्डर' के लिए एक्स संभावनाओं की गणना करनी होगी; आपके विशेष उदाहरण में ऐसा लग रहा है कि "टाइल टॉप / बॉटम" या तो (1) सफेद (2) कवर या (3) आधा कवर हो सकता है - जो संयोग से लेख में दिए गए 'ट्रिनिटी' उदाहरण से मेल खाता है।

लेकिन मुखौटे केवल आपको टाइल की संभावनाओं को उन तक सीमित रखने में मदद करेंगे जो खींची जा सकती हैं, अपने आप में यह एक तरीका नहीं है जो दिखाता है कि वास्तविक नक्शे को समझदार तरीके से कैसे उत्पन्न किया जाए।

आपकी विशेष टाइलट वास्तव में काफी प्रतिबंधात्मक है - यह केवल एक ही सतह के उठने / गिरने का वर्णन करता है, और किसी भी 'पूर्णांक-स्तर' के शुरुआती बिंदु पर आपके पास केवल कुछ वैध विकल्प हैं। उदाहरण के लिए, टाइल के बाद # 2 केवल टाइलें # 1 या # 8 संभव हैं। आप बस बाईं से दाईं ओर जा सकते हैं, जिसकी सूची (कुछ) टाइल पिछली टाइल के बाद आ सकती है, और बेतरतीब ढंग से उनमें से एक को चुन सकती है।


मुझे लगता है कि यह वह उत्तर है जिसकी मुझे तलाश है, हालांकि यह अभी भी थोड़ा बादल है। क्या आप पाठ या छद्मकोश में या तो थोड़ा और विस्तृत जान सकते हैं कि आपकी व्याख्या का अंतिम भाग कैसे काम करेगा? "आप बस बाईं से दाईं ओर जा सकते हैं, जिसकी सूची (कुछ) टाइल पिछली टाइल के बाद आ सकती है, और बेतरतीब ढंग से उनमें से एक को चुन सकती है।"
ेरेबेल ५५

1
प्रत्येक टाइल प्रकार के लिए, इसके बाद क्या टाइल की अनुमति है, इसकी एक सूची है - बहुत कम टाइलें हैं, इसे जल्दी से मैन्युअल रूप से किया जा सकता है। 'ऊंचाई' बदल जाएगी, # 10s के साथ नई टाइल के नीचे सब कुछ भरें।
पीटरिस

आह तो आप इस विधि का उपयोग करने के लिए कह रहे हैं बिटकॉस्म?
.रबेल ५५

1
हां, यदि सभी 2d सामग्री सार्थक है, तो बिटमास्किंग उपयोगी है, लेकिन आपके नक्शे एकल-स्तर, अलग-अलग ऊंचाई की एक क्षैतिज सतह लगते हैं।
पीटरिस

यह समझ में आता है, "पहाड़" अलग-अलग ऊंचाइयों के होंगे और एक दूसरे में बह जाएंगे। तो अनिवार्य रूप से यह एक निरंतर पहाड़ परिवर्तन होगा जैसे ही आप आगे बढ़ते हैं। एक कोसाइन / साइन लहर की तरह जो विभिन्न बिंदुओं पर यादृच्छिक परिमाण है। क्या मुझे नक्शा बनाते समय बाएं से दाएं या ऊपर से नीचे जाना चाहिए?
ेरेबेल ५५

6

क्या आपने 1 डी पेरलिन या सिंप्लेक्स शोर फ़ंक्शन का उपयोग करने पर विचार किया है? इसके कई फायदे हैं, जिनमें शामिल हैं:

  1. अनंत (फ्लोटिंग-पॉइंट सटीक के दायरे में), गैर-दोहराव वाला इलाका

  2. वास्तविक समय में उत्पन्न किया जा सकता है (यहां तक ​​कि एक shader में, जो तेज है ), या आगे-के-समय और बनावट में संग्रहीत, आपके उदाहरण में

  3. सीमाएं स्वचालित रूप से मेल खाती हैं क्योंकि दोनों पर्लिन और सिम्प्लेक्स निरंतर हैं।

  4. हालाँकि यह इलाका छद्म-यादृच्छिक है, लिफ़ाफ़े को लागू करने के लिए या बस उन क्षेत्रों में सप्तक की संख्या को कम करना आसान है, जहाँ आपको समतल क्षेत्रों या अन्य विशिष्ट भू-भाग सुविधाओं की आवश्यकता होती है।

1 डी पेर्लिन कार्यान्वयन के काफी गहन विवरण के लिए इस लिंक को देखें

एक लिफाफा मूल रूप से एक अदिश क्षेत्र या फ़ंक्शन है जो आपके आउटपुट को बचाने या प्रदर्शित करने से पहले शोर फ़ंक्शन से गुणा किया जाता है।

यहाँ छवि विवरण दर्ज करें

(प्रारंभिक छवि उपरोक्त संदर्भ लेख से उधार ली गई है।)

इस उदाहरण में, लाल रेखा के रूप में परिभाषित एक टुकड़े-टुकड़े समारोह का प्रतिनिधित्व करता है

x < 0.3 : y = (0.3-x)/0.3)
x < 0.5 : 0
x < 0.7 : (x - 0.5) / 0.2
else    : 1

... जिसे एक चिकनी फ़ंक्शन का उपयोग करके बेहतर परिभाषित किया जा सकता है। इस मामले में, यह केवल पठार से पहले 0 से नीचे की चीजों को मापता है, फिर 1 तक पीछे जाता है।

अपडेट करें

यहाँ मेरी एक परियोजना से एक 3D सिम्प्लेक्स "इलाके" का एक उदाहरण है, जिसमें फैलाना + स्पेक्युलर लाइटिंग के साथ, पूरी तरह से एक वर्टीकल + टेस्स + नाज़ुक शैडर पाइप के भीतर उत्पन्न होता है। आपकी स्थिति के लिए, मैं इलाके की ढलान पाने के लिए इसमें से एक ऊर्ध्वाधर टुकड़ा निकालूंगा।

यहाँ छवि विवरण दर्ज करें

और ऊपर से नीचे का ऑर्थोग्राफ़िक दृश्य:

यहाँ छवि विवरण दर्ज करें


यह वास्तविक टाइल छवियों को स्वयं उत्पन्न करने के लिए एक तकनीक है?
ेरेबेल ५५

1
@ erebel55 हां। छवि के भीतर पौधों के विभिन्न बच्चों को रखने के लिए, और ढलान वाले इलाके को उत्पन्न करने के लिए कहां (आपके उदाहरण के आधार पर) यह तय करने के लिए आप एक 2 डी फ़ंक्शन का उपयोग कर सकते हैं। मैं महान परिणामों के साथ 3 डी में इसका इस्तेमाल किया है।
डी एफ

यह एक दिलचस्प विधि की तरह दिखता है, मुझे यकीन नहीं है कि मैं इस मार्ग से नीचे जाना चाहता हूं क्योंकि मेरे पास मेरी छवियां पहले से ही हैं।
.रेबेल ५५

यदि आपके लिए यह काम कर रहा है तो @ erebel55 हाँ, कोई कारण नहीं है।
डी एफ

वैसे मुझे यादृच्छिक पीढ़ी अभी तक काम नहीं मिली है, लेकिन मुझे आशा है कि;) मैंने आपको इस पद्धति के लिए वोट दिया था, जैसा कि यह दिलचस्प था, और मैं इसे भविष्य में कुछ समय का उपयोग कर सकता हूं। धन्यवाद
erebel55
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.