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

वीडियो गेम कुछ ऐसा प्रोग्राम करने का एक शानदार अवसर प्रदान करते हैं जिसका आप आनंद ले सकते हैं। और वे आपको एक अच्छा प्रोग्रामर बनने के लिए आवश्यक बुनियादी बातें भी सिखा सकते हैं। यह आलेख आपको आरंभ करने के लिए एक DIY हैंडहेल्ड Arduino वीडियो गेम प्रोजेक्ट की खोज करता है।

हम क्या बना रहे हैं और क्यों?

इस लेख के गाइड भाग में गोता लगाने से पहले, यह पता लगाना समझ में आता है कि हम क्या बना रहे हैं और हमने इसे इस परियोजना के लिए क्यों चुना है। Arduinos जैसे उपकरणों के लिए गेम बनाने में कई चुनौतियाँ आती हैं।

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

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

खेल ही बहुत सरल है। स्क्रीन पर तीन ब्लॉक दिखाई देते हैं, दो उल्लिखित और एक भरा हुआ, प्रत्येक नीचे एक संबंधित भौतिक बटन के साथ। खिलाड़ी को खेलना जारी रखने के लिए प्रत्येक राउंड में दायां बटन दबाना होता है, और यदि वे गलत बटन दबाते हैं या समय समाप्त हो जाता है तो खेल समाप्त हो जाता है। प्रत्येक सफल बटन प्रेस पुरस्कार अंक। खेल उपलब्ध प्रतिक्रिया समय को कम करके धीरे-धीरे अपनी कठिनाई को बढ़ाता है।

OLED डिस्प्ले, Arduino और बटन्स को वायर करना

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

हम आपकी मदद करने के लिए पहले ही एक गाइड प्रकाशित कर चुके हैं एक Arduino के लिए वायर पुश बटन. हमारी Arduino एक्वेरियम मॉनिटर प्रोजेक्ट आपको दिखाता है कि इस तरह के माइक्रोकंट्रोलर के साथ OLED डिस्प्ले का उपयोग कैसे करें। इसलिए, हम इस लेख के बाकी हिस्सों के लिए इस परियोजना के कोड पर ध्यान केंद्रित करेंगे।

Arduino हैंडहेल्ड गेम कोड

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

कोड हमारी परियोजना की नींव बनाने के लिए एक मुख्य INO फ़ाइल का उपयोग करता है। हमारे प्रदर्शन को नियंत्रित करने के लिए एक C++ फ़ाइल भी है, मुख्य गेम कोड को चलाने के लिए एक C++ फ़ाइल, और सभी को एक साथ जोड़ने के लिए एक Arduino लाइब्रेरी फ़ाइल है।

हम नीचे इस कोड में गहराई से उतरेंगे, लेकिन हम आपको हमारे में टिप्पणी किए गए कोड को देखने के लिए प्रोत्साहित करते हैं GitHub पर Arduino हैंडहेल्ड गेम प्रोजेक्ट. यह आपको इस लेख के साथ इसका उल्लेख करने में मदद करेगा।

लाइब्रेरी फ़ाइल (लाइब्रेरी.एच)

हमारी लाइब्रेरी फाइल हमारी अन्य प्रोजेक्ट फाइलों को एक साथ जोड़ने में एक महत्वपूर्ण भूमिका निभाती है ताकि वे एक ही एप्लिकेशन के रूप में काम कर सकें। इस फ़ाइल में Arduino.h लाइब्रेरी और हमारे गेम कोड के भीतर सभी फ़ंक्शन शामिल करने के लिए घोषणाएँ हैं जिन्हें हमारी फ़ाइलों के बीच काम करने की आवश्यकता है। इसके बिना, हमारा कोड बस काम नहीं करेगा।

मुख्य INO फ़ाइल (main.ino)

कई Arduino प्रोजेक्ट्स की तरह, यह Arduino IDE द्वारा प्रदान किए गए डिफ़ॉल्ट टेम्प्लेट के साथ शुरू हुआ। वह टेम्पलेट इसे देता है स्थापित करना और कुंडली फ़ंक्शन जिनका उपयोग हम अपनी अन्य फ़ाइलों में फ़ंक्शन को कॉल करने के लिए करते हैं। इस फ़ाइल में library.h फ़ाइल को शामिल करने की घोषणा भी है।

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

हमारा लूप () फ़ंक्शन हमारी गेम फ़ाइल में पाए जाने वाले गेमस्टेट () फ़ंक्शन के लिए केवल एक कॉल के साथ, सेटअप () फ़ंक्शन से भी सरल है। हम इस लेख में बाद में और अधिक विस्तार से इसका पता लगाएंगे।

प्रदर्शन कोड फ़ाइल (display.cpp)

हम इस प्रोजेक्ट के लिए SSD1306 OLED डिस्प्ले का उपयोग कर रहे हैं, हालांकि यदि आप कोड को तदनुसार संपादित करते हैं तो आप एक भिन्न प्रकार के डिस्प्ले का उपयोग कर सकते हैं। यह फ़ाइल लाइब्रेरी फ़ाइल को शामिल करने के साथ शुरू होती है, पुस्तकालय.एच. इसके बाद इसमें SPI, Wire, Adafruit_GX, और Adafruit_SSD1306 लाइब्रेरी के लिए डिक्लेरेशन शामिल हैं। उसके बाद, यह प्रदर्शन के लिए सेटिंग्स प्रदान करने के लिए कुछ स्थिरांक को परिभाषित करता है।

पहला समारोह, डिससेटअप, डिस्प्ले को इनिशियलाइज़ करता है और लोगो स्प्लैश स्क्रीन दिखाता है। यह लगभग 2 सेकंड प्रतीक्षा करने के बाद डिस्प्ले को साफ़ करता है। हमारी मुख्य फ़ाइल, main.ino, डिससेटअप को कॉल करती है स्थापित करना समारोह।

टाइमरबार () को छोड़कर इस फ़ाइल के बाकी कार्य, पूरे गेम में दिखाई देने वाली अलग-अलग स्क्रीन बनाते हैं। खेल फ़ाइल, खेल.सीपीपी, इनमें से प्रत्येक फ़ंक्शन को कॉल करता है।

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

गेम कोड फ़ाइल (game.cpp)

अंत में, अन्वेषण करने के लिए अंतिम फ़ाइल के रूप में, गेम कोड को देखने का समय आ गया है। यह फ़ाइल, अन्य लोगों की तरह, library.h फ़ाइल को शामिल करने से शुरू होती है। इसमें विभिन्न पूर्णांक चरों की एक लंबी सूची भी है जो हम खेल के दौरान उपयोग करते हैं।

आपको किसी और चीज़ से पहले butSetup() फ़ंक्शन मिलेगा। हमारी मुख्य फ़ाइल में सेटअप () फ़ंक्शन कॉल करता है butSetup. यह फ़ंक्शन हमारे बटनों को इनपुट के रूप में सेट करने के लिए चर का उपयोग करता है जिसे हम बाद में पढ़ सकते हैं।

  • स्विचइंस्टेंस (): यह फ़ंक्शन गेम के इंस्टेंस के बीच स्विच करता है, स्टार्ट स्क्रीन से गेम और गेम ओवर स्क्रीन पर। यह यह बताने के लिए एक चर प्राप्त करता है कि किस खेल की स्थिति में स्विच करना है। अगर एक स्टेटमेंट स्टार्टगेम () स्टेट से गेम शुरू करने के लिए एक बटन प्रेस की प्रतीक्षा करता है। एक और अगर स्टेटमेंट गेम को फिर से एंडगेम () स्टेट से शुरू करता है।
  • गेमस्टेट (): यह फ़ंक्शन खिलाड़ी के स्कोर के आधार पर गेम की कठिनाई को सेट करता है और गेम की स्थिति के आधार पर सही फ़ंक्शन को कॉल करता है। यह बयानों की एक श्रृंखला के साथ शुरू होता है जो खिलाड़ी के स्कोर के आधार पर चर सेट करता है, उसके बाद वर्तमान उदाहरण की जांच करने के लिए और अधिक बयान करता है।
  • टाइल चयनकर्ता (): यह फ़ंक्शन 0 और 2 के बीच एक यादृच्छिक संख्या उत्पन्न करता है जो खेल को बताता है कि किसी भी समय तीन टाइलों में से कौन सी भरना है।
  • theGame (): यह फ़ंक्शन यकीनन सबसे महत्वपूर्ण है। यह कॉल करता है टाइल चयनकर्ता और खेल में कार्य करना, एक नई टाइल चुनना और उसे स्क्रीन पर प्रदर्शित करना। इसके बाद, आपको लूप के लिए एक मिलेगा जो प्रत्येक दौर के लिए टाइमर के रूप में कार्य करता है। इसमें इफ स्टेटमेंट का एक सेट होता है जो बटन दबाता है और निर्धारित करता है कि क्या वे सही हैं।

अपना खुद का हैंडहेल्ड Arduino गेम बनाना

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

खेल विकास की दुनिया में रचनात्मकता महत्वपूर्ण है, और हम आपको इसके साथ अपने स्वयं के खेल विचारों पर काम करने के लिए प्रोत्साहित करते हैं।

10 सर्वश्रेष्ठ Arduino रेडियो प्रोजेक्ट

आगे पढ़िए

साझा करनाकलरवसाझा करनाईमेल

संबंधित विषय

  • प्रोग्रामिंग
  • DIY
  • DIY परियोजना विचार
  • DIY परियोजना ट्यूटोरियल
  • अरुडिनो
  • प्रोग्रामिंग

लेखक के बारे में

सैमुअल एल. गारबेट (41 लेख प्रकाशित)

सैमुअल यूके में रहने वाला एक तकनीकी लेखक है, जिसे DIY की सभी चीजों का शौक है। कई वर्षों तक लेखक के रूप में काम करने के साथ-साथ वेब विकास और 3डी प्रिंटिंग के क्षेत्र में व्यवसाय शुरू करने के बाद, सैमुअल प्रौद्योगिकी की दुनिया में एक अद्वितीय अंतर्दृष्टि प्रदान करता है। मुख्य रूप से DIY तकनीकी परियोजनाओं पर ध्यान केंद्रित करते हुए, उन्हें मजेदार और रोमांचक विचारों को साझा करने के अलावा और कुछ नहीं पसंद है जिन्हें आप घर पर आजमा सकते हैं। काम के बाहर, सैमुअल को आमतौर पर साइकिल चलाते हुए, पीसी वीडियो गेम खेलते हुए, या अपने पालतू केकड़े के साथ संवाद करने की सख्त कोशिश करते हुए पाया जा सकता है।

सैमुअल एल. गारबेट

हमारे समाचार पत्र के सदस्य बनें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें