विषयसूची:

Micropython में अंतरिक्ष आक्रमणकारियों Micro:bit: 5 Steps
Micropython में अंतरिक्ष आक्रमणकारियों Micro:bit: 5 Steps

वीडियो: Micropython में अंतरिक्ष आक्रमणकारियों Micro:bit: 5 Steps

वीडियो: Micropython में अंतरिक्ष आक्रमणकारियों Micro:bit: 5 Steps
वीडियो: micro:bit LIVE 2020 virtual | Introduction to MicroPython, Sarah Townson 2024, जुलाई
Anonim
Image
Image

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

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

आपूर्ति

टिंकरजेन बिटप्लेयर

बीबीसी माइक्रो: बिट

चरण 1: मुख्य लूप

जोस्टिक
जोस्टिक

इस ट्यूटोरियल में मैं अक्सर "विधि" शब्द का प्रयोग करूँगा। पायथन में एक विधि कुछ हद तक फ़ंक्शन के समान होती है, सिवाय इसके कि यह ऑब्जेक्ट/कक्षाओं से जुड़ी होती है। तो, सरलीकरण के लिए, आप इसे "कक्षा के भीतर एक समारोह" के रूप में पढ़ सकते हैं। आप यहां विधियों के बारे में अधिक पढ़ सकते हैं।

हम मुख्य लूप में प्रवेश करते हैं

जबकि game_over नहीं:

शर्त। अंदर हम आक्रमणकारियों की संख्या, उनके प्रकट होने की संभावना और स्तरों के शब्दकोश से अगले स्तर तक पहुंचने के लिए आवश्यक संख्या प्राप्त करते हैं। इसके बाद हम क्लास इंस्टेंस जॉयस्टिक के लिसन_डिर इंस्टेंस विधियों के साथ बाएं-दाएं आंदोलन की जांच करते हैं। यदि शर्तों में से एक का मूल्यांकन ट्रू के रूप में किया जाता है, तो हम अपने प्लेएबल कैरेक्टर के एक्स-वैल्यू को बढ़ाते/घटते हैं। हम इसे [-2, 2] के लिए दो शर्तों के साथ विवश करते हैं। फिर हम डिस्प्लेबफर क्लास का एक उदाहरण शुरू करते हैं और "शील्ड" या "फायर बुलेट" बटन प्रेस की जांच करते हैं। हम बाद में रेंडरिंग के लिए ऑब्जेक्ट सेट करने के लिए डिस्प्लेबफ़र.सेट () विधि का उपयोग करते हैं। शील्ड को रेंडर करने के लिए हम सीधे DisplayBuffer.set () का उपयोग करते हैं, लेकिन गोलियों और आक्रमणकारियों के लिए हम उन्हें उनकी संबंधित सूची में जोड़ते हैं और उन्हें एक-एक करके लूप के लिए निम्नलिखित कोड के साथ बाद में DispBuffer.render() के साथ रेंडर करने के लिए सेट करते हैं:

b के लिए बुलेट में: b.render(dispBuf) v for v in vaders: v.render(dispBuf)

एक बार प्रत्येक मुख्य लूप पुनरावृत्ति के साथ सभी आक्रमणकारियों, गोलियों और ढाल को प्रदर्शित किया जाता है

डिस्पबफ.रेंडर ()

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

चरण 2: जॉयस्टिक

जोस्टिक
जोस्टिक

गेमबॉय या पीएसपी नियंत्रकों जैसे 2-अक्ष जॉयस्टिक के साथ बिटप्लेयर को पकड़ना और उपयोग करना आसान है, इसमें एल, आर, ए, बी, सी और डी के रूप में लेबल किए गए अन्य 6 प्रोग्राम योग्य बटन भी शामिल हैं। एक इमर्सिव और इंटरैक्टिव अनुभव के लिए, बिटप्लेयर OLED डिस्प्ले जैसे अतिरिक्त बाह्य उपकरणों को जोड़ने के लिए स्वयं में एक बजर, एक कंपन मोटर और एक Grove I2C पोर्ट है।

हम इस गेम के लिए केवल जॉयस्टिक के बाएं-दाएं घुमाव का उपयोग करते हैं, सभी बिटप्लेयर बटनों के उपयोग पर पूर्ण उदाहरण के लिए आप इस प्रोजेक्ट के गिटहब रिपॉजिटरी में जॉयस्टिक_example.py पर एक नज़र डाल सकते हैं। जॉयस्टिक क्लास का इंस्टेंस बनाने पर हम एक्स-एक्सिस डिफॉल्ट रीडिंग की जांच करते हैं और उस वैल्यू को सेल्फ में स्टोर करते हैं। रीड_एक्स। फिर फ़ंक्शन लिसन_डिर में, हम जांचते हैं कि क्या उस डिफ़ॉल्ट मान से विचलन संवेदनशीलता चर से अधिक है (यदि आपको लगता है कि जॉयस्टिक बहुत संवेदनशील है, तो इसे स्वयं ट्विक करने का प्रयास करें) और पता की गई दिशा के अनुसार ट्रू ऑफ फाल्स को वापस करें।

आइए एक ठोस उदाहरण देखें कि यह कैसे काम करता है:

मान लें कि हमारा डिफ़ॉल्ट एक्स-अक्ष रीडिंग 0 है। फिर, अगर हम जॉयस्टिक को दाएं ले जाते हैं:

New_X = JoyStick_X.read_analog() #New_X=200

राइट = न्यू_एक्स - सेल्फ। रीड_एक्स # राइट = 200 लेफ्ट = सेल्फ। रीड_एक्स - न्यू_एक्स # लेफ्ट = -200

फिर जब हम दिशा की जांच करते हैं:

प्रेसिजन = 150if राइट> प्रेसिजन: #200> 150 ट्रू गेट_रॉकर = डीआईआर ['आर'] एलिफ लेफ्ट> प्रेसिजन: #-200> 150 फाल्स गेट_रॉकर = डीआईआर ['एल'] और: गेट_रॉकर = डीआईआर ['कोई नहीं'] अगर डिर == गेट_रॉकर: रिटर्न ट्रू इयर: रिटर्न फाल्स

चरण 3: बफ़र प्रदर्शित करें

प्रदर्शन बफर
प्रदर्शन बफर

डिस्प्लेबफ क्लास एलईडी स्क्रीन को नियंत्रित करने के लिए जिम्मेदार है। यह दो विधियों, सेट () और रेंडर () का उपयोग करके किया जाता है। सेट () विधि एलईडी स्क्रीन पिक्सल के अनुरूप मूल्यों को बदल देती है। आपको याद होगा कि माइक्रो: बिट एलईडी स्क्रीन पर पिक्सल को स्ट्रिंग या सूची के रूप में व्यक्त किया जा सकता है - "00000: 00: 00: 00: 00: 00: 00000" एक खाली स्क्रीन है। "000000:00:000:00000:00100" नीचे की पंक्ति के केंद्र में मंद रोशनी वाले पिक्सेल के साथ एक स्क्रीन है।

00000:

00000

:00000

:00000:

00100"

यह नोटेशन संसाधित करना आसान हो सकता है:)

तो, मुख्य लूप के दौरान हम जो करते हैं वह डिस्प्लेबफ की कॉल सेट() विधि है जो हमारे सभी ऑब्जेक्ट्स को स्क्रीन पर प्रदर्शित करने की आवश्यकता होती है। फिर हम उन सभी को एक साथ स्क्रीन पर वास्तव में दिखाने के लिए रेंडर () विधि का उपयोग करते हैं।

चरण 4: आक्रमणकारियों, गोलियों और खिलाड़ी

आक्रमणकारियों, गोलियों और खिलाड़ी
आक्रमणकारियों, गोलियों और खिलाड़ी

गोलियां और आक्रमणकारी प्रस्तावक वर्ग के हैं। प्रस्तावक वर्ग के उदाहरणों में उनके x, y स्थान और गति, साथ ही चमक भी होती है। मूवर क्लास में दो इंस्टेंस मेथड हैं, सेट () और मूव ()। सेट () विधि एलईडी मैट्रिक्स पर बाद में प्रतिपादन के लिए सहेजने के लिए अद्यतन निर्देशांक के साथ डिस्प्लेबफ सेट() विधि को बस कॉल करती है। चाल () विधि अद्यतन आवृत्ति उदाहरण की गति के अनुसार समन्वयित करती है - जो बाद में उपयोगी होती है, जब हमें स्तर की प्रगति के रूप में आक्रमणकारियों की गति को बदलने की आवश्यकता होती है।

क्लास बुलेट और क्लास इनवेडर मूवर क्लास के उपवर्ग हैं। यहाँ हम वंशानुक्रम नामक किसी चीज़ का उपयोग करते हैं। सुपर () की कार्यक्षमता हमें कोड को दोहराने की आवश्यकता के बिना, उपवर्ग में सुपरक्लास के तरीकों को कॉल करने की अनुमति देती है।

चरण 5: इसे अपना बनाएं

इसे स्वयं अपना बनाएं
इसे स्वयं अपना बनाएं

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

यदि आप खेल का एक बेहतर संस्करण बनाते हैं, तो इसे नीचे टिप्पणी में साझा करें! निर्माताओं और एसटीईएम शिक्षकों के लिए बिटप्लेयर और अन्य हार्डवेयर के बारे में अधिक जानकारी के लिए, हमारी वेबसाइट https://tinkergen.com/ पर जाएं और हमारे न्यूजलेटर की सदस्यता लें।

टिंकरजेन ने हाल ही में मार्क (मेक ए रोबोट किट) के लिए एक किकस्टार्टर अभियान बनाया है, जो कोडिंग, रोबोटिक्स, एआई सिखाने के लिए एक रोबोट किट है!

hexkcd/micro-vaders से मूल माइक्रोपायथन कोड को TinkerGen BitPlayer के साथ काम करने के लिए बदल दिया गया था।

सिफारिश की: