2 डी प्लैटफॉम गेम के लिए उपयुक्त स्तर प्रतिनिधित्व / डेटा स्ट्रेक्चर?


9

मैं जावा में मारियो की एक प्रति प्रोग्राम करने वाला हूं। मैं स्तरों के लिए 2 अभ्यावेदन / डेटा संरचनाओं पर सोच रहा हूँ, लेकिन मुझे यकीन नहीं है कि मुझे कौन सा चुनना चाहिए:

  • एक 2D पूर्णांक सरणी।
  • टुकड़ों में स्तर को विभाजित करने के लिए एक चतुष्कोण।

इसके फायदे और नुकसान क्या हैं?

जवाबों:


9

एक क्वाडट्री का बिंदु कुशलता से डेटा की बड़ी मात्रा को कम करना है ताकि आप केवल तत्काल आसपास के क्षेत्र में डेटा पर समय व्यतीत करें। हालाँकि एक 2D सरणी पहले से ही आपको स्थान-विशिष्ट यादृच्छिक अभिगम देती है, इसलिए 2D गेम के लिए जो क्वाडट्री को बेमानी बना सकता है। एक 3 डी गेम में आप सब कुछ का पता लगाने के लिए एक सरणी का उपयोग नहीं कर सकते हैं और यह वह जगह है जहां क्वाडट्रैस (या बेहतर अभी तक ऑक्ट्रेसेस) काम कर रहे हैं।

अब, मैं यहाँ स्तर के लिए अंतर्निहित डेटा प्रतिनिधित्व के बारे में बात कर रहा हूँ। इस बात पर निर्भर करता है कि आपका ग्राफिक आर्किटेक्चर सेटअप कैसे है (उदाहरण के लिए एक 3 डी इंजन में विमानों के साथ 2 डी ग्राफिक्स करना) आप चित्रमय सामग्री को कुशलता से खींचने के लिए दृश्य ग्राफ में क्वाडट्र्स का उपयोग करना चाह सकते हैं।

और फिर अपने स्तर पर विभिन्न दुश्मनों और अन्य इंटरैक्टिव वस्तुओं को मत भूलना। शायद आप स्तर की टाइलों का प्रबंधन करने के लिए 2 डी सरणी का उपयोग करते हैं, लेकिन सभी इंटरैक्टिव तत्वों (जैसे एक भौतिकी डेटाबेस के लिए) को व्यवस्थित करने के लिए क्वाडट्रैस का उपयोग करते हैं।


इसे इस तरह से सोचें: अपने स्तर पर यादृच्छिक रूप से एक बिंदु चुनें, और फिर सोचें कि उस बिंदु के 1000 पिक्सेल त्रिज्या के भीतर सब कुछ पता लगाने में कितना काम लगेगा। यदि आप ऐसा जल्दी कर सकते हैं क्योंकि सब कुछ एक 2 डी सरणी में स्थान के अनुसार व्यवस्थित है, तो आपको एक क्वाडट्री की आवश्यकता नहीं है। यदि हालाँकि आपको हर चीज के माध्यम से लूप करना होगा और व्यक्तिगत रूप से प्रत्येक ऑब्जेक्ट की दूरी की जांच करनी होगी, तो आप क्वाडट्री का उपयोग करके खोज को अधिक कुशल बना सकते हैं।

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