मैं सीखने के उद्देश्यों के लिए एक घटक-आधारित इकाई प्रणाली (और बाद में कुछ गेमों पर उपयोग करने के लिए) को डिजाइन करने की कोशिश कर रहा हूं और जब यह इकाई राज्यों को अद्यतन करने की बात आती है तो मुझे कुछ परेशानी हो रही है।
मैं घटक के बीच निर्भरता को रोकने के लिए घटक के अंदर एक अद्यतन () विधि नहीं करना चाहता।
वर्तमान में मेरे मन में यह है कि घटक डेटा को पकड़ते हैं और सिस्टम घटकों को अपडेट करते हैं।
इसलिए, अगर मेरे पास कुछ संस्थाओं (जैसे खिलाड़ी, दुश्मन 1, दुश्मन 2) के साथ एक सरल 2 डी गेम है जिसमें ट्रांसफ़ॉर्म, मूवमेंट, स्टेट, एनीमेशन और रेंडरिंग घटक हैं, तो मुझे लगता है कि मुझे होना चाहिए:
- एक मूवमेंट सिस्टम जो सभी मूवमेंट घटकों को स्थानांतरित करता है और स्टेट घटकों को अपडेट करता है
- और एक रेंडरसिस्टम जो एनिमेशन घटकों को अपडेट करता है (एनीमेशन घटक में प्रत्येक राज्य के लिए एक एनीमेशन (यानी फ्रेम / बनावट का एक सेट) होना चाहिए और इसे अपडेट करने का मतलब है कि वर्तमान राज्य के अनुरूप एनीमेशन का चयन करना (जैसे कूदना, मूविंग_लेफ्ट, आदि), और फ्रेम इंडेक्स अपडेट करना)। फिर, रेंडरसिस्टम प्रत्येक इकाई के एनीमेशन के वर्तमान फ्रेम के अनुरूप बनावट के साथ रेंडर घटकों को अपडेट करता है और स्क्रीन पर सब कुछ प्रस्तुत करता है।
मैंने आर्टेमिस फ्रेमवर्क जैसे कुछ कार्यान्वयन देखे हैं, लेकिन मुझे नहीं पता कि इस स्थिति को कैसे हल किया जाए:
मान लीजिए कि मेरे खेल में निम्नलिखित संस्थाएँ हैं। प्रत्येक इकाई में राज्यों का एक सेट और प्रत्येक राज्य के लिए एक एनीमेशन होता है:
- खिलाड़ी: "बेकार", "चलती_ ठीक", "कूद"
- दुश्मन 1: "मूविंग_अप", "मूविंग_डाउन"
- शत्रु २: "मूविंग_लेफ्ट", "मूविंग_ राइट"
प्रत्येक इकाई की वर्तमान स्थिति को अपडेट करने के लिए सबसे अधिक स्वीकृत दृष्टिकोण क्या हैं? केवल एक चीज जिसके बारे में मैं सोच सकता हूं कि प्रत्येक समूह के लिए अलग-अलग सिस्टम हैं और अलग-अलग राज्य और एनीमेशन घटक हैं, इसलिए मेरे पास प्लेयरस्टैट, प्लेयरएनीमेशन, एनमी 1 स्टैट, एनमी 1 एनीमेशन होगा ... प्लेयरमॉवमेंटसिस्टम, प्लेयररेंडरिंगसिस्टम ... लेकिन मुझे लगता है कि यह एक बुरा है। समाधान और घटक-आधारित प्रणाली होने के उद्देश्य को तोड़ता है।
जैसा कि आप देख सकते हैं, मैं यहाँ बहुत खो गया हूँ, इसलिए मैं किसी भी मदद की बहुत सराहना करूँगा।
संपादित करें: मुझे लगता है कि इस काम को करने का हल मैं जैसा चाहता हूं, यह है:
आप सभी संस्थाओं के लिए उपयोग किए जाने के लिए पर्याप्त रूप से स्टेटकंपोनेंट और एनीमेशनकॉम्पोनेंट जेनेरिक बनाते हैं। उनके पास जो डेटा है, वह चीजों को बदलने के लिए संशोधक होगा जैसे कि एनिमेशन खेला जाता है या कौन से राज्य उपलब्ध हैं। - बाइट 56
अब, मैं यह पता लगाने की कोशिश कर रहा हूं कि इन 2 घटकों को सामान्य रूप से कैसे डिज़ाइन किया जाए ताकि मैं उनका पुन: उपयोग कर सकूं। प्रत्येक राज्य के लिए एक यूआईडी हो सकता है (उदाहरण के लिए चलना, दौड़ना ...) और इस पहचानकर्ता द्वारा बनाए गए एनीमेशनकंपेनट में एक नक्शे में एनिमेशन को संग्रहीत करना एक अच्छा समाधान हो सकता है?
statecomponent
और animationcomponent
सामान्य बनाते हैं । उनके पास जो डेटा है, वह चीजों को बदलने के लिए संशोधक होगा जैसे कि एनिमेशन खेला जाता है या कौन से राज्य उपलब्ध हैं।