दुश्मनों का परिचय देकर अपने आर्केड गेम को मसाला दें।

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

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

शुरू करने से पहले, सुनिश्चित करें कि आपके पास है आपके डिवाइस पर पाइप स्थापित है. स्थापित करने के लिए इस आदेश का प्रयोग करें आर्केड पुस्तकालय:

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

उसके बाद, एक साधारण खेल बनाकर प्रारंभ करें जहां खिलाड़ी तीर कुंजियों का उपयोग करके बाएँ और दाएँ घूम सकता है।

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

आयात आर्केड

# विंडो आयाम
स्क्रीन_WIDTH = 800
स्क्रीन_हाइट = 600

# खिलाड़ी गुण
PLAYER_RADIUS = 25
PLAYER_SPEED = 5

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

instagram viewer

डीईएफ़on_draw(खुद):
आर्केड. start_render ()
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.प्लेयर_एक्स, PLAYER_RADIUS, PLAYER_RADIUS, आर्केड.कलर। नीला)

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

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

डीईएफ़मुख्य():
विंडो = गेमविंडो (SCREEN_WIDTH, SCREEN_HEIGHT)
आर्केड.रन ()

अगर __नाम__ == "__मुख्य__":
मुख्य()

एक साधारण दुश्मन बनाना

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

# गेमविंडो क्लास में जोड़ें

कक्षागेमविंडो(आर्केड। खिड़की):
# ...

डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई):
# ...

# शत्रु गुण
स्व.शत्रु_x = चौड़ाई // 2
Self.enemy_y = ऊंचाई - PLAYER_RADIUS
स्व.शत्रु_त्रिज्या = 20

डीईएफ़on_draw(खुद):
# ...
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.एनमी_एक्स, सेल्फ.एनमी_वाई, सेल्फ.एनिमी_रेडियस, आर्केड.कलर। लाल)

डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
अगर self.is_collision (self.player_x, self.player_y, self.enemy_x, self.enemy_y, PLAYER_RADIUS, self.enemy_radius):
प्रिंट ("खेल खत्म!")

डीईएफ़is_collision(स्वयं, X1, y1, x2, y2, त्रिज्या1, त्रिज्या2):
दूरी_वर्ग = (x1 - x2) ** 2 + (वाई1 - वाई2) ** 2
त्रिज्या_योग_वर्ग = (त्रिज्या1 + त्रिज्या2) ** 2
वापस करना दूरी_वर्ग <= त्रिज्या_योग_वर्ग

दुश्मन बनाना खिलाड़ी का पालन करें

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

# गेमविंडो क्लास में जोड़ें

कक्षागेमविंडो(आर्केड। खिड़की):
# ...

डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
अगर स्व.खिलाड़ी_x स्व.शत्रु_x -= PLAYER_SPEED
elif सेल्फ.प्लेयर_एक्स> सेल्फ.एनमी_एक्स:
स्व.शत्रु_x += PLAYER_SPEED

अगर self.is_collision (self.player_x, self.player_y,
स्व.शत्रु_x, स्व.शत्रु_य,
PLAYER_RADIUS, ENEMY_RADIUS):
प्रिंट ("खेल खत्म!")

डीईएफ़is_collision(स्वयं, X1, y1, x2, y2, त्रिज्या1, त्रिज्या2):
दूरी_वर्ग = (x1 - x2) ** 2 + (वाई1 - वाई2) ** 2
त्रिज्या_योग_वर्ग = (त्रिज्या1 + त्रिज्या2) ** 2
वापस करना दूरी_वर्ग <= त्रिज्या_योग_वर्ग

नीचे आउटपुट है:

दुश्मन की गोलियां जोड़ना

एक दुश्मन बनाने के लिए जो गोलियां चलाता है, एक बनाएं गोली क्लास और सक्रिय गोलियों का ट्रैक रखने के लिए एक सूची। दुश्मन समय-समय पर एक नई गोली बनाएगा और अपनी स्थिति को अपडेट करेगा। नाम से एक नई फाइल बनाएं Bullets.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:

# गेमविंडो क्लास में जोड़ें

कक्षागोली:
डीईएफ़__इस में__(स्वयं, एक्स, वाई, त्रिज्या, गति):
स्व। एक्स = एक्स
स्वयं वाई = वाई
स्व.त्रिज्या = त्रिज्या
गति = गति

डीईएफ़अद्यतन(खुद):
स्व.य-=स्व.गति

कक्षागेमविंडो(आर्केड। खिड़की):
# ...

डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई):
# ...

# शत्रु गुण
सेल्फ बुलेट्स = []
स्व.बुलेट_त्रिज्या = 5
स्व.बुलेट_स्पीड = 3
स्व.बुलेट_कूलडाउन = 60# बुलेट स्पॉन के बीच फ्रेम की संख्या
स्व.बुलेट_टाइमर = 0

डीईएफ़on_draw(खुद):
# ...
के लिए गोली में स्व.बुलेट:
आर्केड.ड्रॉ_सर्कल_फिल्ड (बुलेट.एक्स, बुलेट.वाई,
सेल्फ.बुलेट_रेडियस, आर्केड.कलर। काला)

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

सेल्फ.बुलेट_टाइमर += 1
अगर सेल्फ.बुलेट_टाइमर>= सेल्फ.बुलेट_कूलडाउन:
self.bullets.append (बुलेट (self.enemy_x, self.enemy_y - self.enemy_radius,
सेल्फ.बुलेट_रेडियस, सेल्फ.बुलेट_स्पीड))
स्व.बुलेट_टाइमर = 0

के लिए गोली में स्व.बुलेट:
बुलेट.अपडेट ()
अगर self.is_collision (self.player_x, self.player_y, self.enemy_x,
स्व.शत्रु_वाई, PLAYER_RADIUS, ENEMY_RADIUS):
प्रिंट ("खेल खत्म!")

डीईएफ़is_collision(स्वयं, X1, y1, x2, y2, त्रिज्या1, त्रिज्या2):
दूरी_वर्ग = (x1 - x2) ** 2 + (वाई1 - वाई2) ** 2
त्रिज्या_योग_वर्ग = (त्रिज्या1 + त्रिज्या2) ** 2
वापस करना दूरी_वर्ग <= त्रिज्या_योग_वर्ग

नीचे आउटपुट है:

दुश्मनों के लिए स्वास्थ्य अंक जोड़ना

कई खेलों में, दुश्मनों के पास स्वास्थ्य बिंदु (एचपी) हो सकते हैं, जिससे उन्हें पराजित होने से पहले कई हिट बनाए रखने की अनुमति मिलती है। दुश्मनों को स्वास्थ्य बिंदु जोड़ना सामरिक गेमप्ले तत्वों को पेश कर सकता है और प्रगति और चुनौती की भावना प्रदान कर सकता है। नाम से एक नई फाइल बनाएं हीथ-पॉइंट.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:

# विंडो आयाम
स्क्रीन_WIDTH = 800
स्क्रीन_हाइट = 600

# खिलाड़ी गुण
PLAYER_RADIUS = 25
PLAYER_SPEED = 5

# शत्रु गुण
ENEMY_RADIUS = 20
ENEMY_HEALTH = 100

कक्षागेमविंडो(आर्केड। खिड़की):
डीईएफ़__इस में__(स्वयं, चौड़ाई, ऊंचाई):
सुपर ()। __init__ (चौड़ाई, ऊंचाई)
आर्केड.सेट_बैकग्राउंड_कलर (आर्केड.रंग। सफ़ेद)
स्व.खिलाड़ी_x = चौड़ाई // 2
स्व.खिलाड़ी_य = ऊँचाई // 2
स्व.शत्रु_x = चौड़ाई // 2
Self.enemy_y = ऊंचाई - PLAYER_RADIUS
स्व.शत्रु_स्वास्थ्य = शत्रु_स्वास्थ्य
प्रिंट (स्व.शत्रु_स्वास्थ्य)
डीईएफ़on_draw(खुद):
आर्केड. start_render ()
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.प्लेयर_एक्स,
स्व.खिलाड़ी_वाई,
PLAYER_RADIUS,
आर्केड रंग। नीला)
अगर स्व.शत्रु_स्वास्थ्य> 0:
आर्केड.ड्रॉ_सर्कल_फिल्ड (सेल्फ.एनमी_एक्स,
स्व.शत्रु_वाई,
ENEMY_RADIUS,
आर्केड रंग। लाल)

डीईएफ़अद्यतन(स्वयं, डेल्टा_टाइम):
अगर self.is_collision (self.player_x, self.player_y,
स्व.शत्रु_x, स्व.शत्रु_य,
PLAYER_RADIUS, ENEMY_RADIUS):
स्व.शत्रु_स्वास्थ्य-= 10
प्रिंट (स्व.शत्रु_स्वास्थ्य)

शत्रु_स्वास्थ्य दुश्मन के प्रारंभिक स्वास्थ्य बिंदुओं का प्रतिनिधित्व करने के लिए स्थिरांक का मान 100 होता है। जब खिलाड़ी दुश्मन से टकराता है, तो आप दुश्मन के स्वास्थ्य से कुछ अंक घटा सकते हैं। अद्यतित स्वास्थ्य मान प्रदर्शित करने के लिए, आप टेक्स्ट ऑब्जेक्ट प्रिंट कर सकते हैं स्व.स्वास्थ्य_पाठ जो वर्तमान शत्रु स्वास्थ्य को दर्शाता है।

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

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

दुश्मन बनाने के लिए सर्वोत्तम अभ्यास

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

विविध गुण

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

अनोखा व्यवहार

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

स्वास्थ्य अंक (एचपी)

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

दुश्मनों के साथ खेलों को और मज़ेदार बनाएं

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