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