किसी भी गेम के लिए इनपुट का जवाब देना महत्वपूर्ण है, और इसे पसंद करने वाले उपयोगकर्ताओं के लिए कीबोर्ड का समर्थन करना अच्छा है। जानें कि कैसे Python की आर्केड लाइब्रेरी के साथ।
कीबोर्ड इनपुट गेम के विकास का एक अनिवार्य हिस्सा है, और एक शानदार उपयोगकर्ता अनुभव प्रदान करने के लिए इसे प्रभावी ढंग से संभालना महत्वपूर्ण है। आर्केड लाइब्रेरी आपके पायथन गेम्स में कीबोर्ड इनपुट को संभालने का एक सीधा और कुशल तरीका प्रदान करती है।
एक खिलाड़ी के साथ एक साधारण खेल बनाना
आप में पूरा कोड पा सकते हैं यह गिटहब रेपो.
कीबोर्ड इनपुट को संभालने में गोता लगाने से पहले, सुनिश्चित करें कि आपके पास है आपके डिवाइस में पाइप स्थापित है. आर्केड लाइब्रेरी को स्थापित करने के लिए इस कमांड का प्रयोग करें:
पिप आर्केड स्थापित करें
उसके बाद, एक साधारण गेम का कंकाल बनाएं:
आयात आर्केड
स्क्रीन_WIDTH = 640
स्क्रीन_हाइट = 480कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई):
सुपर ()। __init__ (चौड़ाई, ऊंचाई, "मेरा खेल")
आर्केड.सेट_बैकग्राउंड_कलर (आर्केड.रंग। सफ़ेद)डीईएफ़on_draw(खुद):
आर्केड. start_render ()डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
उत्तीर्ण
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
आर्केड.रन ()
यह एक सफेद पृष्ठभूमि वाली विंडो बनाता है। अगला, अपने खेल में एक खिलाड़ी जोड़ें:
कक्षाखिलाड़ी:
डीईएफ़__इस में__(स्वयं, एक्स, वाई):
स्व। एक्स = एक्स
स्वयं वाई = वाई
स्वयं गति = 5
स्व.त्रिज्या = 20डीईएफ़खींचना(खुद):
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.एक्स, सेल्फ.वाई, सेल्फ.रेडियस, आर्केड.कलर। नीला)डीईएफ़बाएं खिसको(खुद):
स्व.x -= स्व.गतिडीईएफ़सही कदम(खुद):
स्व.x += स्व.गतिडीईएफ़बढ़ाना(खुद):
स्व.य += स्व.गति
डीईएफ़नीचे की ओर(खुद):
स्व.य-=स्व.गति
यह नीले वृत्त के साथ एक साधारण खिलाड़ी बनाता है। आप इस प्लेयर को संशोधित करके अपने गेम में जोड़ सकते हैं मेरा खेल कक्षा:
आयात आर्केड
स्क्रीन_WIDTH = 640
स्क्रीन_हाइट = 480कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई):
सुपर ()। __init__ (चौड़ाई, ऊंचाई, "मेरा खेल")
आर्केड.सेट_बैकग्राउंड_कलर (आर्केड.रंग। सफ़ेद)
सेल्फ.प्लेयर = प्लेयर (SCREEN_WIDTH // 2, स्क्रीन_हाइट // 2)डीईएफ़on_draw(खुद):
आर्केड. start_render ()
सेल्फ.प्लेयर.ड्रा ()डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
उत्तीर्णडीईएफ़मुख्य():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
आर्केड.रन ()
अगर __नाम__ == "__मुख्य__":
मुख्य()
अब आपके पास अपने खेल में एक खिलाड़ी है जिसे आप स्क्रीन पर बना सकते हैं।
प्रमुख प्रेसों और विज्ञप्तियों का जवाब देना
अपने गेम में उपयोगकर्ता इनपुट का जवाब देने के लिए, आपको मुख्य प्रेस और रिलीज़ को हैंडल करना होगा। इन घटनाओं को संभालने के लिए आर्केड लाइब्रेरी दो तरीके प्रदान करती है: on_key_press और on_key_release.
इन विधियों का उपयोग करने के लिए, आपको उन्हें अपने में परिभाषित करने की आवश्यकता है आर्केड। खिड़की उपवर्ग। जब खिलाड़ी एक कुंजी दबाता है या जारी करता है, तो आर्केड इसी विधि को चलाएगा, इसे दो तर्कों को पारित करेगा: कुंजी और संशोधक। चाबी एक पूर्णांक है जो दबाए गए या जारी किए गए कुंजी के कुंजी कोड का प्रतिनिधित्व करता है। संशोधक एक बिटफ़ील्ड है जो किसी भी संशोधक कुंजियों का प्रतिनिधित्व करता है जिसे खिलाड़ी ने भी दबाया, जैसे Shift या Control।
यहां एक उदाहरण दिया गया है कि अपने गेम में की प्रेस का जवाब कैसे दिया जाए:
कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़on_key_press(स्वयं, कुंजी, संशोधक):
अगर कुंजी == आर्केड.की। बाएं:
# खिलाड़ी को बाएँ ले जाएँ
elif कुंजी == आर्केड.की। सही:
# खिलाड़ी को दाहिनी ओर ले जाएं
elif कुंजी == आर्केड.की। ऊपर:
# खिलाड़ी को ऊपर ले जाएं
elif कुंजी == आर्केड.की। नीचे:
# खिलाड़ी को नीचे ले जाएं
प्रमुख रिलीज का जवाब देने के लिए, आप परिभाषित कर सकते हैं on_key_release इसी तरह विधि:
कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़on_key_release(स्वयं, कुंजी, संशोधक):
अगर कुंजी == आर्केड.की। बाएं:
# प्लेयर को लेफ्ट मूव करना बंद करें
elif कुंजी == आर्केड.की। सही:
# खिलाड़ी को दाएँ घुमाना बंद करें
elif कुंजी == आर्केड.की। ऊपर:
# खिलाड़ी को ऊपर ले जाना बंद करें
elif कुंजी == आर्केड.की। नीचे:
# खिलाड़ी को नीचे ले जाना बंद करें
यह ध्यान रखना महत्वपूर्ण है कि कैप्चरिंग pygame में उपयोगकर्ता इनपुट आपके गेम लूप के भीतर मैन्युअल इवेंट चेकिंग की आवश्यकता है। दूसरी ओर, जब खिलाड़ी एक कुंजी दबाता है या जारी करता है, तो आर्केड लाइब्रेरी स्वचालित रूप से संबंधित विधियों को आमंत्रित करती है। इसका मतलब है कि आपको अपने गेम लूप में प्रमुख घटनाओं के लिए मैन्युअल रूप से जांच करने की ज़रूरत नहीं है, जिससे आपको अतिरिक्त कोड की परेशानी से बचा जा सके।
अपने गेम की जरूरतों को पूरा करने के लिए कीबोर्ड इनपुट हैंडलिंग को अनुकूलित करना
आर्केड लाइब्रेरी कीबोर्ड इनपुट को अनुकूलित करने के कई तरीके प्रदान करती है। हो सकता है कि आप अपने गेम के लिए की बाइंडिंग को बदलना चाहें या खिलाड़ी को अपने स्वयं के की बाइंडिंग को अनुकूलित करने की अनुमति दें।
आप एक शब्दकोश को परिभाषित करके ऐसा कर सकते हैं key_map जो प्रत्येक कुंजी को प्लेयर ऑब्जेक्ट की संबंधित विधि में मैप करता है। प्लेयर को अपनी कुंजी बाइंडिंग को अनुकूलित करने की अनुमति देने के लिए, आप एक सेटिंग मेनू जोड़ सकते हैं जो संशोधित करता है key_map शब्दकोश खिलाड़ी की वरीयताओं के आधार पर।
यहाँ एक उदाहरण है:
कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई, शीर्षक):
सुपर ()। __init__ (चौड़ाई, ऊंचाई, शीर्षक)
स्व खिलाड़ी = खिलाड़ी (100, 100)स्व.की_मैप = {
आर्केड.कुंजी। बाएँ: self.player.move_left,
आर्केड.कुंजी। राइट: सेल्फ.प्लेयर.मूव_राइट,
आर्केड.कुंजी। यूपी: सेल्फ.प्लेयर.मूव_अप,
आर्केड.कुंजी। नीचे: सेल्फ.प्लेयर.मूव_डाउन
}डीईएफ़on_key_press(स्वयं, कुंजी, संशोधक):
अगर चाबी में स्व.की_मैप:
स्व.की_मैप [कुंजी] ()
डीईएफ़on_key_release(स्वयं, कुंजी, संशोधक):
अगर चाबी में स्व.की_मैप:
स्वयं.की_मैप [कुंजी + 1]()
वास्तविक समय में उपयोगकर्ता इनपुट का जवाब दें
वास्तविक समय में उपयोगकर्ता इनपुट का जवाब देना एक आकर्षक गेम बनाने का एक अनिवार्य पहलू है। अपने गेम में कीबोर्ड इनपुट को ठीक से संभालने के लिए समय निकालकर, आप अधिक आकर्षक और गेम बना सकते हैं अपने खिलाड़ियों के लिए व्यापक अनुभव, और अंत में अपने खेल को भीड़ में अलग बनाएं बाज़ार।