क्या कोई डिज़ाइन दोष है जब किसी इकाई का राज्य पूरी तरह से प्रवेश (), निष्पादन () और निकास () का उपयोग नहीं करता है?


9

मैं उदाहरण के लिए मैट बकलैंड के प्रोग्रामिंग गेम एआई का अनुसरण कर रहा हूं, और मुझे पता है कि मेरे पास हमेशा इकाई की स्थिति पर प्रवेश (), निष्पादन () और बाहर निकलने () के लिए उपयोग नहीं होता है। उदाहरण के लिए, एक आरपीजी में, एक हथियार में एक सुसज्जित राज्य हो सकता है, और मैं एक खिलाड़ी की क्षमता संशोधक में जोड़ने या घटाने के लिए उस राज्य के लिए प्रवेश () और निकास () का उपयोग कर सकता हूं, लेकिन वास्तव में निष्पादित करने की आवश्यकता नहीं है ( )। यह मेरे इंजन में एक डिजाइन दोष है, या इस दृष्टिकोण की कमी है?

जवाबों:


8

पुस्तक को पढ़ने से नहीं, उन लोगों को एक राज्य मशीन के लिए सामान्य प्रवेश बिंदु की तरह ध्वनि कहते हैं। कॉल को समझने के लिए, आइए देखें कि वे क्या करते हैं।

दर्ज () - राज्य सक्रिय होने पर निष्पादित।

निष्पादित () - निष्पादित किया जाता है जबकि राज्य सक्रिय होता है।

बाहर निकलें () - जब राज्य निष्क्रिय किया जाता है तो निष्पादित किया जाता है।

ये किसी भी तरह की स्टेट मशीन में फिट होते हैं। कुछ मशीनों को केवल 'निष्पादित' कॉल की आवश्यकता होती है, दूसरों को 'प्रवेश' और 'निकास' की आवश्यकता होती है, और अभी भी अन्य को तीनों की आवश्यकता होती है।

उदाहरण 1 : मशीन गन ट्रिगर।

  • निष्पादन: निर्धारित दर पर अग्नि की गोलियां।

उदाहरण 2 : फोर्स ब्रिज

  • दर्ज करें: पुल से दिखाई दें
  • बाहर निकलें: पुल गायब कर दें

उदाहरण 3 : व्यक्तिगत शक्ति कवच।

  • दर्ज करें: खिलाड़ी को अतिरिक्त सुरक्षा दें
  • निष्पादन: नाली बैटरी
  • बाहर निकलें: अतिरिक्त सुरक्षा निकालें

8

यह किसी भी दोष का संकेत नहीं है। प्रत्येक इकाई या राज्य के पास हर उपलब्ध पद्धति का उपयोग नहीं होगा। बस एग्जीक्यूट () विधि को खाली छोड़ना ठीक होगा, IMO।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.