मैं XNA का उपयोग करके विंडोज 7 फोन के लिए 2 डी स्प्राइट-आधारित गेम विकसित करने के बीच में हूं। इसके लिए उपलब्ध प्रशिक्षण और ट्यूटोरियल काफी मददगार हैं, लेकिन मुझे जो समस्या है, वह यह है कि उनमें से प्रत्येक अपने वर्ग के डिजाइन को अलग तरीके से अपनाता है, और कोड विशेष रूप से अच्छी तरह से नहीं है। परिणामस्वरूप, मेरे लिए यह कठिन हो गया है कि मैं एक विशेष वर्ग को कौन सी जिम्मेदारियाँ दे सकूँ।
उदाहरण के लिए, मेरे पास एक बेस स्प्राइट क्लास हो सकता है BaseSprite
जो जानता है कि कैसे खुद को ड्रा करना है, टकरावों की जांच करना है, आदि मैं तब एक AnimatedSprite
वर्ग हो सकता है जो जानता होगा कि इसकी स्प्राइट शीट, एक ExplodingSprite
क्लास और कैसे नेविगेट करें । इस तकनीक को विंडोज 7 फोन जम्पस्टार्ट सत्र 2 सामग्री में अंतरिक्ष आक्रमणकारियों उदाहरण में प्रदर्शित किया गया है ।
वैकल्पिक रूप से, मैं इसके बजाय एक GameScreen
कक्षा में गेम की जिम्मेदारी को प्रस्तुत करने और चलाने का थोक रख सकता हूं ; वह वर्ग और उसके व्युत्पन्न वर्ग अपनी जिम्मेदारियों के संदर्भ में रूपों या वेब पृष्ठों की तरह अधिक व्यवहार करते हैं। स्प्राइट कक्षाएं बहुत कम तर्क के साथ अधिक सरल कंटेनर हैं।
यह विंडोज 7 फोन ट्रेनिंग किट के एलियन स्प्राइट गेम और अन्य गेम स्टेट मैनेजर उदाहरणों में उपयोग की जाने वाली तकनीक है ।
खेल के विकास में कक्षा के डिजाइन के लिए सही वस्तु-उन्मुख दृष्टिकोण क्या है?