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

निन्टेंडो ने सबसे पहले इस BMX रेसिंग गेम को NES के लिए लॉन्च किया था। वहां से, कंपनी ने एक्साइटबाइक का आधुनिकीकरण किया और इसे N64 और अंततः Wii पर जारी किया।

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

कोड प्राप्त करना और सेट अप करना

यद्यपि आप अपने अजगर कोड को संपादित करने के लिए नैनो या विम का उपयोग कर सकते हैं, आप एक पूर्ण-विशेषताओं का लाभ उठाना चाहेंगे पाठ संपादक या आईडीई.

एक्साइटबाइक के लिए इस श्रद्धांजलि में निर्मित सुविधाओं का समर्थन करने के लिए आपको Pygame Zero इंस्टॉल करने की आवश्यकता होगी। Pygame Zero में गेम क्रिएटर्स के लिए सरल नींव को दोहराए बिना ध्यान केंद्रित करने के लिए Python मॉड्यूल शामिल हैं।

यदि आपके पीसी पर python3 स्थापित नहीं है, तो आप कर सकते हैं

instagram viewer
नवीनतम संस्करण डाउनलोड करें सीधे पायथन से। आप भी चाहेंगे सुनिश्चित करें कि आपके पास पीआईपी स्थापित है बहुत।

स्थापित पायथन और पीआईपी के नवीनतम संस्करण के साथ, अपना पावरशेल या लिनक्स टर्मिनल खोलें और टाइप करें:

ip3 स्थापित करना pgzero

अंत में, आपको वायरफ्रेम पत्रिका के गिटहब रिपॉजिटरी से पायथन कोड की एक प्रति लेने की आवश्यकता होगी। टर्मिनल में निम्न आदेश टाइप करें:

git क्लोन https://github.com/Wireframe-Magazine/Wireframe-66.git

वैकल्पिक रूप से, आप कर सकते हैं ज़िप्ड-अप कोड डाउनलोड करें सीधे वायरफ्रेम गिटहब पेज से।

कोड को तोड़ना

यह समझने के लिए कि कोड क्या करता है, पहले एक्साइटबाइक गेम चलाएं। स्रोत कोड पर नेविगेट करके और फिर इसे Pygame Zero का उपयोग करके चलाकर ऐसा करें:

सीडी वायरफ्रेम-66/स्रोत-कोड-excitebike/
pgzrunandroid.py

फिर आप कोड देखने के लिए एक टेक्स्ट एडिटर के साथ exitebike.py फ़ाइल खोल सकते हैं।

खींचना जैसे ही बाइक की छवि चलती है, फ़ंक्शन पृष्ठभूमि बनाता है। ए "ब्लिट"स्क्रीन पर खींचे गए ब्लॉक को संदर्भित करता है। शब्द, "पृष्ठभूमि," पृष्ठभूमि छवि को संदर्भित करता है (छवियों को पृष्ठभूमि ब्लॉक से जोड़ना आयातित Pygame Zero मॉड्यूल के लिए धन्यवाद है)।

डीईएफ़खींचना():
स्क्रीन ब्लिट ("पृष्ठभूमि", (0, 0))
ड्रॉट्रैक ()
बाइक।खींचना()
स्क्रीन.ड्रा.टेक्स्ट ("लैप समय: "+str (int (time.time() - startTime)), (20, 555), रंग = (255,255,255), फ़ॉन्ट आकार = 50)
स्क्रीन.ड्रा.टेक्स्ट ("अंतिम चरण: "+str (अंतिम लैप), टॉपराइट = (780, 555), रंग = (255,255,255), फ़ॉन्ट आकार = 50)

आप गोद समय और अंतिम गोद के लिए गणना भी देखेंगे (यह स्क्रीन के नीचे समय काउंटर द्वारा दर्शाया गया है)। गोद समय लगातार प्रारंभिक दायां तीर कुंजी प्रेस (प्रारंभ समय) और वर्तमान समय के बीच अंतर की गणना कर रहा है।

अंतिम गोद एक समान गणना है। प्रारंभ समय के बजाय, समय की गणना तब से की जाती है जब मोटरबाइक एक पूर्वनिर्धारित ट्रैक स्थिति से गुजरती है (जैसा उल्लेख किया गया है TrackPos

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

रॉक छवियों को स्क्रीन पर दो भागों में प्रदर्शित किया जाता है। कोड की दूसरी और तीसरी पंक्तियाँ, नीचे, दृश्यों को सुव्यवस्थित रूप से अनुकरण करने के लिए एक साथ काम करती हैं।

एक बार जब आप अजगर कोड की बैकअप प्रतिलिपि बना लेते हैं, तो स्क्रीन पर चट्टानों के साथ क्या होता है यह देखने के लिए नीचे दी गई संख्याओं को बदलने का प्रयास करें!

स्क्रीन ब्लिट ("भीड़1", ((t*100)+trackOffset-100, 0))
स्क्रीन ब्लिट ("रॉक1", ((t*100)+trackOffset-100, 270))
स्क्रीन ब्लिट ("रॉक1", ((t*100)+trackOffset-50, 270))

क्या आप अपनी मोटरसाइकिल को मॉन्स्टर ट्रक, चौपहिया या अन्य वाहन से बदलना चाहते हैं? हो सकता है कि आप एक गेंडा को फिनिश लाइन तक दौड़ाना चाहते हों?

आपको केवल एक 50x50px चित्र (पारदर्शी पृष्ठभूमि के साथ) बनाना है। फिर, इस फाइल (पिक्चर.पीएनजी) को 'में रखें।इमेजिस' फ़ोल्डर (के भीतर स्रोत-कोड-excitebike फोल्डर)। आप कुछ यथार्थवाद जोड़ने के लिए दो छवियां (थोड़ी बढ़ी हुई ऊंचाई वाली एक) बनाना चाहेंगे। आपको बस इतना करना है कि 'के संदर्भ को बदल देंबाइक0' यहाँ:

बाइक = अभिनेता ('बाइक0', केंद्र = (150, 350), लंगर = ('केंद्र', 'तल'))

यह भी सुनिश्चित करें कि चित्र के नाम के साथ (छवि विस्तार के बिना) ढूँढें और बदलें क्रिया निष्पादित करें।

चेकबाइक रैंप () वह कार्य है जो वाई अक्ष की गणना करने के लिए काम करता है ताकि आपकी मोटरबाइक (या ट्रक) रैंप पर चढ़ जाए (और यदि आप भाग्यशाली हैं तो कुछ गंभीर हवा मिलती है)। कीबोर्ड। सही और कीबोर्ड.बायाँ पैरामीटर्स में परिभाषित किया गया है अद्यतन() समारोह।

ये कोड बिट्स कंप्यूटर को मोटरबाइक को धीमा करने या गति बढ़ाने के लिए कहते हैं (उपयोगकर्ता कीबोर्ड पर किस कुंजी को दबाता है इसके आधार पर)। अनुवाद: आपकी मोटरबाइक जितनी तेज़ी से चलती है, Y अक्ष की संख्या उतनी ही अधिक होती है (या बहुत बड़ी छलांग)।

अनुप्रस्थ रूप से, on_key_down (कुंजी) फ़ंक्शन आपकी मोटरबाइक को एक नाक में डाल देगा।

अगर key.name == "नीचे":
बाइक दिशा = 1
बाइक लेन वाई = आप LIMIT(बाइक.लेन + 50, 375, 525)
बाइक.वाई += बाइक.दिशा

muckLane निम्नलिखित गणना का उपयोग करके पैरामीटर आपकी मोटरबाइक को धीमा कर देगा:

मुकलन = int यहाँ((बाइक.लेनY-375)/50)+1

कोड की लाइन 66 यह निर्धारित करती है कि स्क्रीन पर 'गंदगी' छवि कब प्रदर्शित की जाए। अब जबकि कंप्यूटर जानता है कि कब आपकी मोटरबाइक गंदगी के ऊपर से गुजरेगी, यह आपकी मोटरसाइकिल की गति को आधे में धीमा कर देगा क्योंकि आप ट्रैक पर गंदगी के ऊपर से गुजरते हैं। आगे क्या होता है यह देखने के लिए muckLane मान को /50 से /25 या /75 में बदलें।

रेसर्स (अहम, पायथन प्रोग्रामर्स)! अपने इंजन शुरू करें!

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

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

जब आप अपने एक्साइटबाइक एन्हांसमेंट से खुश हैं, तो क्यों न टेक्स्ट एडवेंचर गेम बनाने का प्रयास करें? बहुत सारे अलग-अलग टुकड़े हैं जो सुनिश्चित करेंगे कि आप घंटों, दिनों या हफ्तों तक कुछ रोमांचक सीख रहे हैं!