विषयसूची:

मेककोड आर्केड के साथ GameGo पर अनंत स्तरों वाला प्लेटफ़ॉर्मर: 5 कदम (चित्रों के साथ)
मेककोड आर्केड के साथ GameGo पर अनंत स्तरों वाला प्लेटफ़ॉर्मर: 5 कदम (चित्रों के साथ)

वीडियो: मेककोड आर्केड के साथ GameGo पर अनंत स्तरों वाला प्लेटफ़ॉर्मर: 5 कदम (चित्रों के साथ)

वीडियो: मेककोड आर्केड के साथ GameGo पर अनंत स्तरों वाला प्लेटफ़ॉर्मर: 5 कदम (चित्रों के साथ)
वीडियो: How to Make a Platformer Game [Part 1: Intro, sprites, movement & tile map] 2024, जुलाई
Anonim
Image
Image

GameGo एक Microsoft Makecode संगत रेट्रो गेमिंग पोर्टेबल कंसोल है जिसे TinkerGen STEM शिक्षा द्वारा विकसित किया गया है। यह STM32F401RET6 ARM Cortex M4 चिप पर आधारित है और STEM शिक्षकों या सिर्फ उन लोगों के लिए बनाया गया है जो रेट्रो वीडियो गेम बनाना पसंद करते हैं। आप इस ट्यूटोरियल का अनुसरण कर सकते हैं और Makecode आर्केड सिम्युलेटर में गेम को आज़मा सकते हैं और फिर इसे GameGo पर चला सकते हैं।

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

आपूर्ति

गेमगो

चरण 1: नायक

नायक
नायक

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

करने के लिए पहली बात पृष्ठभूमि और टाइल नक्शा जोड़ना है। मैंने 32x8 लंबे टाइल मैप को चुना है - पहले स्तर के लिए हम इसे मैन्युअल रूप से ड्रा करेंगे, जैसे कि स्क्रीनशॉट 2 में।. हम कैमरे को प्लेएबल कैरेक्टर के साथ चलने के लिए सेट करते हैं और इसके बाएं और दाएं मूवमेंट को नियंत्रित करते हैं - हम गति के वेग को 0 पर सेट करेंगे, क्योंकि हमारा कैरेक्टर y-दिशा के साथ मैप पर स्वतंत्र रूप से तैरने में सक्षम नहीं होना चाहिए। दो ऑन … बटन दबाए गए ब्लॉक जोड़ें, एक बाएं बटन के लिए, एक दाएं के लिए। जब बायां बटन दबाया जाता है, तो बटन दबाने से पहले हम जांचते हैं कि हमारी दिशा "बाएं" थी या नहीं। अगर ऐसा होता, तो हम बस बाईं ओर चलते रहते हैं। अगर ऐसा नहीं होता तो हमें अपने चरित्र की प्रेत छवि को पलटने की जरूरत होती। सही आंदोलन के लिए समान तर्क।

अभी के लिए सब ठीक है, एकमात्र समस्या यह लगती है कि हमारा नायक किसी भी बाधा को दूर नहीं कर सकता। इसलिए हमें जंपिंग जोड़ने की जरूरत है। हम अप बटन प्रेस के लिए नियंत्रणों की निगरानी करेंगे और जब इसका पता चलेगा, तो हम वेरिएबल जंपिंग को 1 पर सेट करेंगे, जंपिंग मूवमेंट शुरू होने के समय पर ध्यान दें और कैरेक्टर के स्प्राइट वेलोसिटी को -200 (ऊपर जा रहे) पर सेट करें। फिर निर्दिष्ट अवधि के बाद, हम वेग को 200 (नीचे जा रहे हैं) पर सेट करेंगे, ताकि हमारा हीरो रॉकेट के रूप में आकाश तक नहीं जा सके।

मुझे लगता है कि हमने अब चुनौती के योग्य नायक बनाया है! अच्छा, चुनौती कहाँ है?

चरण 2: दुश्मन

दुश्मन
दुश्मन

हम दुश्मनों के स्प्राइट्स को स्टोर करने के लिए एक सरणी संरचना का उपयोग करेंगे। दुश्मनों के प्रकार के लिए हम थोड़ा शॉर्टकट लेंगे और चमगादड़ का उपयोग करेंगे:) कोरोनोवायरस संदर्भ नहीं, यह सिर्फ चमगादड़ उड़ सकता है, इसलिए हमें उनके लिए गुरुत्वाकर्षण का "अनुकरण" करने की आवश्यकता नहीं होगी, जैसा कि हम अपने खेलने योग्य चरित्र के साथ करते हैं। नए बनाए गए चमगादड़ों को यादृच्छिक स्पॉन टाइल (थोड़ा सफेद निशान के साथ चिह्नित) पर रखने के लिए बनाए गए दुश्मन ब्लॉक के स्प्राइट पर उपयोग करें और उनके vx वेग को -10 (धीरे-धीरे दाएं बहते हुए) पर सेट करें। फिर हर 2000 एमएस ब्लॉक में गेम अपडेट के भीतर हम दुश्मन_सूची के प्रत्येक आइटम के माध्यम से पुनरावृति करते हैं और बेतरतीब ढंग से उनकी दिशा बदलते हैं, जबकि यदि आवश्यक हो तो चमगादड़ के स्प्राइट्स को फ़्लिप करते हैं (आंदोलन की दिशा में परिवर्तन को प्रतिबिंबित करने के लिए)। अंत में, हम अन्य स्प्राइट प्रकार के दुश्मन ब्लॉक के साथ प्लेयर ओवरलैप्स के स्प्राइट पर जोड़ते हैं, जहां हम एक साधारण जांच करते हैं कि क्या खिलाड़ी पहले ही हिट हो चुका है। अगर ऐसा नहीं होता तो हम एक जीवन काटते हैं, हिट फ्लैग को 1 पर सेट करें (हिट हो गया है) और टाइमर शुरू करें। अंतिम हिट समय बीत जाने के बाद से 500 ms के बाद हम फ़्लैग हिट बैक को 0 में बदल देते हैं। हम ऐसा इसलिए करते हैं ताकि खिलाड़ी दुश्मन से टकराने के बाद अपने बहुत से कीमती जीवन को खोने से बचा सके।

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

चरण 3: हथियार

हथियार
हथियार

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

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

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

चरण 4: अनंत रोमांच

अनंत रोमांच
अनंत रोमांच
अनंत रोमांच
अनंत रोमांच
अनंत रोमांच
अनंत रोमांच

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

हम मैन्युअल रूप से पहली टाइल (0x6) और उसके ऊपर खिलाड़ी डालते हैं। फिर हम अगले चरण को ३० बार दोहराते हैं - अगला चरण ट्रू-फाल्स चेक की सरल श्रृंखला है, जो यह तय करती है कि अगला कॉलम हमें १) पिछले २ के समान स्तर पर ले जाएगा) एक ऊपर या ३) एक नीचे। इस बात की भी बहुत कम संभावना है कि अगली टाइल लावा टाइल बनने जा रही है - हम इनमें से बहुत अधिक नहीं चाहते हैं! प्रत्येक टाइल उत्पन्न होने के बाद हम उसके नीचे की जगह को लावा से भर देते हैं - केवल सुंदरता के लिए। अंतिम चरण के रूप में हम दुश्मनों और टोकरे को जोड़ते हैं और उन्हें यादृच्छिक स्पॉन टाइलों के ऊपर रखते हैं।

चरण 5: साहसिक कार्य शुरू होता है

साहसिक शुरू होता है
साहसिक शुरू होता है

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

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

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

सिफारिश की: