उदाहरण के लिए, मेरे पास गेम क्लास है और यह int
खिलाड़ी के जीवन को ट्रैक करता है। मेरी एक शर्त है
if ( mLives < 1 ) {
// Do some work.
}
हालांकि यह स्थिति फायरिंग करती है और काम बार-बार किया जाता है। उदाहरण के लिए, मैं 5 सेकंड में गेम से बाहर निकलने के लिए टाइमर सेट करना चाहता हूं। वर्तमान में, यह हर फ्रेम में इसे 5 सेकंड तक सेट करता रहेगा और खेल कभी समाप्त नहीं होगा।
यह सिर्फ एक उदाहरण है, और मुझे अपने खेल के कई क्षेत्रों में भी यही समस्या है। मैं कुछ शर्त के लिए जाँच करना चाहता हूँ और फिर एक बार और केवल एक बार कुछ करना है, और फिर जाँच करें या अगर-स्टेटमेंट में फिर से कोड नहीं है। कुछ संभावित समाधान जो मन में आते हैं वे bool
प्रत्येक स्थिति के लिए होते हैं और bool
जब स्थिति आग हो जाती है तब सेट करते हैं । हालाँकि व्यवहार में यह बहुत गन्दा हो जाता है bools
, क्योंकि उन्हें क्लास फ़ील्ड के रूप में संग्रहीत किया जाना चाहिए, या सांख्यिकीय रूप से स्वयं विधि के भीतर।
इसका उचित समाधान क्या है (मेरे उदाहरण के लिए नहीं, बल्कि समस्या डोमेन के लिए)? आप एक खेल में यह कैसे करेंगे?