2012-08-30 15 views
5

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

क्या मैं एक टेक्स्ट फ़ाइल जोड़ता हूं जिसमें सभी प्रकार के स्तर होते हैं, और इसे पाठ फ़ाइल से पढ़ने के लिए प्रोग्राम करते हैं? क्या मैं प्रत्येक स्तर से इस जानकारी के साथ एक स्तर वर्ग जोड़ता हूं, और जब इसे प्रारंभ करता है तो कई स्तर की वस्तुएं बनाते हैं? क्या मैं लेवल क्लास बना सकता हूं, लेकिन टेक्स्ट फ़ाइल से स्तर पढ़कर इसे शुरू कर सकता हूं?

मुझे यकीन है कि सभी विधियां काम करेंगी, लेकिन क्या ऐसा करने का एक मानक तरीका है? मैंने पहले कभी ऐसा कुछ प्रोग्राम नहीं किया है।

+1

मैं इसे एक्सएमएल द्वारा करूँगा, फिर इसे 'लेवल' क्लास में लोड करूंगा। लेकिन शायद यह सिर्फ मुझे है। – Eric

+0

एक्सएमएल पार्सिंग एंड्रॉइड पर वास्तव में धीमी है। –

+0

एक्सएमएल से बचें, मुझे एंड्रॉइड नहीं पता है, लेकिन आपको क्लास क्लास को क्रमबद्ध करने का एक और तरीका होना चाहिए, और अधिक कच्चे डेटा को अनदेखा करना। आपने इसके बारे में बात नहीं की लेकिन आपको एक स्तर संपादक भी एक साधारण की आवश्यकता है। एक बार आपके पास हो जाने के बाद, डेटा संग्रहित करना और पुनर्प्राप्त करना मुश्किल नहीं है। – bokan

उत्तर

4

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

यह देखते हुए कि, आप यह तय करते हैं कि आपको उस डेटा को किसी XML फ़ाइल, TXT फ़ाइल या किसी अन्य चीज़ में संग्रहीत करना चाहिए या नहीं। वास्तव में एक सही जवाब नहीं है। लेकिन आपको (आईएमओ) हमेशा Level वर्ग का कुछ प्रकार होना चाहिए, यह ओओपी संदर्भ में जाने का सही तरीका है। एक्सएमएल/टीXT/जो भी डेटा से स्तर बनाने के लिए कन्स्ट्रक्टर के पास आवश्यक पैरामीटर हो सकते हैं। इसमें सभी स्तर पैरामीटर भी हो सकते हैं ताकि आप कुछ कारणों से कोड को सब कुछ शुरू कर सकें। और, ज़ाहिर है, उन सभी स्तर विशेषताओं के लिए गेटर/सेटर विधियों को मत भूलना।

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

संभवतः वह उत्तर नहीं जिसे आप ढूंढ रहे थे, लेकिन यह ज्यादातर आपके ऊपर है।

+0

डेटा स्थिर है। अगर मैं वस्तुओं को प्रारंभ करने पर नहीं बनाता, तो मैं उन्हें कब बना सकता हूं? क्या आपका मतलब है कि मेरे पास प्रारंभिक रूप से स्पष्ट रूप से लिखे गए सभी स्तर पैरामीटर नहीं होना चाहिए? मुझे सेटर विधियों की आवश्यकता क्यों है? क्या मैं सिर्फ निर्माता का उपयोग नहीं करूंगा? – DanielLC

+0

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

2

जिस तरह से मेरे दोस्त और मैं कर रहे हैं, यह डेटाबेस में स्तर विशेषताओं को संग्रहीत कर रहा है, इसके बाद उपयोगकर्ता किस स्तर का चयन करता है, हम डेटाबेस को पढ़ते हैं और इसे हमारे स्तर वर्ग में लोड करते हैं जो उपयोगकर्ता के लिए स्तर बनाता है !

संपादित

हम शुरुआती रूप में अच्छी तरह कर रहे हैं, लेकिन यह बहुत बाद पहले एक बना दिया गया है नए स्तरों बनाने के लिए आसान हो गया है। =] खासकर जब से हमें बस इतना करना है कि हमारे डेटाबेस में एक पंक्ति जोड़ें और मानों को भरें।

संबंधित मुद्दे