2 डी टॉप-डाउन मैप: सामान्यीकरण या नहीं?


11

मैं गेम प्रोग्रामिंग के साथ एक पूर्ण शुरुआत कर रहा हूं, क्या यह प्रश्न खराब रूप से तैयार किया जाना चाहिए, ध्यान रखें कि यह मेरी तरफ से ढिलाई नहीं थी, लेकिन गेम प्रोग्रामिंग अनुभव की कमी थी।

जिस गेम को मैं कोड करने की योजना बना रहा हूं, वह "वर्ल्ड" के रूप में टॉप-डाउन 2 डी मैप का उपयोग करेगा। दुनिया खिड़की से बड़ी हो सकती है (खिड़की ज़ूम इन या आउट हो सकती है) और वाहन दुनिया के किसी भी बिंदु पर स्थित हो सकते हैं (= यह एक टाइल वाला नक्शा नहीं है, अंतरिक्ष "निरंतर" है)।

एक उदाहरण के साथ स्पष्ट करने के लिए: यदि दुनिया 1000x1000 मीटर का भूभाग है, तो एक वाहन स्थान पर हो सकता है (327.31, 720.4) मीटर।

मेरा प्रश्न है: आंतरिक रूप से दुनिया का प्रतिनिधित्व करने का सबसे सुविधाजनक तरीका क्या है? मैं इन संभावनाओं के बारे में सोच सकता था:

  • कुछ भी न करें और मीटर का उपयोग करें जैसे कि मैं भौतिक वस्तु के साथ काम कर रहा था,
  • अधिकतम ज़ूम पर 1000 मीटर का प्रतिनिधित्व करने के लिए पिक्सेल की संख्या के रूप में दुनिया के आकार को परिभाषित करने वाले पिक्सल को सामान्य करें ,
  • 1 को सामान्य करें 1 आकार के वर्ग के रूप में शब्द को परिभाषित करना

... लेकिन मुझे यकीन है कि कुछ अन्य भी हो सकते हैं / कुछ मेरा कोई मतलब नहीं हो सकता है। यह सिर्फ इतना है कि मेरा पहला गेम होने के कारण मेरे सामने समस्याओं की स्पष्ट तस्वीरें नहीं हैं, और मैं एक उचित सही प्रारंभिक विकल्प बनाने में कुछ मार्गदर्शन चाहूंगा।

आपके समय के लिए शुक्रिया।


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

जवाबों:


10

मैं दूरी के लिए आपके आधार के रूप में एक वास्तविक-विश्व मूल्य (मीटर, पैर, आदि) का उपयोग करने से सहमत हूं। आपके अन्य दो सुझावों के साथ समस्या यह है कि वे दोनों चर हैं। दुनिया के आकार के साथ काम 1करने से आपके सभी अंकगणित -1 और 1 के बीच फ्लोटिंग-पॉइंट हो जाएंगे, जिससे अधिक फ्लोटिंग-पॉइंट त्रुटियां हो सकती हैं। इसके अलावा, क्या आपको कभी भी परिवर्तनशील विश्व आकार (लंबे समय तक गेम के लिए "बड़ी" दुनिया) बनाने का निर्णय लेना चाहिए, आप अपने कोड में कई समस्याएं पेश करेंगे। इसी तरह, यदि आप पिक्सेल का उपयोग करते हैं, तो भी अधिकतम / न्यूनतम ज़ूम स्तर पर, आप भ्रम में चलेंगे और साथ ही समस्याओं को ज़ूम स्तर को बढ़ाने या घटाने का निर्णय लेना चाहिए।


यह उत्तर उत्कृष्ट (+1) है। मुझे विशेष रूप से पसंद है कि आपने दुनिया के आकार के लिए "1" का उपयोग करके संभावित समस्याओं को कैसे समझाया।
रैंडोल्फ रिचर्डसन

यदि आप किसी भी प्रकार का भौतिक सिमुलेशन कर रहे हैं, भले ही पूरी तरह से बना हुआ हो, फिक्स्ड-पॉइंट पूर्णांक का उपयोग करके अमान्य परिणाम उत्पन्न होंगे। आपको बस इतना करना है कि विकर्ण पर इकाई गति से एक एकल वाहन को मॉडल करना है और आप पाएंगे कि आपके पास इसकी स्थिति का ठीक से प्रतिनिधित्व करने का कोई रास्ता नहीं है।
eda-qa mort-ora-y

3
सहमत पुन: मीटर का उपयोग कर। यह आपको मानसिक रूप से कल्पना करने और चीजों को समझने में भी मदद करने वाला है। "वह वाहन 5 मीटर लंबा है", या "ये दो वस्तुएं 500 मीटर अलग हैं" और जो आप कर रहे हैं उसके लिए एक महसूस करने के लिए हर समय मानसिक गणित नहीं करना होगा।
टिम होल्ट

-1, पूर्णांक अंकगणितीय के बारे में कथन फ़्लोटिंग पॉइंट की तुलना में तेज़ होने के बारे में सामान्य रूप से सच नहीं है, वास्तव में वे अधिकांश आधुनिक प्लेटफार्मों पर बहुत तेज़ हैं
Maik Semder

2
फिर भी निरपेक्ष पदों के लिए निश्चित-बिंदु मानों का उपयोग करना एक अच्छा विचार हो सकता है। यह पूरी दुनिया में निरंतर सटीक और समान भौतिकी की ओर जाता है।
कोडइन्चोस 19

7

आपके द्वारा सुझाए गए तीन विकल्पों में से, मीटर का उपयोग करना संभवतः सबसे अच्छा होगा। जैसा कि आप अन्य डेटा बनाते हैं, मीटर में लंबाई से निपटना आपको जीवन को बहुत आसान बना देगा। अन्य कारणों से, आप अपने विश्व आकार को बदलने का निर्णय ले सकते हैं, या विभिन्न स्तरों को अलग-अलग आकार के नक्शे की आवश्यकता हो सकती है।

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


5

'1' के लिए सामान्य रूप से जाना वास्तव में जाने का तरीका नहीं है (क्या होगा यदि आपके पास एक वर्ग नहीं है? या कई दुनिया विभिन्न आकार के साथ ...)।

पिक्सेल का उपयोग करना ... कभी भी गेमप्ले और ग्राफिक उपायों को मिलाएं !! अपने आप को लॉक न करें ताकि आप कोड बदलने के बिना ग्राफिक्स को बदल न सकें।

तो मीटर (पैर या जो भी माप आपको सबसे अधिक पसंद है) जाने का रास्ता है। आप अपने मिसाइल लांचर को ०.००० much६ इकाइयों / सेकंड से ५० किमी / घंटा की गति से कोड करना बेहतर समझेंगे ...

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