मैं वर्तमान में C ++ के लिए अपने एंटिटी सिस्टम को फिर से डिजाइन कर रहा हूं , और मेरे पास बहुत सारे प्रबंधक हैं। मेरे डिज़ाइन में, मेरी लाइब्रेरी को एक साथ बाँधने के लिए, मेरे पास ये कक्षाएं हैं। जब मैंने "प्रबंधक" कक्षाओं की बात आती है, तो मैंने बहुत सारी बुरी बातें सुनी हैं, शायद मैं अपनी कक्षाओं को उचित रूप से नाम नहीं दे रहा हूं। हालांकि, मुझे नहीं पता कि उनका नाम क्या है।
मेरे पुस्तकालय में अधिकांश प्रबंधक, इन वर्गों से बने होते हैं (हालाँकि यह थोड़ा भिन्न होता है):
- कंटेनर - प्रबंधक में वस्तुओं के लिए एक कंटेनर
- विशेषताएँ - प्रबंधक में वस्तुओं के लिए विशेषताएँ
मेरी लाइब्रेरी के लिए मेरे नए डिजाइन में, मेरी लाइब्रेरी को एक साथ टाई करने के लिए, मेरे पास ये विशिष्ट कक्षाएं हैं।
ComponentManager - इकाई प्रणाली में घटकों का प्रबंधन करता है
- ComponentContainer
- ComponentAttributes
- दृश्य * - दृश्य का संदर्भ (नीचे देखें)
SystemManager - इकाई प्रणाली में सिस्टम का प्रबंधन करता है
- SystemContainer
- दृश्य * - दृश्य का संदर्भ (नीचे देखें)
EntityManager - इकाई प्रणाली में संस्थाओं का प्रबंधन करता है
- EntityPool - संस्थाओं का एक पूल
- EntityAttributes - एक इकाई का गुण (यह केवल CompContainer और System classes के लिए सुलभ होगा)
- दृश्य * - दृश्य का संदर्भ (नीचे देखें)
दृश्य - सभी प्रबंधकों को एक साथ जोड़ता है
- ComponentManager
- व्यवस्था प्रबंधक
- EntityManager
मैं सिर्फ दृश्य में ही सभी कंटेनर / पूल को रखने की सोच रहा था।
अर्थात
इसके अलावा:
Scene scene; // create a Scene
// NOTE:
// I technically could wrap this line in a createEntity() call in the Scene class
Entity entity = scene.getEntityManager().getPool().create();
यह यह होगा:
Scene scene; // create a Scene
Entity entity = scene.getEntityPool().create();
लेकिन, मैं अनिश्चित हूं। यदि मैं बाद में करने वाला था, तो इसका मतलब होगा कि मेरे दृश्य वर्ग के अंदर बहुत सी वस्तुएं और विधियां होंगी।
टिप्पणियाँ:
- एक इकाई प्रणाली बस एक डिजाइन है जो खेलों के लिए उपयोग की जाती है। यह 3 प्रमुख भागों से बना है: घटक, निकाय और सिस्टम। घटक बस डेटा हैं, जो संस्थाओं के लिए "जोड़ा" जा सकता है, ताकि संस्थाओं को विशिष्ट बनाया जा सके। एक इकाई को एक पूर्णांक द्वारा दर्शाया जाता है। सिस्टम में विशिष्ट घटकों के साथ, एक इकाई के लिए तर्क होते हैं।
- मैं अपने पुस्तकालय के लिए अपने डिजाइन को बदल रहा हूं, इसका कारण यह है कि मुझे लगता है कि इसे काफी बदला जा सकता है, फिलहाल मुझे यह पसंद नहीं है।