कैमरा शामिल करके Python आर्केड गेम के साथ अपने गेमिंग अनुभव को बेहतर बनाएं।

पायथन आर्केड लाइब्रेरी 2डी गेम बनाने के लिए एक शक्तिशाली और उपयोगकर्ता के अनुकूल ढांचा है। एक प्रमुख विशेषता जो गेमप्ले और उपयोगकर्ता के अनुभव को काफी बढ़ा सकती है, वह कैमरा है। अपने गेम में कैमरा जोड़ने से डायनेमिक व्यूपोर्ट हेरफेर की अनुमति मिलती है, जिससे खिलाड़ी बड़े गेम की दुनिया का पता लगाने, विशिष्ट क्षेत्रों पर ध्यान केंद्रित करने या गति में वस्तुओं को ट्रैक करने में सक्षम होता है।

कैमरे के दृष्टिकोण को आगे बढ़ाकर, आप देखने में आकर्षक प्रभाव बना सकते हैं, गेमप्ले यांत्रिकी को बढ़ा सकते हैं, और अधिक इमर्सिव गेमिंग अनुभव प्रदान कर सकते हैं।

एक साधारण खेल बनाएँ

शुरू करने से पहले, अपने डिवाइस पर पाइप स्थापित करें और इंस्टॉल करने के लिए नीचे दिए गए कमांड का उपयोग करें आर्केड मापांक:

पिप आर्केड स्थापित करें

अब, एक मूल साइड-स्क्रॉलिंग गेम बनाकर शुरू करें जहां खिलाड़ी एक ऐसे चरित्र को नियंत्रित करता है जो तीर कुंजियों का उपयोग करके बाएं और दाएं स्थानांतरित हो सकता है।

इस आलेख में प्रयुक्त कोड इसमें उपलब्ध है गिटहब रिपॉजिटरी और आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए स्वतंत्र है।

instagram viewer

इसके अतिरिक्त, आप खिलाड़ी के चारों ओर नेविगेट करने के लिए एक बाधा जोड़ सकते हैं।

आयात आर्केड

स्क्रीन_WIDTH = 800
स्क्रीन_हाइट = 600
MOVEMENT_SPEED = 5

कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई):
सुपर ()। __init__ (चौड़ाई, ऊंचाई)
स्व.खिलाड़ी_x = चौड़ाई // 2
स्व.खिलाड़ी_य = ऊँचाई // 2

डीईएफ़स्थापित करना(खुद):
आर्केड.सेट_बैकग्राउंड_कलर (आर्केड.कलर। आसमानी नीला)

डीईएफ़on_draw(खुद):
आर्केड. start_render ()
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.प्लेयर_एक्स, सेल्फ.प्लेयर_य, 20, आर्केड. रंग। लाल)
आर्केड। ड्रा_रेक्टेंगल_फिल्ड (400, 200, 80, 40, आर्केड. रंग। हरा)

डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
उत्तीर्ण

डीईएफ़on_key_press(स्वयं, कुंजी, संशोधक):
अगर कुंजी == आर्केड.की। बाएं:
Self.player_x -= MOVEMENT_SPEED
elif कुंजी == आर्केड.की। सही:
Self.player_x += MOVEMENT_SPEED

अगर __नाम__ == "__मुख्य__":
game = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
गेम.सेटअप ()
आर्केड.रन ()

कैमरा सेट करना

गेम में कैमरा जोड़ने के लिए, एक बनाएँ कैमरा वर्ग जो कैमरे की स्थिति और गति का प्रबंधन करता है। इस वर्ग में विशेषताएँ होंगी जैसे कैमरा_x और कैमरा_वाई कैमरे के निर्देशांक को स्टोर करने के लिए।

कक्षाकैमरा:
डीईएफ़__इस में__(खुद):
सेल्फ.कैमरा_एक्स = 0
स्व.कैमरा_वाई = 0

कीबोर्ड इनपुट के साथ कैमरा मूवमेंट

अगला, खेल को संशोधित करें on_key_press कैमरा शामिल करने की विधि खिलाड़ी के इनपुट के आधार पर आंदोलन. जब खिलाड़ी बाएँ या दाएँ चलता है, तो आप उसके अनुसार कैमरे की स्थिति को अपडेट कर सकते हैं। इसके अलावा, गेम ऑब्जेक्ट्स को रेंडर करते समय कैमरे की स्थिति को ध्यान में रखने के लिए ड्राइंग कोड को समायोजित करें।

कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई):
सुपर ()। __init__ (चौड़ाई, ऊंचाई)
सेल्फ.कैमरा = कैमरा ()
स्व.खिलाड़ी_x = चौड़ाई // 2
स्व.खिलाड़ी_य = ऊँचाई // 2

डीईएफ़on_key_press(स्वयं, कुंजी, संशोधक):
अगर कुंजी == आर्केड.की। बाएं:
Self.player_x -= MOVEMENT_SPEED
सेल्फ.कैमरा.कैमरा_एक्स -= MOVEMENT_SPEED
elif कुंजी == आर्केड.की। सही:
Self.player_x += MOVEMENT_SPEED
सेल्फ.कैमरा.कैमरा_x += MOVEMENT_SPEED

डीईएफ़on_draw(खुद):
आर्केड. start_render ()
आर्केड.सेट_व्यूपोर्ट (
सेल्फ.कैमरा.कैमरा_एक्स,
स्वयं.कैमरा.कैमरा_x + SCREEN_WIDTH,
सेल्फ.कैमरा.कैमरा_वाई,
सेल्फ.कैमरा.कैमरा_य + स्क्रीन_हाइट
)
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.प्लेयर_एक्स, सेल्फ.प्लेयर_य, 20, आर्केड. रंग। लाल)
आर्केड। ड्रा_रेक्टेंगल_फिल्ड (400, 200, 80, 40, आर्केड. रंग। हरा)

माउस इनपुट के साथ कैमरा मूवमेंट

कीबोर्ड इनपुट के अतिरिक्त, आप माउस इनपुट के आधार पर कैमरा मूवमेंट को भी सक्षम कर सकते हैं। उदाहरण के लिए, आप खिलाड़ी को स्क्रीन खींचकर कैमरा पैन करने की अनुमति दे सकते हैं। इसे प्राप्त करने के लिए, संशोधित करें on_mouse_drag माउस की गति के आधार पर कैमरे की स्थिति को अपडेट करने की विधि।

कक्षामेरा खेल(आर्केड। खिड़की):
डीईएफ़on_mouse_drag(स्वयं, एक्स, वाई, डीएक्स, डीई, बटन, संशोधक):
अगर बटन == आर्केड। माउस_बटन_बाएं:
स्वयं.कैमरा.कैमरा_एक्स - = डीएक्स
सेल्फ.कैमरा.कैमरा_वाई -= डाई

अतिरिक्त सुविधाओं सहित

अपने गेम में कैमरा जोड़ने से अतिरिक्त सुविधाओं और प्रभावों के लिए संभावनाओं की दुनिया खुल जाती है। यहां कुछ उदाहरण दिए गए हैं कि कैसे आप कैमरा सिस्टम का उपयोग करके अपने गेम को और बेहतर बना सकते हैं।

ज़ूम कार्यक्षमता

ज़ूम कार्यक्षमता को लागू करने के लिए, आपको परिचय कराने की आवश्यकता है ज़ूम में चर कैमरा वर्ग और संशोधित करें on_mouse_scroll माउस व्हील मूवमेंट के आधार पर जूम लेवल को अपडेट करने की विधि। आपको समायोजित करने की भी आवश्यकता है set_viewport ज़ूम स्तर पर विचार करने के लिए पैरामीटर।

कक्षाकैमरा:
डीईएफ़__इस में__(खुद):
सेल्फ.कैमरा_एक्स = 0
स्व.कैमरा_वाई = 0
स्व.ज़ूम = 1.0

कक्षामेरा खेल(आर्केड। खिड़की):

डीईएफ़on_mouse_scroll(स्वयं, एक्स, वाई, स्क्रॉल_एक्स, स्क्रॉल_वाई):
सेल्फ.कैमरा.ज़ूम += स्क्रॉल_वाई * 0.1

डीईएफ़on_draw(खुद):
आर्केड. start_render ()
आर्केड.सेट_व्यूपोर्ट (
सेल्फ.कैमरा.कैमरा_एक्स * सेल्फ.कैमरा.जूम,
(सेल्फ़.कैमरा.कैमरा_x + स्क्रीन_WIDTH) * सेल्फ़.कैमरा.ज़ूम,
सेल्फ.कैमरा.कैमरा_वाई * सेल्फ.कैमरा.ज़ूम,
(सेल्फ.कैमरा.कैमरा_वाई + स्क्रीन_हाइट) * सेल्फ.कैमरा.ज़ूम
)
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.प्लेयर_एक्स, सेल्फ.प्लेयर_य, 20, आर्केड. रंग। लाल)
आर्केड। ड्रा_रेक्टेंगल_फिल्ड (400, 200, 80, 40, आर्केड. रंग। हरा)

चिकना कैमरा आंदोलन

कैमरे की सहज गति प्राप्त करने के लिए, आप रैखिक इंटरपोलेशन (एलईआरपी) नामक एक इंटरपोलेशन तकनीक पेश कर सकते हैं। संशोधित करें अद्यतन lerp का उपयोग करके कैमरे को धीरे-धीरे लक्ष्य स्थिति की ओर ले जाने की विधि। यह एक सहज संक्रमण प्रभाव पैदा करता है।

कक्षाकैमरा:
डीईएफ़__इस में__(खुद):
सेल्फ.कैमरा_एक्स = 0
स्व.कैमरा_वाई = 0
स्वयं लक्ष्य_x = 0
स्व.target_y = 0
स्व.लेरप_स्पीड = 0.1

डीईएफ़अद्यतन(खुद):
सेल्फ.कैमरा_एक्स = आर्केड.लेर्प (सेल्फ.कैमरा_एक्स, सेल्फ.टारगेट_एक्स, सेल्फ.लेर्प_स्पीड)
सेल्फ.कैमरा_वाई = आर्केड.लेरप (सेल्फ.कैमरा_य, सेल्फ.टारगेट_य, सेल्फ.लेरप_स्पीड)

कक्षामेरा खेल(आर्केड। खिड़की):

डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
सेल्फ.कैमरा.टारगेट_एक्स = सेल्फ.प्लेयर_एक्स - SCREEN_WIDTH // 2
सेल्फ.कैमरा.टारगेट_य = सेल्फ.प्लेयर_य - स्क्रीन_हाइट // 2
सेल्फ.कैमरा.अपडेट ()

डीईएफ़on_draw(खुद):
आर्केड. start_render ()
आर्केड.सेट_व्यूपोर्ट (
सेल्फ.कैमरा.कैमरा_एक्स,
स्वयं.कैमरा.कैमरा_x + SCREEN_WIDTH,
सेल्फ.कैमरा.कैमरा_वाई,
सेल्फ.कैमरा.कैमरा_य + स्क्रीन_हाइट
)
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.प्लेयर_एक्स, सेल्फ.प्लेयर_य, 20, आर्केड. रंग। लाल)
आर्केड। ड्रा_रेक्टेंगल_फिल्ड (400, 200, 80, 40, आर्केड. रंग। हरा)

कैमरा प्रतिबंध

कैमरे को कुछ सीमाओं से आगे बढ़ने से रोकने के लिए, आप बाधाओं का परिचय दे सकते हैं। उदाहरण के लिए, आप एक न्यूनतम और अधिकतम कैमरा स्थिति परिभाषित कर सकते हैं और यह सुनिश्चित कर सकते हैं कि कैमरा उन सीमाओं के भीतर रहे।

कक्षाकैमरा:
डीईएफ़__इस में__(खुद):
सेल्फ.कैमरा_एक्स = 0
स्व.कैमरा_वाई = 0
स्वयं.min_x = 0
स्व। मैक्स_एक्स = 800
स्वयं.min_y = 0
स्व.max_y = 600

डीईएफ़अद्यतन(खुद):
सेल्फ.कैमरा_एक्स = मैक्स (सेल्फ.मिन_एक्स, मिन (सेल्फ.कैमरा_एक्स, सेल्फ.मैक्स_एक्स))
सेल्फ.कैमरा_वाई = अधिकतम (सेल्फ.मिन_वाई, मिन (सेल्फ.कैमरा_वाई, सेल्फ.मैक्स_वाई))

कक्षामेरा खेल(आर्केड। खिड़की):

डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
सेल्फ.कैमरा.कैमरा_एक्स = सेल्फ.प्लेयर_एक्स - SCREEN_WIDTH // 2
सेल्फ.कैमरा.कैमरा_य = सेल्फ.प्लेयर_य - स्क्रीन_हाइट // 2
सेल्फ.कैमरा.अपडेट ()

डीईएफ़on_draw(खुद):
आर्केड. start_render ()
आर्केड.सेट_व्यूपोर्ट (
सेल्फ.कैमरा.कैमरा_एक्स,
स्वयं.कैमरा.कैमरा_x + SCREEN_WIDTH,
सेल्फ.कैमरा.कैमरा_वाई,
सेल्फ.कैमरा.कैमरा_य + स्क्रीन_हाइट
)
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.प्लेयर_एक्स, सेल्फ.प्लेयर_य, 20, आर्केड. रंग। लाल)
आर्केड। ड्रा_रेक्टेंगल_फिल्ड (400, 200, 80, 40, आर्केड. रंग। हरा)

ये कुछ उदाहरण हैं कि आप अपने पायथन आर्केड गेम में अतिरिक्त सुविधाओं और प्रभावों को शामिल करने के लिए कैमरा सिस्टम का लाभ कैसे उठा सकते हैं।

आप अपने पायथन-आधारित खेलों में कई अन्य अतिरिक्त सुविधाएँ भी जोड़ सकते हैं। उदाहरण के लिए, जब आप कैमरे को उसकी स्थिति याद दिला सकते हैं खिलाड़ी एक अलग स्तर पर जाता है. यह सुनिश्चित करता है कि खिलाड़ी के लिए एक सहज और सुसंगत अनुभव प्रदान करते हुए, स्तरों के बीच परिवर्तन करते समय दृश्य समान रहे।

कैमरा सिस्टम के लिए सर्वोत्तम अभ्यास

अपने पायथन आर्केड गेम में एक कैमरा सिस्टम लागू करते समय, इष्टतम कार्यक्षमता और एक सहज खिलाड़ी अनुभव सुनिश्चित करने के लिए सर्वोत्तम प्रथाओं का पालन करना आवश्यक है। ध्यान में रखने के लिए यहां कुछ प्रमुख दिशानिर्देश दिए गए हैं:

  • अत्यधिक कैमरा मूवमेंट से बचें: हालांकि कैमरा आपके गेम में गतिशील तत्व जोड़ सकता है, लेकिन संतुलन बनाना और कैमरे की अत्यधिक गति से बचना महत्वपूर्ण है। कैमरे की स्थिति को लगातार बदलने से खिलाड़ियों को भटकाव हो सकता है और उनके लिए खेल की दुनिया में नेविगेट करना चुनौतीपूर्ण हो सकता है।
  • विभिन्न संकल्पों और पहलू अनुपातों में परीक्षण करें: यह सुनिश्चित करने के लिए विभिन्न स्क्रीन रिज़ॉल्यूशन और पहलू अनुपात पर आपके कैमरा सिस्टम का परीक्षण करना आवश्यक है कि यह विभिन्न उपकरणों और कॉन्फ़िगरेशन में अच्छी तरह से काम करता है। यह व्यूपोर्ट स्केलिंग, ऑब्जेक्ट पोजिशनिंग, या पहलू अनुपात समायोजन से संबंधित किसी भी मुद्दे की पहचान करने में आपकी सहायता करेगा।
  • प्रतिपादन अनुकूलित करें: कैमरा सिस्टम गेम के प्रदर्शन को संभावित रूप से प्रभावित कर सकता है, विशेष रूप से बड़े गेम वर्ल्ड या कई ऑब्जेक्ट्स को रेंडर करते समय। रेंडरिंग को अनुकूलित करने के लिए, निर्धारित करें कि कौन से ऑब्जेक्ट कैमरे के दृश्य के बाहर हैं और उन्हें रेंडरिंग से बाहर करें।
  • किनारे के मामलों को संभालें: किनारे के मामलों पर ध्यान दें जहां कैमरा विशिष्ट परिदृश्यों का सामना कर सकता है, जैसे सीमाएँ, टकराव का पता लगाना, या अतिव्यापी वस्तुएँ। सुनिश्चित करें कि कैमरा सिस्टम इन मामलों को इनायत से संभालता है और खेल के वातावरण के साथ सीमाओं या बातचीत को इंगित करने के लिए सहज संक्रमण या उपयुक्त दृश्य संकेत प्रदान करता है।

इन सर्वोत्तम प्रथाओं का पालन करके, आप एक मजबूत और उपयोगकर्ता के अनुकूल कैमरा सिस्टम बना सकते हैं जो आपके पायथन आर्केड गेम में मूल रूप से एकीकृत हो जाता है।

कैमरे का उपयोग करके खेलों को और मज़ेदार बनाएं

अपने पायथन आर्केड गेम में एक कैमरा जोड़कर, आप खिलाड़ी के विसर्जन और जुड़ाव को बहुत बढ़ा सकते हैं। चाहे वह व्यापक खेल की दुनिया बना रहा हो, महत्वपूर्ण क्षेत्रों पर ध्यान केंद्रित कर रहा हो, या चलती वस्तुओं को ट्रैक कर रहा हो, कैमरा सिस्टम गेम डेवलपर्स के लिए एक शक्तिशाली उपकरण प्रदान करता है।

कैमरा मूवमेंट, ज़ूमिंग और अतिरिक्त प्रभावों का लाभ उठाते हुए, आप मंत्रमुग्ध कर देने वाले अनुभव बना सकते हैं जो खिलाड़ियों को लुभाते हैं और उन्हें और अधिक के लिए वापस लाते रहते हैं।