आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

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

एक साधारण पायथन प्रोग्राम के साथ, आप Pygame में स्प्राइट-आधारित गेम वर्ण बनाने की प्रक्रिया के बारे में जान सकते हैं। मूल स्प्राइट क्लास बनाने का तरीका जानें, फिर व्यवहार को नियंत्रित करने के लिए विशेषताएँ और विधियाँ जोड़ें।

Pygame के स्प्राइट क्लास का परिचय

Pygame में स्प्राइट क्लास एक कंटेनर क्लास है जिसमें गेम कैरेक्टर के सभी गुण और व्यवहार होते हैं। यह Pygame के सरफेस क्लास से निकला है, जो एक निश्चित चौड़ाई और ऊंचाई वाली छवि का प्रतिनिधित्व करता है।

इसके साथ काम करने के लिए, आपको एक नया वर्ग बनाना होगा जो स्प्राइट वर्ग से विरासत में मिले, और किसी भी विशेषता और विधियों को परिभाषित करें जो आप चाहते हैं कि आपका खेल चरित्र हो।

instagram viewer

गेम कैरेक्टर के लिए बेसिक स्प्राइट क्लास बनाना

पहला, पाइप का उपयोग करके पायगम मॉड्यूल स्थापित करें. इस आदेश के साथ ऐसा करें:

रंज स्थापित करना pygame

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

उदाहरण के लिए, हो सकता है कि आप खिलाड़ी के चरित्र के लिए एक स्प्राइट क्लास बनाना चाहें जो स्क्रीन पर बाएं और दाएं घूम सके। ऐसा करने के लिए, आप निम्नलिखित विशेषताओं को परिभाषित कर सकते हैं:

  • पद: एक टपल जो स्क्रीन पर स्प्राइट के x और y निर्देशांक रखता है।
  • वेग: एक टपल जो उस गति को धारण करता है जिस पर स्प्राइट क्षैतिज और लंबवत गति करता है।

और निम्नलिखित तरीके:

  • अद्यतन(): एक विधि जो प्रेत के वेग के आधार पर उसकी स्थिति को अद्यतन करती है।
  • खींचना(): एक विधि जो स्प्राइट को स्क्रीन पर खींचती है।

यहाँ एक मूल स्प्राइट वर्ग का उदाहरण दिया गया है जो इन विशेषताओं और विधियों को लागू करता है:

आयात pygame

कक्षाखिलाड़ी(पायगैम.स्प्राइट. स्प्राइट):
डीईएफ़__इस में__(स्वयं, एक्स, वाई, वेग_एक्स, वेग_वाई):
बहुत अच्छा()।__इस में__()
खुदस्थिति = (एक्स, वाई)
खुद.वेग = (वेग_x, वेग_y)

डीईएफ़अद्यतन(खुद):
खुदस्थिति = (खुद।पद[0] + खुद।वेग[0], खुद।पद[1] + खुद।वेग[1])

डीईएफ़खींचना(स्वयं, सतह):
pygame।खींचना।घेरा(सतह, (255, 0, 0), खुद।पद, 10)

__init__ विधि एक विशेष है पायथन कक्षाओं में विधि यह तब चलता है जब आप कक्षा का एक उदाहरण बनाते हैं। आप इसका उपयोग उदाहरण की विशेषताओं को आरंभ करने के लिए कर सकते हैं।

इस कोड में, प्लेयर वर्ग की __init__ विधि चार तर्क लेती है: x, y, वेग_x, और वेग_y। ये तर्क प्लेयर स्प्राइट की प्रारंभिक स्थिति और वेग निर्धारित करते हैं।

__init__ मेथड भी सुपर().__init__() मेथड को कॉल करती है, जो पैरेंट स्प्राइट क्लास की __init__ मेथड है। यह आवश्यक है क्योंकि प्लेयर क्लास स्प्राइट क्लास का उपवर्ग है, और स्प्राइट क्लास का __init__ मेथड कुछ एट्रीब्यूट सेट करता है जिसकी सभी स्प्राइट्स को जरूरत होती है।

व्यवहार को नियंत्रित करने के लिए विशेषताएँ और विधियाँ जोड़ना

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

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

उदाहरण के लिए, आप स्प्राइट की गति को नियंत्रित करने के लिए एक विधि जोड़ना चाह सकते हैं, जैसे कि एक चाल_बाएँ () विधि जो एक्स-अक्ष पर स्प्राइट के वेग को कम करती है।

यहाँ एक संशोधित स्प्राइट वर्ग का एक उदाहरण दिया गया है जिसमें ये अतिरिक्त विशेषताएँ और विधियाँ शामिल हैं:

कक्षाखिलाड़ी(पायगैम.स्प्राइट. स्प्राइट):
डीईएफ़__इस में__(स्वयं, एक्स, वाई, वेग_एक्स, वेग_वाई):
बहुत अच्छा()।__इस में__()
खुदस्थिति = (एक्स, वाई)
खुद.वेग = (वेग_x, वेग_y)

डीईएफ़अद्यतन(खुद):
खुदस्थिति = (खुद।पद[0] + खुद।वेग[0], खुद।पद[1] + खुद।वेग[1])

डीईएफ़खींचना(स्वयं, सतह):
pygame।खींचना।घेरा(सतह, (255, 0, 0), खुद।पद, 10)

डीईएफ़बाएं खिसको(खुद):
खुदवेग = (-1, खुद।वेग[1])

डीईएफ़सही कदम(खुद):
खुदवेग = (1, खुद।वेग[1])

अपने Pygame गेम में प्लेयर क्लास का उपयोग करने के लिए, आपको क्लास का एक उदाहरण बनाना होगा और इसके तरीकों को आवश्यकतानुसार कॉल करना होगा।

एक विंडो और प्लेयर स्प्राइट का एक उदाहरण बनाकर प्रारंभ करें:

# Pygame को इनिशियलाइज़ करें
pygame.init ()

# विंडो का आकार सेट करें
विंडो_साइज = (640, 480)

# एक विंडो बनाएं
विंडो = pygame.display.set_mode (window_size)

# एक खिलाड़ी स्प्राइट बनाएं
खिलाड़ी = खिलाड़ी (320, 240, 0, 0)

फिर एक मुख्य गेम लूप को परिभाषित करें जो कीबोर्ड इवेंट्स और अपडेट्स को हैंडल करता है और स्प्राइट को ड्रॉ करता है। जब आप बाएँ या दाएँ तीर कुंजी दबाते हैं, तो स्प्राइट इसी दिशा में गति करेगा।

# मुख्य गेम लूप
जबकिसत्य:
# घटनाओं को संभालें
के लिए आयोजन में pygame.event.get ():
अगर event.type == pygame. छोड़ना:
pygame.quit ()
sys.exit ()

अगर event.type == pygame. चाबी नीचे:
अगर event.key == pygame. K_LEFT:
खिलाड़ी.चाल_बाएं ()
elif event.key == pygame. के_दाएं:
प्लेयर.मूव_राइट ()

# प्लेयर स्प्राइट को अपडेट करें
खिलाड़ी अद्यतन ()

# विंडो साफ़ करें
विंडो.फिल ((255, 255, 255))

# प्लेयर स्प्राइट ड्रा करें
खिलाड़ी.ड्रा (खिड़की)

# डिस्प्ले अपडेट करें
pygame.display.update ()

परिणामी प्रोग्राम के साथ, आप प्लेयर स्प्राइट को नियंत्रित करने में सक्षम होंगे और इसे विभिन्न स्थितियों में स्क्रीन पर आरेखित करते हुए देख सकेंगे:

छवि मॉड्यूल का उपयोग करके स्प्राइट ग्राफ़िक्स लोड करना और प्रदर्शित करना

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

किसी छवि को लोड करने के लिए, आपको pygame.image.load() फ़ंक्शन का उपयोग करने की आवश्यकता होगी, जो तर्क के रूप में फ़ाइल पथ लेता है और सरफेस ऑब्जेक्ट देता है। फिर आप इस सरफेस ऑब्जेक्ट को स्प्राइट एट्रिब्यूट, जैसे कि सेल्फ इमेज, को असाइन कर सकते हैं, जिसका उपयोग आप स्क्रीन पर स्प्राइट को आकर्षित करने के लिए कर सकते हैं।

उदाहरण के लिए, यहां बताया गया है कि आप किसी इमेज को कैसे लोड कर सकते हैं और इसे स्प्राइट को असाइन कर सकते हैं:

आयात pygame

कक्षाखिलाड़ी(पायगैम.स्प्राइट. स्प्राइट):
डीईएफ़__इस में__(सेल्फ, एक्स, वाई, वेलोसिटी_एक्स, वेलोसिटी_य, इमेज_पथ):
बहुत अच्छा()।__इस में__()
खुदस्थिति = (एक्स, वाई)
खुद.वेग = (वेग_x, वेग_y)
खुद.image = pygame.image.load (image_path)

डीईएफ़अद्यतन(खुद):
खुदस्थिति = (खुद।पद[0] + खुद।वेग[0], खुद।पद[1] + खुद।वेग[1])

डीईएफ़खींचना(स्वयं, सतह):
सतहब्लिट(खुद।छवि, खुद।पद)

डीईएफ़बाएं खिसको(खुद):
खुदवेग = (-1, खुद।वेग[1])

डीईएफ़सही कदम(खुद):
खुदवेग = (1, खुद।वेग[1])

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

आप इसे देख सकते हैं पूरे कोड के लिए गिटहब रेपो!

स्प्राइट क्लास के साथ स्प्राइट प्रबंधन में सुधार करें

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

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