आप एनिमेटेड कणों के साथ सबसे सरल गेम को जीवंत बना सकते हैं। इन तकनीकों का उपयोग करके गति, विस्फोट और बहुत कुछ का अनुकरण करें।
Pygame, Python का उपयोग करके गेम विकसित करने के लिए एक लोकप्रिय लाइब्रेरी है। गेम बनाते समय, विशेष प्रभाव जोड़ने से खिलाड़ियों के लिए दृश्य अपील और समग्र अनुभव में काफी वृद्धि हो सकती है।
धूल के बादल, विस्फोट, कोहरा और बहुत कुछ जैसे गतिशील और दृश्यमान दिलचस्प प्रभाव पैदा करने के लिए कण प्रणाली एक शक्तिशाली तकनीक है।
एक सरल गेम बनाएं
कण प्रणालियों और दृश्य संवर्द्धन में गोता लगाने से पहले, Pygame का उपयोग करके एक सरल गेम बनाकर शुरुआत करें। नामक एक नई फ़ाइल बनाएँ Simple-game.py और आवश्यक पुस्तकालयों को आयात करके और Pygame को आरंभ करके प्रारंभ करें। गेम विंडो को एक निर्दिष्ट चौड़ाई और ऊंचाई के साथ सेट करें।
इस आलेख में प्रयुक्त कोड इसमें उपलब्ध है गिटहब रिपॉजिटरी और यह आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए निःशुल्क है।
मुख्य गेम लूप के अंदर, उपयोगकर्ता घटनाओं को संभालें और कुंजी प्रेस के आधार पर खिलाड़ी की स्थिति को अपडेट करें। एक आयत बनाएं प्लेयर ऑब्जेक्ट का उपयोग करने के लिए pygame.draw.rect().
अंत में, गेम विंडो का उपयोग करके अपडेट करें pygame.display.flip() और जब खिलाड़ी लूप से बाहर निकल जाए तो खेल छोड़ दें। यह सरल खेल कण प्रणालियों का उपयोग करके विशेष प्रभाव जोड़ने के लिए आधार के रूप में काम करेगा।
आपको खिलाड़ी का प्रतिनिधित्व करने वाला एक सफेद वर्ग दिखना चाहिए जिसे आप बाएँ और दाएँ घुमा सकते हैं:
विभिन्न प्रकार के कण बनाना
अब जब आपके पास अपना सरल गेम सेट अप हो गया है, तो आप विभिन्न कण सिस्टम जोड़ सकते हैं। प्रत्येक प्रभाव के लिए कण वर्ग बनाएं और कणों को प्रबंधित और अद्यतन करने के लिए एक कण प्रणाली वर्ग बनाएं।
जब खिलाड़ी चल रहा हो तो कण प्रभाव
पहला कण प्रभाव खिलाड़ी के शुरू होने पर उसकी पीठ से उत्सर्जित धूल के कणों का निशान होगा माउस या कीबोर्ड इनपुट का उपयोग करके आगे बढ़ें. इसके अतिरिक्त, जब खिलाड़ी दिशा बदलेगा तो धूल के कणों की दिशा भी बदल जायेगी।
ए को परिभाषित करें कण वह वर्ग जो एक व्यक्तिगत कण का प्रतिनिधित्व करता है। प्रत्येक कण की एक प्रारंभिक स्थिति होती है (एक्स और य), एक यादृच्छिक वेग (डीएक्स और डीवाई), और एक जीवनकाल जो यह निर्धारित करता है कि कण कितने समय तक अस्तित्व में रहेगा।
साथ ही, एक को परिभाषित करें अणु प्रणाली वह वर्ग जो कणों के संग्रह का प्रबंधन करता है। आप इसका उपयोग करके सिस्टम में एक नया कण जोड़ सकते हैं add_particle() तरीका। अद्यतन() विधि सिस्टम में सभी कणों को अद्यतन करती है और उन कणों को हटा देती है जो अपने जीवनकाल के अंत तक पहुँच चुके हैं।
# कण वर्ग
कक्षाकण:
डीईएफ़__इस में__(स्वयं, एक्स, वाई):
स्वयं.एक्स = एक्स
स्व.य = य
self.dx = यादृच्छिक.वर्दी(-1, 1)
self.dy = यादृच्छिक.वर्दी(-1, 1)
स्वयं.जीवनकाल= 60डीईएफ़अद्यतन(खुद):
self.x += self.dx
self.y += self.dy
स्वयं.जीवनकाल -= 1डीईएफ़खींचना(स्वयं, खिड़की):
रंग = (200, 200, 200)
स्थिति = (int (self.x), int (self.y))
pygame.draw.circle (विंडो, रंग, स्थिति, 2)# कण प्रणाली वर्ग
कक्षाअणु प्रणाली:
डीईएफ़__इस में__(खुद):
स्व.कण = []डीईएफ़add_particle(स्वयं, एक्स, वाई):
self.particles.append (कण (x, y))डीईएफ़अद्यतन(खुद):
के लिए कण में स्व.कण:
कण.अद्यतन()अगर कण.जीवनकाल <= 0:
स्व.कण.निकालें (कण)
डीईएफ़खींचना(स्वयं, खिड़की):
के लिए कण में स्व.कण:
पार्टिकल.ड्रा (विंडो)
अपने गेम में कण प्रणाली को एकीकृत करने के लिए, आपको मुख्य गेम लूप में कुछ संशोधन करने होंगे। नामक एक नई फ़ाइल बनाएँ आंदोलन-कण.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:
# कण प्रणाली बनाएं
कण_प्रणाली = कणप्रणाली()# मुख्य गेम लूप
दौड़ना= सत्य
घड़ी = pygame.time. घड़ी()जबकि दौड़ना:
डीटी = घड़ी.टिक(60) / 1000.0के लिए आयोजन में pygame.event.get():
अगर इवेंट.प्रकार == pygame. छोड़ना:
दौड़ना= असत्यपार्टिकल_वाई = प्लेयर_वाई + प्लेयर_हाइट // 2
पार्टिकल_एक्स = प्लेयर_एक्स + प्लेयर_विड्थकुंजी = pygame.key.get_pressed()
सीमा = प्लेयर_एक्सअगर चाबियाँ[pygame. K_LEFT] और प्लेयर_एक्स > 0:
प्लेयर_एक्स -= 5
कण_प्रणाली.जोड़ें_कण (कण_x, कण_y)अगर चाबियाँ[pygame. K_RIGHT] और सीमा:
प्लेयर_x += 5
पार्टिकल_सिस्टम.ऐड_पार्टिकल (प्लेयर_एक्स, पार्टिकल_वाई)कण_प्रणाली.अद्यतन()
विंडो.फिल (काला)
प्लेयर_पॉस = (प्लेयर_एक्स, प्लेयर_वाई, प्लेयर_विड्थ, प्लेयर_हाइट)
pygame.draw.rect (विंडो, सफेद, प्लेयर_पॉस)
पार्टिकल_सिस्टम.ड्रॉ (विंडो)pygame.display.flip()
# खेल छोड़ें
pygame.छोड़ें()
अब जब आप प्लेयर ऑब्जेक्ट को हिलाते हैं, तो आपको गति पर जोर देने वाले कण दिखाई देने चाहिए:
विस्फोट प्रभाव
अगला कण प्रभाव एक विस्फोट प्रभाव होगा जो तब होता है जब खिलाड़ी गोली चलाता है। विस्फोट प्रभाव में गोली की स्थिति से निकलने वाले लाल रंग के कण शामिल होंगे।
ए को परिभाषित करें कण कक्षा पिछली कक्षा के समान है, लेकिन इस बार इसमें a शामिल है रंग कण के रंग का प्रतिनिधित्व करने के लिए पैरामीटर.
इसके अलावा, अद्यतन करें अणु प्रणाली नए कण प्रकार को संभालने के लिए क्लास। add_particle() विधि अब एक अतिरिक्त लेती है रंग पैरामीटर और निर्दिष्ट रंग के साथ कण बनाता है।
# कण वर्ग
कक्षाकण:
डीईएफ़__इस में__(स्वयं, एक्स, वाई, रंग):
स्वयं.एक्स = एक्स
स्व.य = य
self.dx = यादृच्छिक.वर्दी(-2, 2)
self.dy = यादृच्छिक.वर्दी(-2, 2)
स्वयं.जीवनकाल= 30
स्व.रंग = रंगडीईएफ़अद्यतन(खुद):
self.x += self.dx
self.y += self.dy
स्वयं.जीवनकाल -= 1डीईएफ़खींचना(स्वयं, खिड़की):
स्थिति = (int (self.x), int (self.y))
pygame.draw.circle (विंडो, स्व.रंग, स्थिति, 3)# कण प्रणाली वर्ग
कक्षाअणु प्रणाली:
डीईएफ़__इस में__(खुद):
स्व.कण = []डीईएफ़add_particle(स्वयं, एक्स, वाई, रंग):
self.particles.append (कण (x, y, रंग)डीईएफ़अद्यतन(खुद):
के लिए कण में स्व.कण:
कण.अद्यतन()अगर कण.जीवनकाल <= 0:
स्व.कण.निकालें (कण)
डीईएफ़खींचना(स्वयं, खिड़की):
के लिए कण में स्व.कण:
पार्टिकल.ड्रा (विंडो)
अपने गेम में ब्लास्ट इफ़ेक्ट को एकीकृत करने के लिए, आपको मुख्य गेम लूप में कुछ संशोधन करने होंगे। एक नया फ़ाइल नाम बनाएँ शूट-कण.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:
# कण प्रणाली बनाएं
कण_प्रणाली = कणप्रणाली()# मुख्य गेम लूप
दौड़ना= सत्य
घड़ी = pygame.time. घड़ी()जबकि दौड़ना:
डीटी = घड़ी.टिक(60) / 1000.0के लिए आयोजन में pygame.event.get():
अगर इवेंट.प्रकार == pygame. छोड़ना:
दौड़ना= असत्यकुंजी = pygame.key.get_pressed()
सीमा = प्लेयर_एक्सअगर चाबियाँ[pygame. K_LEFT] और प्लेयर_एक्स > 0:
प्लेयर_एक्स -= 5अगर चाबियाँ[pygame. K_RIGHT] और सीमा:
प्लेयर_x += 5अगर चाबियाँ[pygame. K_SPACE]:
बुलेट_एक्स = प्लेयर_एक्स + प्लेयर_विड्थ // 2
बुलेट_वाई = प्लेयर_वाई
पार्टिकल_सिस्टम.एड_पार्टिकल (बुलेट_एक्स, बुलेट_वाई, रेड)कण_प्रणाली.अद्यतन()
विंडो.फिल (काला)
प्लेयर_पॉस = (प्लेयर_एक्स, प्लेयर_वाई, प्लेयर_विड्थ, प्लेयर_हाइट)
pygame.draw.rect (विंडो, सफेद, प्लेयर_पॉस)
पार्टिकल_सिस्टम.ड्रॉ (विंडो)pygame.display.flip()
# खेल छोड़ें
pygame.छोड़ें()
यहाँ आउटपुट है:
जब स्पेसबार ( pygame. के_स्पेस) दबाया जाता है, गोली की स्थिति में कण प्रणाली में एक कण जोड़ें। यह लाल कणों के साथ विस्फोट प्रभाव पैदा करता है।
धूल का प्रभाव
अंतिम दृश्य वृद्धि जिसे आप लागू कर सकते हैं वह धूल भरी पृष्ठभूमि प्रभाव है। धूल के प्रभाव में गोलाकार पैटर्न में घूमने वाले छोटे भूरे कण शामिल होंगे, जो एक गतिशील और धूल भरी पृष्ठभूमि बनाएंगे।
अद्यतन करें कण एक को शामिल करने के लिए कक्षा कोण और रफ़्तार प्रत्येक कण के लिए. कोण गति की दिशा निर्धारित करता है, और गति नियंत्रित करती है कि कण अपने गोलाकार पैटर्न में कितनी तेजी से चलते हैं। संशोधित करें अद्यतन() प्रत्येक कण की स्थिति को उसके कोण और गति के आधार पर अद्यतन करने की विधि।
इसके अलावा, अद्यतन करें अणु प्रणाली नए कण व्यवहार को संभालने के लिए कक्षा। कण अब गेम विंडो के भीतर एक गोलाकार पैटर्न में चलते हैं।
# कण वर्ग
कक्षाकण:
डीईएफ़__इस में__(स्वयं, एक्स, वाई, त्रिज्या):
स्वयं.एक्स = एक्स
स्व.य = य
स्व.त्रिज्या = त्रिज्या
स्व.कोण = यादृच्छिक.वर्दी(0, 2 *गणित.pi)
स्व.गति = यादृच्छिक.वर्दी(0.5, 1.5)डीईएफ़अद्यतन(खुद):
स्व.कोण += 0.02
self.x += गणित.cos (स्वयं.कोण) * स्व.गति
स्व.य +=गणित.पाप (स्व.कोण) * स्व.गतिअगर self.x < 0:
self.x = window_width
एलिफ़ self.x > window_width:
self.x = 0अगर self.y < 0:
self.y = window_height
एलिफ़ self.y > window_height:
स्वयं.य = 0डीईएफ़खींचना(स्वयं, खिड़की):
रंग = (128, 128, 128)
पॉज़ = (int (self.x), int (self.y))
त्रिज्या = पूर्णांक (स्वयं.त्रिज्या)
pygame.draw.circle (विंडो, रंग, स्थिति, त्रिज्या)# कण प्रणाली वर्ग
कक्षाअणु प्रणाली:
डीईएफ़__इस में__(खुद):
स्व.कण = []डीईएफ़add_particle(स्वयं, एक्स, वाई, त्रिज्या):
self.particles.append (कण (x, y, त्रिज्या))डीईएफ़अद्यतन(खुद):
के लिए कण में स्व.कण:
कण.अद्यतन()
डीईएफ़खींचना(स्वयं, खिड़की):
के लिए कण में स्व.कण:
पार्टिकल.ड्रा (विंडो)
अपने गेम में धूल प्रभाव को एकीकृत करने के लिए, आपको मुख्य गेम लूप में कुछ संशोधन करने होंगे। नामक एक नई फ़ाइल बनाएँ धूल-कण.py और नीचे दिए गए अपडेट के साथ कोड जोड़ें:
# धूल प्रभाव के लिए कण प्रणाली बनाएं
कण_प्रणाली = कणप्रणाली()# मुख्य गेम लूप
दौड़ना= सत्य
घड़ी = pygame.time. घड़ी()जबकि दौड़ना:
डीटी = घड़ी.टिक(60) / 1000.0के लिए आयोजन में pygame.event.get():
अगर इवेंट.प्रकार == pygame. छोड़ना:
दौड़ना= असत्यकण_x = यादृच्छिक.randint(0, विंडो_विड्थ)
पार्टिकल_वाई = रैंडम.रैंडिंट(0, विंडो_हाइट)कण_प्रणाली.जोड़ें_कण (कण_x, कण_y, 1)
कण_प्रणाली.अद्यतन()
विंडो.फिल((0, 0, 0))
पार्टिकल_सिस्टम.ड्रॉ (विंडो)pygame.display.flip()
# खेल छोड़ें
pygame.छोड़ें()
का उपयोग करके गेम विंडो में यादृच्छिक रूप से कण जोड़ें रैंडम.रैंडिंट() समारोह। प्रत्येक कण की प्रारंभिक त्रिज्या होती है 1. एक गतिशील और धूल भरी पृष्ठभूमि प्रभाव बनाते हुए, गेम विंडो पर कण प्रणाली को अपडेट करें और बनाएं।
आपको स्क्रीन पर कई कण बेतरतीब लेकिन सुचारू रूप से चलते हुए दिखाई देने चाहिए:
विशेष प्रभावों के लिए सर्वोत्तम अभ्यास
अपने Pygame गेम में विशेष प्रभाव जोड़ते समय, निम्नलिखित सर्वोत्तम प्रथाओं पर विचार करें:
प्रदर्शन अनुकूलन
कण प्रणालियों में बड़ी संख्या में कण शामिल हो सकते हैं, जो खेल के प्रदर्शन को प्रभावित कर सकते हैं। कण अद्यतन और ड्राइंग को अनुकूलित करने के लिए स्थानिक विभाजन (उदाहरण के लिए, क्वाडट्री) जैसी तकनीकों को लागू करें।
कण पुनर्चक्रण
प्रत्येक फ्रेम में कणों को बनाने और नष्ट करने के बजाय, जब कण अपने जीवनकाल के अंत तक पहुंच जाएं तो उनके गुणों को रीसेट करके उनका पुन: उपयोग करने पर विचार करें। यह मेमोरी आवंटन और डीलोकेशन को कम करने में मदद करता है।
कण पूलिंग
रनटाइम के दौरान नए उदाहरण बनाने के ओवरहेड से बचने के लिए पूर्व-आवंटित कणों का एक पूल बनाए रखें। इससे प्रदर्शन में सुधार हो सकता है और स्मृति विखंडन कम हो सकता है।
कण संख्या सीमित करें
कण प्रणालियों को गेम स्क्रीन पर हावी होने से रोकने के लिए, कणों की अधिकतम संख्या पर सीमा निर्धारित करें और जब कण इस सीमा तक पहुंच जाएं तो उन्हें हटा दें। यह सुनिश्चित करता है कि गेमप्ले में बाधा डाले बिना प्रभाव देखने में आकर्षक बने रहें।
दृश्य संगति
कण प्रभावों सहित, अपने पूरे गेम में एक सुसंगत दृश्य शैली बनाए रखें। सुनिश्चित करें कि कणों के रंग, आकार और गति पैटर्न समग्र विषय और कला शैली के साथ सुसंगत हैं।
ध्वनि प्रभाव
ध्वनि प्रभाव जोड़ें आपके कण प्रभावों को पूरक करने के लिए। उदाहरण के लिए, विस्फोट प्रभाव होने पर विस्फोट ध्वनियाँ बजाएं या कोहरे या धूल प्रभाव सक्रिय होने पर परिवेशी ध्वनियाँ बजाएं।
विशेष प्रभावों के साथ खेलों को और अधिक मनोरंजक बनाएं
अपने Pygame गेम्स में पार्टिकल सिस्टम जैसे विशेष प्रभाव जोड़ने से खिलाड़ी के अनुभव में काफी वृद्धि हो सकती है और आपके गेम खिलाड़ियों के लिए अधिक आकर्षक और मजेदार बन सकते हैं। पथ, विस्फोट, कोहरे और धूल जैसे कण प्रभावों को लागू करके, आप दृश्यमान आश्चर्यजनक और गतिशील वातावरण बना सकते हैं।
अपने गेम में विशेष प्रभावों को शामिल करते समय प्रदर्शन अनुकूलन, कण पुनर्चक्रण और दृश्य स्थिरता पर विचार करना याद रखें। रचनात्मकता और प्रयोग के साथ, आप अपने पायगेम गेम्स को अगले स्तर पर ले जा सकते हैं और खिलाड़ियों को गहन और रोमांचक अनुभवों से मंत्रमुग्ध कर सकते हैं।