यथार्थवादी पात्र आम तौर पर एक-दूसरे से बात करके बातचीत करते हैं। सुनिश्चित करें कि आप अपना संवाद सुलभ और पूरक तरीके से प्रस्तुत करें।
यदि आपके गेम में पात्र हैं, तो संभवतः आप चाहेंगे कि वे एक-दूसरे के साथ बातचीत करें। एक संवाद प्रणाली इंटरैक्टिव बातचीत, कहानी की प्रगति और चरित्र विकास प्रदान करती है। पायथन आर्केड लाइब्रेरी आपके मौजूदा कोडबेस में एक संवाद प्रणाली को एकीकृत करना आसान बनाती है।
एक संवाद प्रणाली के साथ, आप खिलाड़ी और गैर-खिलाड़ी पात्रों (एनपीसी) के बीच वार्तालाप बना सकते हैं। खिलाड़ी प्रतिक्रियाएँ चुन सकता है या निर्णय ले सकता है जो खेल की कहानी या परिणाम को प्रभावित करता है।
यह प्रणाली आपको सम्मोहक कहानियाँ गढ़ने और गतिशील इंटरैक्शन बनाने की अनुमति देती है, जो अधिक गहन गेमप्ले अनुभव प्रदान करती है।
एक सरल गेम बनाएं
आरंभ करने के लिए, आर्केड लाइब्रेरी का उपयोग करके एक सरल गेम बनाएं। यह संवाद प्रणाली को लागू करने के लिए आधार के रूप में काम करेगा।
इस आलेख में प्रयुक्त कोड इसमें उपलब्ध है गिटहब रिपॉजिटरी और यह आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए निःशुल्क है।
नामक एक नई फ़ाइल बनाएँ
Simple-game.py और परिभाषित करें a खेल वह वर्ग जो विरासत में मिला है आर्केड. खिड़की. स्क्रीन आयाम सेट करें, प्लेयर और प्लेटफ़ॉर्म स्थिति आरंभ करें, और बुनियादी ड्राइंग कार्यक्षमता लागू करें। खिलाड़ी बाएँ और दाएँ घूम सकता है तीर कुंजियों का उपयोग करना.यहाँ आउटपुट है:
एक डायलॉग बॉक्स जोड़ना
अब जब आपके पास एक बुनियादी गेम संरचना है, तो एक संवाद बॉक्स जोड़ें जो तब दिखाई देता है जब खिलाड़ी किसी दुश्मन से टकराता है। आप सरल आकृतियों का उपयोग करके एक संवाद बॉक्स बना सकते हैं और इसे स्क्रीन पर प्रदर्शित कर सकते हैं।
एक जोड़ना संवाद_सक्रिय को ध्वजांकित करें खेल वर्ग, जो इंगित करता है कि संवाद बॉक्स दिखाना चाहिए या नहीं। में on_update तरीका, दुश्मन की टक्कर की जाँच करें, और यदि पता चला, तो सेट करें संवाद_सक्रिय को सत्य.
में on_draw विधि, कॉल करें ड्रा_डायलॉग_बॉक्स यदि संवाद सक्रिय है तो विधि. ड्रा_डायलॉग_बॉक्स विधि संवाद बॉक्स की पृष्ठभूमि के रूप में एक आयत बनाती है और एक पाठ संदेश प्रदर्शित करती है।
नामक एक नई फ़ाइल बनाएँ संवाद-box.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:
# गेम क्लास के अंदर
कक्षाखेल(आर्केड. खिड़की):
डीईएफ़__इस में__(खुद):
# ...self.संवाद_सक्रिय= असत्य
डीईएफ़on_update(स्वयं, डेल्टा_समय):
अगर स्व.चेक_दुश्मन_टकराव():
self.संवाद_सक्रिय= सत्यडीईएफ़on_draw(खुद):
# ...अगर स्व.संवाद_सक्रिय:
self.draw_dialog_box()डीईएफ़चेक_दुश्मन_टकराव(खुद):
खिलाड़ी_त्रिज्या = 25
डिस्टेंस_एक्स = एबीएस (सेल्फ.प्लेयर_एक्स - सेल्फ.प्लेटफॉर्म_एक्स)
डिस्टेंस_वाई = एबीएस (सेल्फ.प्लेयर_वाई - सेल्फ.प्लेटफॉर्म_वाई)
संयुक्त_त्रिज्या = प्लेयर_त्रिज्या + 25अगर दूरी_x और दूरी_y वापस करनासत्य
अन्य:
वापस करनाअसत्य
डीईएफ़ड्रा_डायलॉग_बॉक्स(खुद):
पाठ = "हैलो, खिलाड़ी! आप कैसे हैं?"
आर्केड.ड्रॉ_रेक्टेंगल_फिल्ड (स्क्रीन_विड्थ // 2,
स्क्रीन_ऊंचाई // 2, 500, 200, सफ़ेद)
आर्केड.ड्रॉ_टेक्स्ट (टेक्स्ट, SCREEN_WIDTH // 2,
स्क्रीन_ऊंचाई // 2 + 20, काला, फ़ॉन्ट_आकार =16,
एंकर_x="केंद्र", एंकर_y="केंद्र")
नीचे आउटपुट है:
संवाद पाठ प्रदर्शित करना
अब, आप गतिशील पाठ संदेश प्रदर्शित करके अपनी संवाद प्रणाली को बढ़ा सकते हैं। वार्तालाप को अनुकरण करने के लिए संवाद स्ट्रिंग की एक सूची बनाएं और उनके माध्यम से पुनरावृत्त करें। हर बार जब संवाद बॉक्स प्रकट होगा, तो यह एक नया संदेश दिखाएगा।
# गेम क्लास के अंदर
कक्षाखेल(आर्केड. खिड़की):
डीईएफ़__इस में__(खुद):
# ...self.संवाद_सक्रिय= असत्य
self.dialog_messages = [
"हैलो, खिलाड़ी! आप कैसे हैं?",
"आज मौसम अच्छा है, है ना?",
"आगे छुपे दुश्मनों से सावधान रहें!"
]
self.dialog_index= 0
डीईएफ़ड्रा_डायलॉग_बॉक्स(खुद):
आर्केड.ड्रॉ_रेक्टेंगल_फिल्ड (स्क्रीन_विड्थ // 2,
स्क्रीन_ऊंचाई // 2, 500, 200, सफ़ेद)
आर्केड.ड्रॉ_टेक्स्ट (स्वयं.संवाद_संदेश[स्वयं.संवाद_सूचकांक],
स्क्रीन_चौड़ाई // 2, स्क्रीन_ऊंचाई // 2 + 20, काला, फ़ॉन्ट_आकार =16,
एंकर_x="केंद्र", एंकर_y="केंद्र")
तीन नए वेरिएबल पेश करें: संवाद_संदेश, संवाद_सूचकांक, और संवाद_सक्रिय. डायलॉग_मैसेज सूची में वे टेक्स्ट संदेश शामिल हैं जिन्हें डायलॉग बॉक्स प्रदर्शित करेगा। डायलॉग_इंडेक्स दिखाने के लिए वर्तमान संदेश का ट्रैक रखता है। हर बार डायलॉग बॉक्स प्रकट होने पर, आप अगला संदेश दिखाने के लिए डायलॉग_इंडेक्स को बढ़ा सकते हैं।
एक बटन जोड़ना
संवाद प्रणाली को अधिक इंटरैक्टिव बनाने के लिए, प्लेयर द्वारा दबाए जाने पर संवाद पाठ को बदलने के लिए एक बटन जोड़ें। नामक एक नई फ़ाइल बनाएँ मल्टी-टेक्स्ट.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:
# गेम क्लास के अंदर
कक्षाखेल(आर्केड. खिड़की):
डीईएफ़__इस में__(खुद):
# ...self.संवाद_सक्रिय= असत्य
self.dialog_messages = [
"हैलो, खिलाड़ी! आप कैसे हैं?",
"आज मौसम अच्छा है, है ना?",
"आगे छुपे दुश्मनों से सावधान रहें!"
]self.dialog_index= 0
डीईएफ़on_mouse_press(स्वयं, एक्स, वाई, बटन, संशोधक):
सूचकांक = (self.dialog_index + 1) % लेन (self.dialog_messages)अगर स्व.संवाद_सक्रिय:
अगर बटन == आर्केड. माउस_बटन_बाएं:
self.dialog_index = अनुक्रमणिकाडीईएफ़ड्रा_डायलॉग_बॉक्स(खुद):
# ...
आर्केड.ड्रॉ_टेक्स्ट("अगला", स्क्रीन_चौड़ाई // 2, स्क्रीन_ऊंचाई // 2 - 50,
काला, फ़ॉन्ट आकार=16, एंकर_x="केंद्र", एंकर_y="केंद्र")
जोड़ें on_mouse_press करने की विधि खेल कक्षा। जब संवाद सक्रिय होता है और आप बाईं माउस बटन दबाते हैं, तो यह विधि बढ़ जाती है संवाद_सूचकांक में अगला संदेश प्रदर्शित करने के लिए संवाद_संदेश सूची। % लेन (स्वयं.संवाद_संदेश) यह सुनिश्चित करता है कि अंत तक पहुँचने पर सूचकांक सूची की शुरुआत तक पहुँच जाता है।
अतिरिक्त सुविधाओं सहित
संवाद प्रणाली को और बेहतर बनाने के लिए, आप निम्नलिखित अतिरिक्त सुविधाएँ जोड़ने पर विचार कर सकते हैं:
कई विकल्प
एकल संदेश के बजाय, आप प्लेयर को चुनने के लिए एकाधिक विकल्प प्रदान कर सकते हैं। यह खिलाड़ी को बातचीत के नतीजे को प्रभावित करने या खेल की प्रगति को प्रभावित करने वाले निर्णय लेने की अनुमति देता है।
इसे लागू करने के लिए, आप इसे संशोधित कर सकते हैं ड्रा_डायलॉग_बॉक्स विकल्पों की सूची प्रदर्शित करने और तदनुसार खिलाड़ी के चयन को संभालने की विधि।
चरित्र चित्रण
अपनी संवाद प्रणाली में दृश्य प्रतिभा जोड़ने के लिए, आप पाठ के साथ-साथ चरित्र चित्रण भी शामिल कर सकते हैं। प्रत्येक पात्र के पास एक संबंधित छवि या स्प्राइट हो सकती है जो बातचीत के दौरान उनका प्रतिनिधित्व करती है। चरित्र चित्र प्रदर्शित करने से खिलाड़ियों को वक्ता की पहचान करने और कहानी कहने के अनुभव में गहराई जोड़ने में मदद मिल सकती है।
पाठ एनीमेशन
आप टेक्स्ट को अधिक आकर्षक बनाने के लिए उसे एनिमेट कर सकते हैं। उदाहरण के लिए, आप टाइपिंग का अनुकरण करने के लिए पाठ को धीरे-धीरे, एक समय में एक वर्ण प्रदर्शित कर सकते हैं। यह प्रत्याशा की भावना पैदा करता है और खिलाड़ी के लिए संवाद को अधिक आकर्षक बना सकता है।
ध्वनि प्रभाव
ध्वनि प्रभाव जोड़ना आपकी संवाद प्रणाली खेल के समग्र माहौल को बेहतर बना सकती है। उदाहरण के लिए, जब संवाद बॉक्स प्रकट होता है या जब खिलाड़ी संवाद विकल्प चुनता है तो आप ध्वनि प्रभाव चला सकते हैं। ये ऑडियो संकेत बातचीत को अधिक गहन और प्रभावशाली बना सकते हैं।
संवाद प्रणाली के लिए सर्वोत्तम अभ्यास
संवाद प्रणाली लागू करते समय निम्नलिखित सर्वोत्तम प्रथाओं को ध्यान में रखें:
यूजर इंटरफ़ेस साफ़ करें
सुनिश्चित करें कि संवाद बॉक्स और पाठ सुपाठ्य हैं और स्क्रीन पर ठीक से स्थित हैं। पाठ को पढ़ने में आसान बनाने के लिए उपयुक्त फ़ॉन्ट, रंग और आकार का उपयोग करें।
लगातार चरित्र आवाज
पात्रों के बोलने के तरीके और पूरे संवाद में उनके द्वारा उपयोग किए जाने वाले लहजे में एकरूपता बनाए रखें। इससे विश्वसनीय और आकर्षक बातचीत बनाने में मदद मिलती है।
गेमप्ले की प्रासंगिकता
सुनिश्चित करें कि संवाद खेल की कहानी में सार्थक योगदान देता है या खिलाड़ी को प्रासंगिक जानकारी प्रदान करता है। अत्यधिक या अप्रासंगिक वार्तालापों से बचें जो गेमप्ले के प्रवाह को बाधित कर सकते हैं।
परीक्षण और पुनरावृत्ति
किसी भी मुद्दे या विसंगतियों की पहचान करने के लिए अपनी संवाद प्रणाली का गहन परीक्षण करें। बातचीत की समग्र गुणवत्ता और प्रभाव को बेहतर बनाने के लिए खिलाड़ियों के फीडबैक के आधार पर अपने संवाद को दोहराएँ।
संवाद प्रणाली के साथ खेलों को और अधिक मनोरंजक बनाएं
पायथन में आर्केड लाइब्रेरी का उपयोग करके अपने गेम में एक संवाद प्रणाली जोड़ने से खिलाड़ी के अनुभव में काफी वृद्धि हो सकती है। यह इंटरैक्टिव बातचीत, कहानी कहने और चरित्र विकास को सक्षम बनाता है, जिससे आपके गेम अधिक मनोरंजक, आकर्षक और खेलने में मजेदार हो जाते हैं।