PyGame Python के साथ प्रोजेक्ट बनाने के लिए एक लोकप्रिय लाइब्रेरी है, और यह गेम डेवलपमेंट के लिए टूल का एक शक्तिशाली सेट प्रदान करता है। इस लेख में, आप सीखेंगे कि PyGame का उपयोग करके एक साधारण गेम के लिए स्टार्ट मेन्यू और गेम ओवर स्क्रीन कैसे बनाया जाता है।
एक साधारण खेल बनाना
इससे पहले कि आप स्टार्ट मेन्यू और गेम ओवर स्क्रीन बनाएं, पहले एक साधारण गेम बनाते हैं। इस खेल में, आप तीर कुंजियों के साथ एक पात्र को नियंत्रित करेंगे और बाधाओं से बचने का प्रयास करेंगे। चीज़ों को सरल रखने के लिए, किसी भी चित्र का उपयोग न करने का प्रयास करें।
आरंभ करने के लिए, आपको आवश्यक मॉड्यूल आयात करने की आवश्यकता है। आप उपयोग कर रहे होंगे pygame PyGame के कार्यों तक पहुँचने के लिए मॉड्यूल। मॉड्यूल स्थापित करने के लिए, आप कर सकते हैं पिप पैकेज प्रबंधक का उपयोग करें:
रंज स्थापित करना pygame
अब जबकि हमारा मॉड्यूल इस्तेमाल के लिए तैयार है, आइए एक खिलाड़ी के साथ एक सरल गेम बनाएं जो तीर कुंजियों और एक बाधा का उपयोग करके बाएं या दाएं घूम सकता है। यदि आप बाधा से टकराते हैं, तो खेल समाप्त हो जाएगा। यहाँ उसी के लिए कोड है:
आयात pygame
pygame।इस में()स्क्रीन_चौड़ाई = 750
स्क्रीन_हाइट = 450
स्क्रीन = pygame.display.set_mode ((स्क्रीन_चौड़ाई, स्क्रीन_हाइट))बाधा_एक्स = 400
बाधा_वाई = 400
बाधा_चौड़ाई = 40
बाधा_हाइट = 40
प्लेयर_एक्स = 200
खिलाड़ी_वाई = 400
खिलाड़ी_चौड़ाई = 20
प्लेयर_हाइट = 20जबकिसत्य:
के लिएआयोजनमेंpygame।आयोजन।पाना():
अगर event.type == pygame. छोड़ना:
pygame।छोड़ना()
छोड़ना()
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। K_LEFT]:
प्लेयर_एक्स - = 5
अगरचांबियाँ[पायगैम। के_दाएं]:
प्लेयर_एक्स + = 5
अगर खिलाड़ी_एक्स + खिलाड़ी_चौड़ाई> बाधा_एक्स और खिलाड़ी_एक्स < बाधा_x + बाधा_चौड़ाईऔरखिलाड़ी_वाई + खिलाड़ी_ऊंचाई > बाधा_वाई और खिलाड़ी_वाई < बाधा_य + बाधा ऊंचाई:
गेम_ओवर = सत्य
स्क्रीन।भरना((0, 0, 0))
pygame।खींचनासही(स्क्रीन, (255, 0, 0), (बाधा_x, बाधा_य, बाधा_चौड़ाई, बाधा_ऊंचाई))
pygame।खींचनासही(स्क्रीन, (0, 255, 0), (खिलाड़ी_x, खिलाड़ी_वाई, खिलाड़ी_चौड़ाई, खिलाड़ी_ऊंचाई))
pygame।दिखाना।अद्यतन()
उपरोक्त कोड में, आपने गेम विंडो सेट की और गेम वेरिएबल्स घोषित किए। आपने उपयोगकर्ता इनपुट को भी संभाला और तत्वों को स्क्रीन पर खींचा।
स्टार्ट मेन्यू बनाना
अब जब आपके पास एक बुनियादी गेम है, तो चलिए एक स्टार्ट मेन्यू बनाते हैं। ऐसा करने के लिए, आपको गेम स्थिति के लिए एक वैश्विक चर घोषित करने की आवश्यकता होगी। यह चर खेल की वर्तमान स्थिति पर नज़र रखेगा, जैसे कि प्रारंभ मेनू सक्रिय है या खेल चल रहा है। आपको अपने गेम कोड की शुरुआत में इस वेरिएबल को जोड़ना होगा:
गेम_स्टेट = "शुरुआत की सूची"
इसके बाद, आप स्क्रीन पर स्टार्ट मेन्यू बनाने के लिए एक फंक्शन जोड़ेंगे। आप स्क्रीन पर पाठ, बटन और अन्य तत्वों को आरेखित करने के लिए PyGame फ़ंक्शन का उपयोग कर सकते हैं।
डीईएफ़draw_start_menu():
स्क्रीन।भरना((0, 0, 0))
फॉन्ट = पायगेम.फॉन्ट। सिसफॉन्ट('एरियल', 40)
शीर्षक = फ़ॉन्ट.रेंडर ('मेरा खेल', सत्य, (255, 255, 255))
start_button = फ़ॉन्ट.रेंडर ('शुरू करना', सत्य, (255, 255, 255))
स्क्रीन.ब्लिट (शीर्षक, (स्क्रीन_चौड़ाई/2 - शीर्षक.गेट_चौड़ाई)/2, स्क्रीन_हाइट/2 - शीर्षक.गेट_हाइट ()/2))
स्क्रीन.ब्लिट (स्टार्ट_बटन, (स्क्रीन_चौड़ाई/2 - start_button.get_width)/2, स्क्रीन_हाइट/2 + start_button.get_height ()/2))
pygame।दिखाना।अद्यतन()
इसके बाद आप जोड़ सकते हैं ड्रा_स्टार्ट_मेनू () मुख्य गेम लूप के लिए कार्य करें।
जबकिसत्य:
के लिएआयोजनमेंpygame।आयोजन।पाना():
अगर event.type == pygame. छोड़ना:
pygame।छोड़ना()
छोड़ना()
अगर game_state == "शुरुआत की सूची":
ड्रा_स्टार्ट_मेनू ()
अगर game_state == "खेल":
कुंजी = pygame.key.get_pressed ()
# बाकी कोड
अब, स्टार्ट मेन्यू स्क्रीन पर आ जाएगा। अंतिम चरण उपयोगकर्ता इनपुट को संभालना है। तुम कर सकते हो एक if स्टेटमेंट जोड़ें मुख्य गेम लूप में यह जांचने के लिए कि उपयोगकर्ता ने स्टार्ट बटन दबाया है या नहीं।
अगर game_state == "शुरुआत की सूची":
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। के_स्पेस]:
प्लेयर_एक्स = 200
खिलाड़ी_वाई = 400
गेम_स्टेट = "खेल"
गेम_ओवर = असत्य
इस कोड के साथ जब यूजर स्टार्ट बटन दबाएगा तो गेम शुरू हो जाएगा।
गेम ओवर स्क्रीन को लागू करना
अब जब आपके पास स्टार्ट मेन्यू है, तो स्क्रीन पर गेम बनाएं। इस फ़ंक्शन को अंतिम स्कोर और गेम-ओवर संदेश प्रदर्शित करना चाहिए।
डीईएफ़ड्रा_गेम_ओवर_स्क्रीन():
स्क्रीन।भरना((0, 0, 0))
फॉन्ट = पायगेम.फॉन्ट। सिसफॉन्ट('एरियल', 40)
शीर्षक = फ़ॉन्ट.रेंडर ('खेल खत्म', सत्य, (255, 255, 255))
पुनरारंभ_बटन = फ़ॉन्ट.रेंडर ('आर - पुनरारंभ करें', सत्य, (255, 255, 255))
Quit_button = फ़ॉन्ट.रेंडर ('क्यू - छोड़ो', सत्य, (255, 255, 255))
स्क्रीन ब्लिट (शीर्षक, (स्क्रीन_चौड़ाई/2 - शीर्षक.गेट_चौड़ाई)/2, स्क्रीन_हाइट/2 - शीर्षक.गेट_हाइट ()/3))
स्क्रीन.ब्लिट (रिस्टार्ट_बटन, (स्क्रीन_चौड़ाई/2 - पुनरारंभ_बटन.गेट_चौड़ाई)/2, स्क्रीन_हाइट/1.9 + रीस्टार्ट_बटन.गेट_हाइट ()))
स्क्रीन.ब्लिट (क्विट_बटन, (स्क्रीन_चौड़ाई/2 - क्विट_बटन.गेट_चौड़ाई)/2, स्क्रीन_हाइट/2 + क्विट_बटन.गेट_हाइट ()/2))
pygame।दिखाना।अद्यतन()
फिर आप इस फ़ंक्शन को मुख्य गेम लूप में जोड़ सकते हैं।
अगर game_state == "शुरुआत की सूची":
ड्रा_स्टार्ट_मेनू ()
अगर game_state == "खेल खत्म":
ड्रा_गेम_ओवर_स्क्रीन ()
अगर game_state == "खेल":
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। K_LEFT]:
प्लेयर_एक्स - = 5
अगरचांबियाँ[पायगैम। के_दाएं]:
प्लेयर_एक्स + = 5
अगर खिलाड़ी_एक्स + खिलाड़ी_चौड़ाई> बाधा_एक्स और खिलाड़ी_एक्स < बाधा_x + बाधा_चौड़ाईऔरखिलाड़ी_वाई + खिलाड़ी_ऊंचाई > बाधा_वाई और खिलाड़ी_वाई < बाधा_य + बाधा ऊंचाई:
गेम_ओवर = सत्य
गेम_स्टेट = "खेल खत्म"
अंत में, आपको उपयोगकर्ता की पसंद को संभालने के लिए उपयोगकर्ता इनपुट को संभालने की जरूरत है। आप यह जांचने के लिए मुख्य गेम लूप में if स्टेटमेंट जोड़ सकते हैं कि उपयोगकर्ता ने रीस्टार्ट या क्विट बटन दबाया है या नहीं।
अगर game_state == "शुरुआत की सूची":
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। के_स्पेस]:
गेम_स्टेट = "खेल"
प्लेयर_एक्स = 200
खिलाड़ी_वाई = 400
गेम_स्टेट = "खेल"
गेम_ओवर = असत्य
अगर game_state == "खेल खत्म":
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। के_आर]:
गेम_स्टेट = "शुरुआत की सूची"
अगरचांबियाँ[पायगैम। के_क्यू]:
pygame।छोड़ना()
छोड़ना()
इस कोड के साथ, जब उपयोगकर्ता 'आर' बटन दबाता है तो खेल फिर से शुरू हो जाएगा और जब उपयोगकर्ता कीबोर्ड पर 'क्यू' बटन दबाता है तो खेल बंद हो जाएगा।
नीचे पूरा कोड है:
आयात pygame
pygame।इस में()
स्क्रीन_चौड़ाई = 750
स्क्रीन_हाइट = 450
स्क्रीन = pygame.display.set_mode ((स्क्रीन_चौड़ाई, स्क्रीन_हाइट))
बाधा_एक्स = 400
बाधा_वाई = 400
बाधा_चौड़ाई = 40
बाधा_हाइट = 40
प्लेयर_एक्स = 200
खिलाड़ी_वाई = 400
खिलाड़ी_चौड़ाई = 20
प्लेयर_हाइट = 20
गेम_स्टेट = "शुरुआत की सूची"डीईएफ़draw_start_menu():
स्क्रीन।भरना((0, 0, 0))
फॉन्ट = पायगेम.फॉन्ट। सिसफॉन्ट('एरियल', 40)
शीर्षक = फ़ॉन्ट.रेंडर ('मेरा खेल', सत्य, (255, 255, 255))
start_button = फ़ॉन्ट.रेंडर ('शुरू करना', सत्य, (255, 255, 255))
स्क्रीन.ब्लिट (शीर्षक, (स्क्रीन_चौड़ाई/2 - शीर्षक.गेट_चौड़ाई)/2, स्क्रीन_हाइट/2 - शीर्षक.गेट_हाइट ()/2))
स्क्रीन.ब्लिट (स्टार्ट_बटन, (स्क्रीन_चौड़ाई/2 - start_button.get_width)/2, स्क्रीन_हाइट/2 + start_button.get_height ()/2))
pygame।दिखाना।अद्यतन()डीईएफ़ड्रा_गेम_ओवर_स्क्रीन():
स्क्रीन।भरना((0, 0, 0))
फॉन्ट = पायगेम.फॉन्ट। सिसफॉन्ट('एरियल', 40)
शीर्षक = फ़ॉन्ट.रेंडर ('खेल खत्म', सत्य, (255, 255, 255))
पुनरारंभ_बटन = फ़ॉन्ट.रेंडर ('आर - पुनरारंभ करें', सत्य, (255, 255, 255))
Quit_button = फ़ॉन्ट.रेंडर ('क्यू - छोड़ो', सत्य, (255, 255, 255))
स्क्रीन ब्लिट (शीर्षक, (स्क्रीन_चौड़ाई/2 - शीर्षक.गेट_चौड़ाई)/2, स्क्रीन_हाइट/2 - शीर्षक.गेट_हाइट ()/3))
स्क्रीन.ब्लिट (रिस्टार्ट_बटन, (स्क्रीन_चौड़ाई/2 - पुनरारंभ_बटन.गेट_चौड़ाई)/2, स्क्रीन_हाइट/1.9 + रीस्टार्ट_बटन.गेट_हाइट ()))
स्क्रीन.ब्लिट (क्विट_बटन, (स्क्रीन_चौड़ाई/2 - क्विट_बटन.गेट_चौड़ाई)/2, स्क्रीन_हाइट/2 + क्विट_बटन.गेट_हाइट ()/2))
pygame।दिखाना।अद्यतन()
जबकिसत्य:
के लिएआयोजनमेंpygame।आयोजन।पाना():
अगर event.type == pygame. छोड़ना:
pygame।छोड़ना()
छोड़ना()
अगर game_state == "शुरुआत की सूची":
ड्रा_स्टार्ट_मेनू ()
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। के_स्पेस]:
प्लेयर_एक्स = 200
खिलाड़ी_वाई = 400
गेम_स्टेट = "खेल"
गेम_ओवर = असत्य
elif game_state == "खेल खत्म":
ड्रा_गेम_ओवर_स्क्रीन ()
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। के_आर]:
गेम_स्टेट = "शुरुआत की सूची"
अगरचांबियाँ[पायगैम। के_क्यू]:
pygame।छोड़ना()
छोड़ना()
elif game_state == "खेल":
कुंजी = pygame.key.get_pressed ()
अगरचांबियाँ[पायगैम। K_LEFT]:
प्लेयर_एक्स - = 5
अगरचांबियाँ[पायगैम। के_दाएं]:
प्लेयर_एक्स + = 5
अगर खिलाड़ी_एक्स + खिलाड़ी_चौड़ाई> बाधा_एक्स और खिलाड़ी_एक्स < बाधा_x + बाधा_चौड़ाईऔरखिलाड़ी_वाई + खिलाड़ी_ऊंचाई > बाधा_वाई और खिलाड़ी_वाई < बाधा_य + बाधा ऊंचाई:
गेम_ओवर = सत्य
गेम_स्टेट = "खेल खत्म"
स्क्रीन।भरना((0, 0, 0))
pygame।खींचनासही(स्क्रीन, (255, 0, 0), (बाधा_x, बाधा_य, बाधा_चौड़ाई, बाधा_ऊंचाई))
pygame।खींचनासही(स्क्रीन, (0, 255, 0), (खिलाड़ी_x, खिलाड़ी_वाई, खिलाड़ी_चौड़ाई, खिलाड़ी_ऊंचाई))
pygame।दिखाना।अद्यतन()
elif खेल खत्म:
गेम_स्टेट = "खेल खत्म"
गेम_ओवर = असत्य
कोड आयात करके शुरू होता है pygame मॉड्यूल और इसे आरंभ करना। यह तब एक गेम विंडो बनाता है और खिलाड़ी और बाधा की स्थिति, आयाम और गेम स्थिति सहित आवश्यक गेम चर घोषित करता है।
कोड दो कार्यों को परिभाषित करता है, ड्रा_स्टार्ट_मेनू () और ड्रा_गेम_ओवर_स्क्रीन (), स्क्रीन पर स्टार्ट मेन्यू और गेम ड्रा करने के लिए। ये फ़ंक्शन पाठ और बटन को स्क्रीन पर खींचने के लिए PyGame फ़ंक्शन का उपयोग करते हैं।
मुख्य गेम लूप घटनाओं को संभालने और खेल की स्थिति की जांच करने से शुरू होता है। यदि खेल स्थिति है शुरुआत की सूची, स्टार्ट मेन्यू स्क्रीन पर आ जाता है। यदि खेल स्थिति है खेल खत्म, गेम-ओवर स्क्रीन को स्क्रीन पर खींचा जाता है। यदि खेल की स्थिति कुछ और है, तो खेल अद्यतन होता है और खिलाड़ी और बाधा को स्क्रीन पर खींचता है।
खेल प्रमुख प्रेस को संभालने और खिलाड़ी और बाधा के बीच टकराव की जाँच करके अद्यतन करता है। यदि कोई टक्कर होती है, तो खेल निर्धारित करता है खेल खत्म के लिए झंडा सत्य और गेम स्टेट को सेट करता है खेल खत्म.
गेम अपडेट होने के बाद, खिलाड़ी और बाधा को स्क्रीन पर खींचा जाता है। अंत में, कोड जाँचता है कि क्या खेल खत्म ध्वज सेट है, और यदि यह है, तो यह ध्वज को रीसेट करता है और खेल की स्थिति को सेट करता है खेल खत्म.
यह प्रक्रिया गेम विंडो के बंद होने तक लगातार दोहराई जाती है।
दिखने में आकर्षक UI के साथ उपयोगकर्ता जुड़ाव बढ़ाएं
एक अच्छी तरह से डिज़ाइन किए गए यूजर इंटरफेस (यूआई) का उपयोग करने से पायगैम गेम में यूजर एंगेजमेंट काफी बढ़ सकता है। एक स्पष्ट और आसानी से पढ़ा जाने वाला फॉन्ट, देखने में आकर्षक ग्राफिक्स, आसान नेविगेशन और यूजर फीडबैक यूआई डिजाइन करते समय विचार करने के लिए सभी महत्वपूर्ण तत्व हैं। इन तत्वों को लागू करके, आप एक यूआई बना सकते हैं जो खिलाड़ी को रुचि रखने और खेल में डूबे रहने में मदद करता है।
अपने यूआई का परीक्षण करना याद रखें और यह सुनिश्चित करने के लिए खिलाड़ियों से फीडबैक इकट्ठा करें कि यह जुड़ाव बढ़ाने में प्रभावी है। कुल मिलाकर, एक मजबूत यूआई बनाने के लिए समय लेने से खिलाड़ी के अनुभव और आपके खेल के आनंद में काफी सुधार हो सकता है।