संपादित करें:
कृपया इस प्रश्न का उत्तर @ Bluescrn देखें; वह आंदोलन वैक्टर या स्थिति के बजाय नियंत्रण फिर से खेलना में कमजोरियों पर विस्तार से बताता है।
-
आप सही रास्ते पर हैं। यहाँ मैं दृष्टिकोण का उपयोग करेंगे:
नियंत्रकों
एक नियंत्रक वर्ग बनाएं जो कीबोर्ड इनपुट प्राप्त करता है और इसे आपके चरित्र पर भेजता है। हालांकि, महत्वपूर्ण कुंजी (जैसे तीर, कूद, आदि) दबाए जाने पर और जब वे जारी किए गए थे, तो वास्तव में एक नियंत्रक रिकॉर्ड भी होता है। यह इस तरह की जानकारी को संग्रहीत करेगा:
actions[0].milliseconds = 400 actions[0].action = right pressed
actions[1].milliseconds = 1000 actions[1].action = jump pressed
actions[2].milliseconds = 1300 actions[2].action = jump released
actions[3].milliseconds = 2500 actions[3].action = jump pressed
actions[4].milliseconds = 3000 actions[4].action = jump released
actions[5].milliseconds = 5330 actions[5].action = right released
एक नियंत्रक के दो तरीके हैं:
- रिकॉर्ड: कीबोर्ड इनपुट प्राप्त करता है। सूची में रिकॉर्ड इनपुट। कीबोर्ड राज्य पर आधारित चरित्र इनपुट को हाथ देता है।
- रीप्ले: कीबोर्ड इनपुट को अनदेखा करता है। स्तर के शुरू होने के बाद से मिली सूची के अनुसार सूची के माध्यम से अग्रिम। वर्तमान समय में रिकॉर्ड की गई कीबोर्ड स्थिति के आधार पर वर्ण इनपुट को हाथ में रखें।
पात्र
जब आपके कैरेक्टर ऑब्जेक्ट का निर्माण किया जाता है, तो यह अपने लिए एक नया नियंत्रक बनाता है। चरित्र किसी भी समय दो में से एक मोड में हो सकता है:
- सक्रिय: केवल एक ही सक्रिय चरित्र है और यह वह है जिसे आप नियंत्रित करते हैं। जब कैरेक्टर एक्टिव मोड में होता है, तो उसका कंट्रोलर रिकॉर्ड मोड में होता है। डिफ़ॉल्ट रूप से जब एक चरित्र का निर्माण किया जाता है तो वह सक्रिय मोड में होता है।
- भूत: यह वह है जो आपके पिछले कार्यों को दोहराता है। जब कोई वर्ण घोस्ट मोड में प्रवेश करता है, तो वह अपनी उपस्थिति बदल देता है और अपने नियंत्रक को रिप्ले मोड में सेट करता है।
स्तर
एक नए सिरे से शुरू किया गया स्तर
जब आप स्तर शुरू करते हैं, तो एक एकल चरित्र बनाएं। अब स्तर शुरू होता है और खिलाड़ी अपनी बात करता है।
जब समय रहता है
जब स्तर रीसेट करता है, तो तीन काम करें:
- भूत मोड में प्रवेश करने के लिए वर्तमान सक्रिय चरित्र बताओ।
- एक नया चरित्र बनाएँ।
- सभी वर्णों को स्वयं रीसेट करने के लिए कॉल करें। यह उन्हें बिना किसी हलचल के साथ शुरुआती स्थिति में वापस ले जाएगा, आदि वे अपने नियंत्रक को मिलिसेकंड 0 पर रीसेट करने के लिए कहेंगे जिसमें कोई कुंजी दबाए नहीं है।
फिर स्तर शुरू होता है और खिलाड़ी अपनी बात करता है।