मैंने सोचा कि आपको यह जानना चाहिए कि इन घटनाओं को कैसे बनाया जाए और बाकी की पोस्ट इसके बारे में है, यदि आप इन घटनाओं को स्टोर करना चाहते हैं तो कुछ रिलेशनल डेटाबेस का उपयोग करें या उन्हें टेक्स्ट द्वारा डिक्लेयर करें और स्क्रिप्टिंग लैंग्वेज का उपयोग करें (वे पार्सिंग करेंगे और मूल्यांकन करेंगे आप)। :)
आप जो चाहते हैं, वह यह है कि घटित हुई घटनाओं को पहचानें (1) और फिर कुछ क्रियाएँ करें जो इन घटनाओं (प्रिंट संदेश, कीपर के लिए जाँच ...) (2) द्वारा मांगी जाती हैं। आप भी इन घटनाओं को केवल एक बार करना चाहते हैं (3)।
मूल रूप से आप शर्तों के लिए जाँच करना चाहते हैं और फिर कुछ व्यवहार शेड्यूल करें।
घटनाओं को कैसे पहचानें (1)
- आप इन घटनाओं को पहचानना चाहते हैं जैसे "पहले दुश्मन का सामना करना पड़ा", "नया आइटम प्राप्त हुआ"
- यदि सामान्य भाग होता है, तो " शत्रु का सामना करना पड़ता है ", " आइटम प्राप्त " आप "विशिष्ट भाग के लिए जाँच करें" पहले ... "," नया आइटम प्राप्त "
किस घटनाओं से बने हैं
अधिक सामान्य दृश्य में, ऐसी प्रत्येक घटना निम्न से बनती है:
- पूर्व शर्त , आप उनकी जाँच करें
- एक्शन जो पूर्ति होने पर किए जाएंगे ("" आपने पहले दुश्मन को मार दिया है! "," ए और बी बटन दबाकर कॉम्बोस बनाएं "," जारी रखने के लिए "दर्ज करें", "की" कुंजी-कुंजी "दर्ज करें" दबाएं। "
इन घटनाओं को कैसे स्टोर करें
कुछ डेटा संरचना में:
- पूर्व शर्त की सूची (तार या कोड यदि आप इसे कुछ उच्च-स्तरीय भाषा में लिख रहे हैं)
- कार्यों की सूची है (वे तार हो सकते हैं, क्वेक इंजन घटनाओं के लिए तार का उपयोग करता है)
आप इसे रिलेशनल डेटाबेस में भी स्टोर कर सकते हैं, ऐसा लगता है कि यह आवश्यक नहीं है, यदि आप इस गेम को बड़ा बनाना चाहते हैं तो आपको एक बनाने की आवश्यकता हो सकती है।
फिर आपको इन स्ट्रिंग्स / चीजों को पार्स करना होगा। या आप कुछ स्क्रिप्टिंग भाषा जैसे पायथन या LUA या LISP जैसी भाषा का उपयोग कर सकते हैं, ये सभी आपके लिए इसे पार्स और निष्पादित कर सकते हैं। :)
गेम लूप में इन घटनाओं का उपयोग कैसे करें (2)
आपको इन दो डेटा संरचनाओं की आवश्यकता होगी:
- घटनाओं की कतार (जिन घटनाओं को चलाया जाना निर्धारित है)
- क्रियाओं की कतार (अनुसूचित क्रियाएँ, घटनाएँ जो कार्य किए जाते हैं)
कलन विधि:
- आप में से कुछ को पहचान तो घटना की पूर्व शर्त पूरी होती हैं तुम उसे में डाल दिया घटना कतार
- (३) फिर आपको यह सुनिश्चित करना चाहिए कि यह घटना केवल एक बार हुई है जब आप चाहते हैं :) (उदाहरण के लिए बूलियन सरणी के साथ has_this_event_happened ["पहला दुश्मन का सामना करना पड़ा"])
- (यदि कार्रवाई कतार खाली है, तो) यदि घटना कतार में घटना है, तो आप अपने कार्यों को कार्रवाई कतार में डालते हैं और उसे घटना स्थल से हटा दें
- अगर वहाँ है कार्रवाई में कार्रवाई कतार आप क्या यह द्वारा की मांग की है शुरू
- यदि ऐसी कार्रवाई की जाती है तो आप इसे कार्रवाई कतार से हटा देते हैं
इन क्रियाओं को स्वयं कैसे करें (2)
आप ऑब्जेक्ट की सूची बनाते हैं, जिसमें फ़ंक्शन "अपडेट" होता है। उन्हें कभी-कभी संस्थाएं (क्वेक इंजन में) या अभिनेता (अवास्तविक इंजन में) कहा जाता है।
- जब आप कार्रवाई कतार में शुरू करने की मांग करते हैं तो आप इन वस्तुओं को शुरू करते हैं।
- इन वस्तुओं का उपयोग अन्य चीजों के लिए किया जा सकता है जैसे कि कुछ अन्य टाइमर। क्वेक में इन संस्थाओं का उपयोग पूरे खेल तर्क के लिए किया जाता है, मैं आपको इसके बारे में कुछ सामग्री पढ़ने की सलाह देता हूं ।
एक्शन "कुछ तो बोलो"
- आप स्क्रीन पर कुछ प्रिंट करें
- आप चाहते हैं कि यह संदेश कुछ सेकंड के लिए दिखाई दे
- "अपडेट" में:
- चर निकालें_मे_ओवर करें और समय बीतने पर इसे कम करें
- जब चर 0 होता है तो आप इस क्रिया को क्रिया कतार से हटा देते हैं
- आप इस ऑब्जेक्ट को भी हटा देते हैं (या इसे निकालने के लिए शेड्यूल करते हैं ...)
कार्रवाई "कुंजी की आवश्यकता है"
- यह निर्भर करता है कि आप इसे कैसे बनाना चाहते हैं, लेकिन मुझे लगता है कि आप एक संदेश बनाते हैं
- "अपडेट" में:
- आप बस इच्छित कीपर ईवेंट के लिए जाँच करें
- कीप इवेंट्स को आयोजित करने के लिए आपको संभवतः कुछ सरणी / कतार की आवश्यकता होगी
- तब आप इसे क्रिया कतार से हटा सकते हैं और ऑब्जेक्ट निकाल सकते हैं
क्या तरीके सीखने के लिए