जानें कि समय को कैसे मापें और अपने खेल के विभिन्न पहलुओं को नियंत्रित करने के लिए इसका उपयोग कैसे करें।
खेल के विकास में, समय-आधारित घटनाओं को जोड़ने से गेमप्ले यांत्रिकी में काफी वृद्धि हो सकती है और खिलाड़ियों के लिए गेम को अधिक आकर्षक बनाया जा सकता है। टाइमर को शामिल करके, आप चुनौतियाँ पेश कर सकते हैं, समय-सीमित उद्देश्य बना सकते हैं, या कुछ गेम तत्वों में तात्कालिकता की भावना जोड़ सकते हैं।
एक सरल गेम बनाएं
बुनियादी बातें समझने के लिए एक सरल गेम बनाकर शुरुआत करें। एक ऐसा गेम बनाएं जहां खिलाड़ी बाएं और दाएं घूम सके और एक ही प्लेटफॉर्म होगा। नामक एक नई फ़ाइल बनाएँ Simple-game.py और आर्केड मॉड्यूल आयात करें, जो गेम बनाने के लिए आवश्यक कार्यक्षमता प्रदान करता है।
इस आलेख में प्रयुक्त कोड इसमें उपलब्ध है गिटहब रिपॉजिटरी और यह आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए निःशुल्क है।
अगला, परिभाषित करें गेमविंडो वर्ग, जो कि एक उपवर्ग है आर्केड. खिड़की. गेमविंडो क्लास के अंदर, परिभाषित करें __इस में__ विधि, जो निर्दिष्ट चौड़ाई, ऊंचाई और शीर्षक के साथ विंडो को आरंभ करती है।
on_key_press विधि बाएँ या दाएँ तीर कुंजी दबाने का पता लगाती है। बायीं ओर दबाने से कम हो जाता है
प्लेयर_x दायीं ओर दबाने पर 10 यूनिट बढ़ जाती है। यह खिलाड़ी को हिलने-डुलने की अनुमति देता है खेल विंडो के भीतर क्षैतिज रूप से।गेम चलाने के लिए, मुख्य फ़ंक्शन को परिभाषित करें, गेमविंडो का एक उदाहरण बनाएं, गेम विंडो सेट करने के लिए सेटअप विधि को कॉल करें और अंत में, गेम लूप का उपयोग करके प्रारंभ करें आर्केड.रन().
टाइमर क्लास संरचना को डिजाइन करना
अपने गेम में टाइमर लागू करने के लिए, आप आवश्यक विशेषताओं और विधियों के साथ एक टाइमर क्लास बना सकते हैं। यह क्लास टाइमर शुरू करने, उसे रोकने, बीते हुए समय को पुनः प्राप्त करने और यह जांचने के लिए कार्यक्षमता प्रदान करेगा कि क्या टाइमर समाप्त हो गया है। टाइमर वर्ग के लिए बुनियादी संरचना यहां दी गई है:
आयात समय
कक्षाघड़ी:
डीईएफ़__इस में__(स्वयं, अवधि):
स्व.अवधि = अवधि
स्वयं.प्रारंभ_समय = 0
स्वयं चल रहा है = असत्यडीईएफ़शुरू(खुद):
स्व.प्रारंभ_समय = समय.समय()
स्वयं चल रहा है = सत्यडीईएफ़रुकना(खुद):
स्वयं चल रहा है = असत्यडीईएफ़बीता हुआ समय प्राप्त करें(खुद):
अगर स्वयं चल रहा है:
वापस करना समय.समय() - स्व.प्रारंभ_समय
वापस करना0
डीईएफ़समयसीमा समाप्त हो गई है(खुद):
वापस करना self.get_elapsed_time() >= self.duration
टाइमर क्लास एक लेता है अवधि आरंभीकरण के दौरान सेकंड में पैरामीटर। वर्ग में विशेषताएँ शामिल हैं जैसे कि समय शुरू उस समय को संग्रहीत करने के लिए जब टाइमर शुरू हुआ, और चल रहा है टाइमर की स्थिति को ट्रैक करने के लिए।
शुरू करना() विधि स्टार्ट_टाइम का उपयोग करके वर्तमान समय पर सेट करती है समय.समय() और is_running पर सेट करता है सत्य. रुकना() विधि बस is_running पर सेट करती है असत्य. get_elapsed_time() विधि वर्तमान समय से प्रारंभ_समय को घटाकर बीते हुए समय की गणना करती है।
यदि टाइमर चल रहा है, तो यह बीता हुआ समय लौटाता है; अन्यथा, यह 0 लौटाता है। समयसीमा समाप्त हो गई है() विधि यह जाँचती है कि बीता हुआ समय अवधि से अधिक या उसके बराबर है, यह दर्शाता है कि टाइमर समाप्त हो गया है।
उलटी गिनती टाइमर लागू करना
अपने गेम में उलटी गिनती प्रदर्शित करने के लिए, जब खिलाड़ी स्पेस बार जैसी विशिष्ट कुंजी दबाता है तो आप टाइमर शुरू कर सकते हैं। पायथन के प्रिंट कमांड का उपयोग करके कंसोल पर उलटी गिनती प्रिंट करें। नामक एक नई फ़ाइल बनाएँ timer.py और इन अद्यतनों के साथ कोड जोड़ें:
आयात समय
कक्षागेमविंडो(आर्केड. खिड़की):
डीईएफ़__इस में__(खुद):
सुपर().__init__(चौड़ाई, ऊंचाई, "सरल खेल")
self.player_x = चौड़ाई // 2
self.player_y = ऊँचाई // 2
सेल्फ.टाइमर = टाइमर(10)डीईएफ़on_key_press(स्वयं, कुंजी, संशोधक):
अगर कुंजी == आर्केड.कुंजी। अंतरिक्ष:
self.timer.start()
डीईएफ़on_draw(खुद):
#मौजूदा कोड
अगर self.timer.is_running:
बीता हुआ समय = self.timer.get_elapsed_time()
r_time = self.timer.duration - बीता हुआ समय
शेष_समय = अधिकतम (r_समय, 0)
प्रिंट(च"उलटी गिनती: {शेष समय:.1एफ} सेकंड")
सुनिश्चित करें कि आप एक ही समय में टर्मिनल विंडो और गेम विंडो देख सकते हैं। फिर स्पेस दबाएँ और आप टाइमर की उलटी गिनती देखेंगे:
टाइमर घटनाओं को संभालना और गतिविधियों को ट्रिगर करना
आप किसी फ़ंक्शन को भी ट्रिगर कर सकते हैं एक आयत बनाता है जब उलटी गिनती घड़ी समाप्त हो जाती है। नामक एक नई फ़ाइल बनाएँ हैंडल-इवेंट.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:
डीईएफ़on_draw(खुद):
#मौजूदा कोड
अगर self.timer.is_expired():
स्वयं.ड्रॉ_रेक्टेंगल()
डीईएफ़ड्रा_आयत(खुद):
आर्केड.ड्रॉ_रेक्टेंगल_फिल्ड (चौड़ाई // 2, ऊंचाई // 2, 100, 100, लाल)
नीचे आउटपुट है:
टाइमर को रोकना, रीसेट करना और फिर से शुरू करना
टाइमर को रोकने, रीसेट करने और फिर से शुरू करने की कार्यक्षमता जोड़ने के लिए, आप इसे बढ़ा सकते हैं घड़ी उपयुक्त विधियों के साथ कक्षा। यहाँ एक उदाहरण है:
कक्षाघड़ी:
#मौजूदा कोडडीईएफ़रोकना(खुद):
स्व.अवधि -= स्व.प्राप्त_बीता_समय()
स्वयं चल रहा है = असत्यडीईएफ़रीसेट(खुद):
स्वयं.प्रारंभ_समय = 0
स्वयं चल रहा है = असत्य
डीईएफ़फिर शुरू करना(खुद):
स्व.प्रारंभ_समय = समय.समय()
स्वयं चल रहा है = सत्य
टाइमर में विज़ुअल फीडबैक जोड़ना
टाइमर के लिए दृश्य प्रतिक्रिया प्रदान करने के लिए, आप गेम स्क्रीन पर टेक्स्ट या ग्राफिकल तत्वों को शामिल कर सकते हैं। नामक एक नई फ़ाइल बनाएँ विजुअल.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:
डीईएफ़on_draw(खुद):
#मौजूदा कोड
अगर self.timer.is_running:
पाठ = च"उलटी गिनती: {शेष समय:.1एफ} सेकंड"
आर्केड.ड्रॉ_टेक्स्ट (टेक्स्ट, 10, 10, काला, 18)
अब आप कंसोल के बजाय सीधे गेम विंडो में टाइमर देखेंगे:
अतिरिक्त सुविधाओं सहित
समय-आधारित घटनाओं को और बेहतर बनाने के लिए, आप अपने गेम में निम्नलिखित अतिरिक्त सुविधाओं को लागू करने पर विचार कर सकते हैं।
समय-आधारित पावर-अप या बोनस
पावर-अप या बोनस का परिचय दें जो पूरे गेम में समय-समय पर दिखाई देते हैं। ये पावर-अप अस्थायी क्षमताएं, अतिरिक्त अंक, बढ़ी हुई गति या उन्नत हथियार प्रदान कर सकते हैं।
उन्हें समय-सीमित बनाकर, खिलाड़ियों को लाभ प्राप्त करने के लिए रणनीतिक रूप से उन्हें एक विशिष्ट समय सीमा के भीतर एकत्र करना होगा। इससे उत्साह बढ़ता है और त्वरित सोच को पुरस्कार मिलता है।
समय-सीमित चुनौतियाँ
समय-सीमित चुनौतियाँ बनाएँ जहाँ खिलाड़ियों को एक निश्चित समय सीमा के भीतर कार्य पूरा करना होगा। उदाहरण के लिए, एक पहेली या प्लेटफ़ॉर्मिंग अनुभाग जिसे एक निश्चित समय के भीतर हल करने की आवश्यकता होती है।
यह खिलाड़ियों को तुरंत सोचने और कार्य करने की चुनौती देता है, जिससे गेमप्ले में रोमांचकारी तात्कालिकता जुड़ जाती है। इन चुनौतियों को सफलतापूर्वक पूरा करने से पुरस्कार खुल सकते हैं या कहानी आगे बढ़ सकती है।
समयबद्ध बाधाएँ या शत्रु
समयबद्ध बाधाओं या दुश्मनों को लागू करें जो खिलाड़ी के लिए खतरा पैदा करते हैं। उदाहरण के लिए, चलते-फिरते प्लेटफ़ॉर्म जो नियमित अंतराल पर दिखाई देते हैं और गायब हो जाते हैं, या दुश्मन जो सीमित समय के लिए अजेय हो जाते हैं।
समय समाप्त होने से पहले इन बाधाओं को पार करने या दुश्मनों को हराने के लिए खिलाड़ियों को अपने कार्यों और गतिविधियों का सही समय निर्धारित करना चाहिए। यह गेमप्ले में रणनीति और समन्वय की एक परत जोड़ता है।
समय-आधारित घटनाओं के लिए सर्वोत्तम अभ्यास
अपने खेलों में समय-आधारित घटनाओं को लागू करते समय, इन सर्वोत्तम प्रथाओं का पालन करना आवश्यक है।
परीक्षण और संतुलन
यह सुनिश्चित करने के लिए कि वे निष्पक्ष और संतुलित हैं, अपनी समय-आधारित घटनाओं का अच्छी तरह से परीक्षण करें। मनोरंजक गेमप्ले अनुभव बनाने के लिए अवधि, कठिनाई और पुरस्कारों को ठीक करें।
उपयोगकर्ता प्रतिसाद
टाइमर की स्थिति और किसी भी समय-आधारित घटनाओं के संबंध में खिलाड़ियों को स्पष्ट और सहज प्रतिक्रिया प्रदान करें। ध्वनि प्रभाव जोड़ना, दृश्य संकेतक, या पाठ्य संकेत खिलाड़ियों को समय की कमी और उनके कार्यों के परिणामों को समझने में मदद कर सकते हैं।
लगातार समय मापन
अपने पूरे खेल में एक सुसंगत समय मापन प्रणाली का उपयोग करें। उदाहरण के लिए, सभी टाइमर और समय-संबंधित गणनाओं के लिए इकाई के रूप में सेकंड का उपयोग करें। यह खिलाड़ियों और डेवलपर्स दोनों के लिए निरंतरता और समझने में आसानी सुनिश्चित करता है।
किनारे के मामले संभालें
उन परिदृश्यों पर विचार करें जहां खेल को रोका जा सकता है, छोटा किया जा सकता है, या पृष्ठभूमि में चलाया जा सकता है। सटीक समय बनाए रखने और खेल फिर से शुरू होने पर अनपेक्षित व्यवहार को रोकने के लिए इन स्थितियों को शालीनता से संभालें।
इन सर्वोत्तम प्रथाओं का पालन करके, आप समय-आधारित इवेंट बना सकते हैं जो गेमप्ले को बढ़ाते हैं, खिलाड़ियों को चुनौती देते हैं और एक संतुलित और आनंददायक अनुभव प्रदान करते हैं।
समय-आधारित घटनाओं के साथ खेलों को और अधिक मनोरंजक बनाना
अपने गेम में समय-आधारित घटनाओं को शामिल करके, आप खिलाड़ियों के लिए एक गतिशील और आकर्षक अनुभव बना सकते हैं। समय-सीमित चुनौतियाँ उत्साह और तात्कालिकता जोड़ती हैं, जबकि समय पर शक्ति-अप या बाधाएँ रणनीतिक निर्णय लेने के अवसर पैदा कर सकती हैं।
अपने खेल के लिए सही संतुलन खोजने के लिए अलग-अलग समय-आधारित यांत्रिकी के साथ प्रयोग करें, और आनंद और आनंद को अधिकतम करने के लिए खेलना और दोहराना याद रखें।