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