मैं आइसोमेट्रिक टक्कर का पता कैसे लगा सकता हूँ?


14

मैं एक आइसोमेट्रिक रन-जंप स्टाइल प्लेटफ़ॉर्मर बनाना चाहूंगा। खिलाड़ी को फर्श के ऊपर प्लेटफार्मों के शीर्ष पर कूदने में सक्षम होना चाहिए, वस्तुओं के किनारे पर हिट करना आदि।

मैं एक 2D गेम इंजन का उपयोग कर रहा हूँ, इसलिए मैं उन आयामों के लिए पूर्ण 3D टकराव का अनुकरण नहीं करना चाहूँगा जो मैं उपयोग नहीं कर रहा हूँ।

मैं सोच रहा हूं कि खेल में वस्तुओं का उपयोग किया जाना चाहिए: X, Y, चौड़ाई, ऊंचाई और Z गहराई के लिए।

उन मूल्यों का उपयोग करते हुए, मुझे टकरावों का पता कैसे लगाना चाहिए?


मुझे पता है कि यह एक सामान्य प्रकार का प्रश्न है लेकिन, मैं अच्छे शिक्षण संसाधनों के लिए अधिक विस्तृत उत्तर या लिंक चाहूंगा।
जदेसनो

जवाबों:


19

2 विकल्प:

  • आप इसे एक निश्चित ऑर्थोग्राफ़िक कैमरे के साथ 3 डी गेम के रूप में मान सकते हैं। तब आप किसी भी मानक 3 डी गेम संसाधनों / पुस्तकों / ट्यूटोरियल / लाइब्रेरी का उपयोग कर सकते थे। यहां तक ​​कि अगर यह स्प्राइट्स के साथ 2 डी में प्रस्तुत किया गया है, तो आंदोलन आदि के लिए गणित अभी भी दृश्य के पीछे 3 डी होगा। यह आपको सबसे सटीक परिणाम देगा।

  • आप इसे एक अतिरिक्त ऊंचाई संपत्ति के साथ, एक शीर्ष 2 डी गेम के रूप में मान सकते हैं। उदाहरण के लिए, एक 2 डी ग्रिड की कल्पना करें जहां प्रत्येक टाइल की ऊंचाई मूल्य है। एक टाइल से दूसरे में जाने पर, आप केवल एक पात्र को किसी विशेष टाइल से गुजरने देते हैं यदि चरित्र के पैर उस टाइल की ऊंचाई के बराबर या उसके बराबर हैं, लेकिन यदि वे कूद रहे हैं और गुरुत्वाकर्षण उन्हें एक टाइल के ऊपर नीचे लाता है, तो आप उन्हें वहीं रहने दो। थोड़ा और काम करके आप इसे बना सकते हैं ताकि आप पुलों आदि के नीचे चल सकें।


4

ऐसे कई तरीके हैं जिनसे आप इसे सरल बना सकते हैं। उदाहरण के लिए, यदि आपने परतों की अनुमति नहीं दी है (उदाहरण के लिए, एक पुल जो आप दोनों के ऊपर और नीचे चल सकते हैं, तो आप एक्स / वाई आयामों में पता लगाने वाले सभी टकराव कर सकते हैं, जहां आप टकराव को इसकी ऊंचाई + गहराई तक सेट कर सकते हैं। या ऊँचा।


2

यदि खेल एक आयताकार ग्रिड पर आधारित है, तो यह ग्रिड आपके एक्स / वाई अक्षों को परिभाषित करता है। और Z का उपयोग ऊंचाई के लिए किया जा सकता है।

टकराव तो किसी भी 2D टाइल-आधारित गेम जितना आसान या कम-से-कम होता है।

फिर आपको बस ग्रिड से वापस आइसोमेट्रिक स्क्रीन को प्रतिपादन के लिए निर्देशांक में बदलने की आवश्यकता है। यह काफी सीधा है - लेकिन आपको 'गहराई' मानों की गणना करने के लिए, छांटने के उद्देश्यों के लिए (पीछे से सामने की तरफ आइसोमेट्रिक दृश्य प्रदान करते हुए) सोचने की आवश्यकता हो सकती है।


ऊंचाई के लिए Z का उपयोग करना वृत्ति के खिलाफ जाता है, लेकिन टॉप-डाउन 2D गेम्स पर करना सही बात है। फिर आप साइड-ऑन और टॉप-डाउन गेम के बीच कोड का पुन: उपयोग कर सकते हैं।
इयॉन

2

मेरे आस-पास घूमते हुए मुझे यह डेमो मिलता है: http://planetskill.com/iso/

स्थानांतरित करने के लिए WASD। अंतरिक्ष बार कूदने के लिए

यह केवल अप / डाउन अक्ष के साथ टकराव को लागू करता है लेकिन अन्य टक्कर को जोड़ना आसान होना चाहिए:

यदि अगले चरण की अप / डाउन स्थिति आपके अधिकतम से अधिक है तो बस न हटें। इससे आपको जंपिंग को आसान तरीके से लागू करना चाहिए।

नमूना कोड यहां: http://gist.github.com/478997


2

ऊपर के सभी। आइसोमेट्रिक सिर्फ एक कतरनी 2d ग्रिड है, इसलिए इसे 2d tilemap के रूप में समझें और गहराई से एनकोड करने का तरीका सोचें। आप एक नियमित 2 डी गेम में ऐसा कैसे करेंगे ('जंपिंग' करते समय पीछे या ब्लॉकों के सामने जाने में सक्षम! आप या तो प्रति टाइल एक गहराई स्टोर करेंगे (गहराई बफर-> z बफर) या आप कई परतों का उपयोग करेंगे) , या, यदि आप कट्टर व्यक्ति चाहते हैं, तो आप प्रति कॉलबैक (या मानचित्रण) पर कॉलबैक लागू करेंगे और आप जो चाहें, कर सकते हैं, गहराई की जांच कर सकते हैं, उपकरण की जांच कर सकते हैं, खिलाड़ी को चारों ओर ले जा सकते हैं, खिलाड़ी को धीरे-धीरे ऊपर ले जा सकते हैं, प्रारूप HD।


अच्छा जवाब काज - इस मामले की जड़ होने के नाते, मुझे आश्चर्य है कि कोई और इसे नहीं लाया। यह हमेशा वह चीज है जो भौतिक विज्ञान के संबंध में, आइसोमेट्री के बारे में नए ज्ञान को भ्रमित करती है।
इंजीनियर

1

वैसे आपके पास अपने स्तर से ऊपर एक अलग टकराव की परत हो सकती है जो दिखाई नहीं दे रही है और टकराव की जांच करने के लिए इसका उपयोग करें .. आप इसे कई परतों के लिए भी उपयोग कर सकते हैं जब तक कि आपको पता है कि खिलाड़ी किस परत पर है;)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.