विषयसूची:
- आपूर्ति
- चरण 1: वीडियो समीक्षा वाई गेम डिज़ाइन दस्तावेज़
- चरण 2: मोंटेजे डेल सर्किटो
- चरण 3: सुबीर कोडिगो डेल फनसिओनामिएंटो अल अरुडिनो
- चरण 4: Creación De Sprites Y Personajes
- चरण 5: इंपोर्टर लॉस स्प्राइट्स ए गोडोट इंजन पैरा ला इम्प्लीमेंटेशन डेल वीडियो जुएगो
- चरण 6: डिस्पोज़िशन डी लॉस एलिमेंटोस एन पैंटाला वाई कॉन्फिगुरासियोन डेल प्रोयेक्टो
- चरण 7: Creación De Los Scripts।
- चरण 8: एकीकरण (नियंत्रण + वीडियोजुएगो)
वीडियो: Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:19
मॉडलो प्रोटोटिपो डी अन वीडियोजुएगो क्यू ले परमिटिरा अल उसुआरियो डायवर्टीर्स यूसंडो अन कंट्रोल नो कंवेंशनल वाई पैरा लॉस मास इंटुसियास्तास डे ला प्रोग्रामएशन डारल्स अन पुंटो डे पार्टिडा कॉन ला फैसिलिडैड डे लॉस एलिमेंटोस सॉफ्टवेयर लिब्रेस एन लॉस क्यू फ्यू डेसरोलाडो अर्डुपैक।
-जुआन कैमिलो गुज़मैन-सेबेस्टियन कार्मोना-जुआन डिएगो बुस्टामांटे-झोनाटन रोड्रिगेज
आपूर्ति
वेमोस लोलिन 32.
डॉस सेंसर एचसी एसआर 04।
पेंटाला एलईडी 1920x1080, 24, 24MK430H।
अल्टावोस 2.2W, 3, 5 मिमी, लॉजिटेक S120।
Arduino IDE (पैरा एल funcionamiento del control)
पिस्केल (पैरा लॉस स्प्राइट्स और पर्सनेज)। गोडोट (पैरा ला प्रोग्रामैसिओन डेल वीडियो जुएगो)।
पुस्तकालय:पाइसेरियल (पैरा प्रोग्रामर एल फर्मवेयर डे ला प्लाका ईएसपी32)न्यूपिंग_v1.9.1 (पैरा लेयर लॉस डेटोस डी लॉस सेंसर्स)ब्लीकीबोर्ड (पैरा कम्युनिकर एल आर्डिनो को एल वीडियोजुएगो सिमुलैंडो अन टेकलाडो)
चरण 1: वीडियो समीक्षा वाई गेम डिज़ाइन दस्तावेज़
एन एस्टा सेकियन मोस्ट्रामोस ला रेज़ोन डे सेर डे एल प्रोयेक्टो वाई सु गेम डिज़ाइन दस्तावेज़
चरण 2: मोंटेजे डेल सर्किटो
से डेबेन कनेक्टर लॉस डॉस सेंसर्स ए ला प्लाका वेमोस लोलिन32 कोमो से एप्रेसिया एन ला इमेजन: यूटिलिजामोस 5वी वाई एल जीएनडी पैरा ला एलिमेंटासिओन, कैडा सेंसर पॉसी डॉस पाइन्स, अन इको वाई अन ट्रिगर, एस्टोस प्यूडेन सेर क्यूलेसक्विएरा पेरो एन ला इमेजन एस्पेसिफिकैमोस उसामोस एन एल कोडिगो, डे एस्टा मानेरा से लोगरा ला डिटेक्शियोन डे लॉस मूविमिएंटोस डे ला मानो पैरा मूवर अल व्यक्तिजे वाई एल अंगुलो डेल डिस्पारो।
चरण 3: सुबीर कोडिगो डेल फनसिओनामिएंटो अल अरुडिनो
प्रिमेरो डिबेमोस अनादिर लास लाइब्रेरियास नेसेरियास, अल डेसकारगर्लस डेबेरेमोस इर अल अरुडिनो आईडीई वाई एन स्केच, लाइब्रेरी शामिल करें, जिप लाइब्रेरी जोड़ें।
न्यूपिंग
ब्लेकीबोर्ड
पैरा पोडर उपयोगकर्ता सुधार ला प्लाका कॉन आर्डिनो आईडीई usaremos pyserial।
-प्रिमेरो, डेसकारगेरेमोस पायथन, प्रोसेडेरेमोस ए डेसकारगर एल आर्किवो पीआईपी, लो यूबिकेरेमोस एन उना कंसोला पायथन और एस्क्रिबिरेमोस एल कोमांडो गेट-पिप.py, पोस्टीरियरमेंट एन उना कंसोला न्यूवा डे पायथन एस्क्रिबरेमोस एल कॉमांडो: पायथन-एम पाइप इंस्टाल टोडो हैरियल आप Arduino IDE के माध्यम से सुधार कर सकते हैं
Después subimos el código para el funcionamiento del control, que se encuentra en el archivo controler.ino.
एस्टे कोडिगो परमिट लीर लॉस वेलोरेस डी डॉस सेंसर्स डी प्रॉक्सिमिडैड, वाई डिपेंडिएंडो डी लॉस वेलोरेस डी कैडा सेंसर, यूएसए ला लाइब्रेरिया ब्लेकीबोर्ड पैरा सिमुलर लास पल्सेशन्स डी अरिबा, अबाजो, इज़क्विएर्डा वाई डेरेचा
चरण 4: Creación De Sprites Y Personajes
डेबेरेमोस यूसर अन क्रीडोर डे स्प्राइट्स लिब्रे पैरा पोडर क्रेयर प्रोपियोस पर्सनेज, ओब्जेटोस, एनीमिगोस आदि।
एन एस्टे कासो से हमें एल क्रेडोर पिस्कल (https://www.piskelapp.com) पैरा ला क्रिएसीओन डे लॉस एनीमिगोस, एल व्यक्तित्व नियंत्रणीय, एस्टे संपादक परमिट गार्डर लॉस स्प्राइट्स कोमो इमेजनेस पीएनजी (पैरा परमिट ट्रांसपेरेंसिया)।
चरण 5: इंपोर्टर लॉस स्प्राइट्स ए गोडोट इंजन पैरा ला इम्प्लीमेंटेशन डेल वीडियो जुएगो
डेबेमोस इंपोर्टर लॉस स्प्राइट्स एंटेरियोमेंट क्रीडोस पैरा पोडर एम्पेज़ार ला क्रिएसीओन डेल वीडियोजुएगो। पैरा इंपोर्टर लॉस स्प्राइट्स अल जुएगो, एनाडिमोस अन नोडो डे स्प्राइट वाई एन सूस प्रोपिडेड्स एलिगिमोस कोमो टेक्स्टुरा ला इमेजन पीएनजी डे न्यूस्ट्रो पर्सनजे, एनीमिगो, फोंडो आदि।
चरण 6: डिस्पोज़िशन डी लॉस एलिमेंटोस एन पैंटाला वाई कॉन्फिगुरासियोन डेल प्रोयेक्टो
डी एस्टा मानेरा से एग्रीन कैडा उनो डे लॉस एलिमेंटोस अल एंटरो पैरा डेसरोलर एल वीडियोजुएगो, पैरा एग्रीगर उन नोडो परटेनिएन्ट ए ओट्रो (कोमो एल कासो डेल जुगाडोर को सु स्प्राइट वाई कोलाइडर मास सु ब्राजो) दमोस क्लिक एन एल नोडो य एडमोस हाय क्लिक करें.
नोट: अल्गुनास कॉन्फिगुरासियोन्स डे लॉस नोडोस बेटा नेसेसरीओस पैरा एल करेक्टो फंकियोनामिएन्टो, कोमो वेरिफ़ायर क्यू लॉस नोडोस टिएनेन कोनेक्टाडोस करेक्टामेंट लॉस इवेंटोस (एन एस्टे कैसो लॉस इवेंटोस क्यू इम्प्लिकन ए ला बाला, एल नोएमिगो वाई अलस जुगडोस, ए सिग्नल: जुगाडोर वाई एनेमिगो टिएनेन सुस ग्रूपोस कॉन सु मिसमो नोम्ब्रे वाई लिमिटेबालास टिएन एल ग्रुपो लामाडो स्क्रीन, कॉन्फिगरर एल तमानो डे ला वेंटाना एन प्रोएक्टो>एजस्ट्स डे प्रोयेक्टो>वेंटाना ए अन १६००x६००, वाई टेनर एन कुएंता नोडोस डेबेन अन १६००x६०० एर एप्रेसियन एन ला इमेजन पैरा पोडर सेर एकेडिडोस करेक्टामेंटे, टैम्बिएन पोडेमोस डेफिनिर लॉस कंट्रोल्स क्यू से एसिग्नन ए ला अल्तुरा वाई अंगुलो डे डिसपारो डेल पर्सनजे एन ला वेंटाना प्रोयेक्टो>एजस्ट्स डेल प्रोयेक्टो> मैपस डी एन्ट्राडा, डिफिनिस पोडेमोस पोर डिफेक्टो टेनेमोस लास फ्लेचास (अरिबा वाई अबाजो पैरा अल्तुरा वाई इज़क्विएर्डा वाई डेरेचा पैरा एल अंगुलो)।
चरण 7: Creación De Los Scripts।
टेंड्रेमोस क्यू क्रेयर लॉस स्क्रिप्ट्स डे मूविमिएंटो डे पर्सनजे, एनीमिगोस, स्क्रिप्ट्स डी डिस्पैरोस, पंटाजे, एनीमिगोस डेरोटाडोस, ऑडियो वाई ला डिटेक्सीओन डेल फिन डेल जुएगो। गुडोट इंजन ते दा ला पॉसिबिलिडैड डे प्रोग्रामर एस्टॉस स्क्रिप्ट्स यूएसंडो सी # ओ यूसर सु प्रोपियो लेंगुएजे जीडी।
ए कॉन्टिन्यूएशन से म्यूस्ट्रान लास इंस्टानियास डी टोडोस लॉस स्क्रिप्ट्स डे एस्टा मानेरा:
"nombreScript.cs(NombreNodo) -> विवरण"
पैरा एग्रीगर अन स्क्रिप्ट ए अन नोडो, दामोस क्लिक डेरेचो सोबरे एल वाई दामोस क्लिक एन अनादिर नोडो, एस्कोजेमोस नोम्ब्रे वाई लेंगुजे पैरा एल स्क्रिप्ट।
नियंत्रण के लिए स्क्रिप्ट: इनफिनिट_बीजी.सीएस(लेवल1) -> एल मूविमिएंटो इनफिनिटो डेल फोंडो, कैलक्यूलर पंटाजे और डिटरमिनर कुआंडो पियरडे।
गोडोट का उपयोग करना; सिस्टम का उपयोग करना;
सार्वजनिक वर्ग अनंत_बीजी: नोड
{सार्वजनिक डबल पंटाजे = 0; सार्वजनिक बूल विवो = सच; निजी स्प्राइट पृष्ठभूमि = नया स्प्राइट [5]; निजी फ्लोट bg_width = १५९८f; निजी फ्लोट चाल_स्पीड = 400f; निजी फ्लोट min_X = -1300f; // कॉल किया जाता है जब नोड पहली बार सीन ट्री में प्रवेश करता है। सार्वजनिक ओवरराइड शून्य _रेडी () {के लिए (int i = 1; i <6; i ++) {पृष्ठभूमि [i-1] = GetNode ("पृष्ठभूमि" + i); } }
// हर फ्रेम को कॉल करें। 'डेल्टा' पिछले फ्रेम से बीता हुआ समय है।
सार्वजनिक ओवरराइड शून्य _Process (फ्लोट डेल्टा) {के लिए (int i = 0; i <पृष्ठभूमि। लंबाई; i ++) {वेक्टर 2 अस्थायी = पृष्ठभूमि । GetPosition (); temp.x -= move_speed * डेल्टा; अगर (अस्थायी। x <= min_X) {temp.x + = bg_width * पृष्ठभूमि। लंबाई; } पृष्ठभूमि । सेटपोजिशन (अस्थायी); } अगर (विवो) {पुंटाजे + = 0.01; Area2D BotonReinicio = GetNode ("BotonReinicio"); वेक्टर2 एस्केला = नया वेक्टर2(0, 0); BotonReinicio. Scale = escala; लेबल पंटाजे = गेटनोड ("कैनवसलेयर/पंताजे"); पंटाजे। पाठ = गणित। गोल (पंताजे, ०)। ToString (); }else{ Area2D BotonReinicio = GetNode ("BotonReinicio"); वेक्टर2 एस्केला = नया वेक्टर2(1, 1); BotonReinicio. Scale = escala; }
}
}
Reinicio: botonReinicio.gd(botonReinicio) -> Controla el funcionamiento del botón para volver a empezar।
एरिया2डी. का विस्तार करता है
func _on_Area2D_input_event (व्यूपोर्ट, इवेंट, शेप_आईडीएक्स):
यदि ईवेंट InputEventMouseButton है: यदि event.is_pressed (): get_tree ()। reload_current_scene ()
जुगाडोर: jugador.gd(Jugador) -> Controla el movimiento del jugador.
KinematicBody2D का विस्तार करता है
वर गति = वेक्टर 2 ()
func _ready ():
प्रिंट (self.get_path ()); func _physics_process(delta): if(position.y = 570): Motion.y = -150 और: if (Input.is_action_pressed("ui_up")): Motion.y += -20 और: if (Input.is_action_pressed(Input.is_action_pressed("ui_down")): गति.y+=20 गति= move_and_slide(motion)
डिस्परो: डिस्परो_ ब्रेज़ो.जीडी(ब्राज़ो) -> कंट्रोल एल एंजुलो डेल अरमा वाई इंस्टैंसिया अन न्यूवो डिसपारो कैडा सिएर्टो टिएम्पो
एरिया2डी. का विस्तार करता है
वर बाला = प्रीलोड ("res://Escena/bala.tscn");
वर डिस्परो = सच; निर्यात var velocidad = १०००; निर्यात वर अनुपात = ०.४;
# हर फ्रेम को बुलाया। 'डेल्टा' पिछले फ्रेम से बीता हुआ समय है।
func _process (डेल्टा): यदि रोटेशन_डिग्री> -40: यदि इनपुट। is_action_pressed ("ui_left"): रोटेशन_डिग्री + = -5 यदि रोटेशन_डिग्री <45: यदि इनपुट।: वर बाला_क्रीडा = बाला.इंस्टेंस (); बाला_क्रीडा.पोजिशन = get_global_position (); बाला_क्रीडा.रोटेशन_डिग्री = रोटेशन_डिग्री; bala_creada.apply_impulse(Vector2(), Vector2(velocidad, 0).rotated(rotation)) get_tree().get_root().add_child(bala_creada); डिस्परो = झूठा; उपज (get_tree ()। create_timer (अनुपात), "समयबाह्य") disparo = सच;
टकराव: एनीमिगो.जीडी (एनिमिगो) और बाला.जीडी (बाला) -> सत्यापन और एक्चुअर एंटे उना कॉलिसियोन (एनेमिगो वाई बाला) (एनेमिगो वाई जुगाडोर)।
KinematicBody2D का विस्तार करता है
#डेटर्मिना ला वेलोसिडैड डेल एनीमिगो
वर वेलोसिडैड = -500; func _process(delta): move_and_slide(Vector2(velocidad, 0)) पास
func _on_Area2D_body_entered (बॉडी):
अगर body.is_in_group ("जुगाडोर"): body.queue_free (); get_node("/root/Level1").vivo = false; अगर body.is_in_group ("स्क्रीन"): queue_free ();
RigidBody2D का विस्तार करता है
#
func _on_Bala_body_entered(शरीर):
अगर body.is_in_group("एनीमिगो"): body.queue_free(); कतार_मुक्त (); get_node("/root/Level1").puntaje += 5; अगर body.is_in_group ("स्क्रीन"): queue_free ();
शत्रु: EnemySpawner.gd(EnemySpawner)-> अपेरिशियन एलेटोरिया डे एनीमिगोस।
नोड बढ़ाता है
वर दुश्मन = प्रीलोड ("res://Escena/Enemigo.tscn");
वर अपारिसियन = ०.८; निर्यात var apareser = सच;
func _process (डेल्टा):
अगर (अपारेसर): स्पॉन () अपरेसर = झूठा; उपज (get_tree ()। create_timer (अपरिशियन), "टाइमआउट") aparecer = true; func स्पॉन (): वर एनीमिगो = दुश्मन। इंस्टेंस (); वर स्थिति = वेक्टर 2 (); स्थिति x = १६३२; pos.y = rand_range (३२, ५९२); एनीमिगो.सेट_पोजिशन (स्थिति); get_node ("कंटेनर")। add_child (एनीमिगो)
लॉस नोडोस एनेमिगो वाई बाला से एन्कुएंट्रान एन डॉस एसेनास इंडिपेंडेंट, क्यू तोमन सु मिस्मो नोम्ब्रे, बाला.tscn और एनीमिगो.tscn।
गिट कॉन वीडियो जुएगो टर्मिनाडो:
github.com/jcamiloguzman/ArduPack
चरण 8: एकीकरण (नियंत्रण + वीडियोजुएगो)
उना वेज़ टेनेमोस एल करेक्टो फंकियोनामिएंटो डे न्यूस्ट्रो वीडियोजुएगो वाई डे न्यूस्ट्रो कंट्रोल, एस होरा डे रियलिज़र ला इंटीग्रेशन डे लॉस डॉस, एस्टे एस एल पासो मास फैसिल ग्रेसियस ए ला फॉर्मा एन ला क्यू एस्टा इम्प्लिमेंटाडो एल कंट्रोल, या फिर क्यू वे ए नुएस्ट्रा कंप्यूटाडोरा, पैरा एलो डेबेमोस कोनेक्टर एल सर्किटो कोन एल कोडिगो वाई लॉस सेंसर्स मोंटाडोस वाई फंकियोनांडो वाई न्यूस्ट्रो जुएगो इजेक्टांडोज, एन एल मोमेंटो डी एनसेन्डर एल कंट्रोल, एस्टारा बसकैंडो अन एम्पारेजामिएंटो वाया ब्लूटूथ, लोएटारा एंपारेजामिएंटो वाया ब्लूटूथ, अल जुएगो, सी टूडो हा फंकियोनाडो करेक्टामेंट से पोड्रिया डिस्फ्रुटार डी अर्डुपैक को सु कंट्रोल नो कन्वेंशनल।
Agregamos un nuevo dispositivo ब्लूटूथ y lo buscamos con el nombre de ESP32 BLE कीबोर्ड, उन सभी चयनों में से चयन करें जो एम्पारेजार्से और कनेक्टर्स स्वचालित हैं।
एक जुगर!
सिफारिश की:
जले हुए Arduino या ESP32 की मरम्मत कैसे करें: 5 कदम
जले हुए Arduino या ESP32 की मरम्मत कैसे करें: इस वीडियो में आप सीखेंगे कि अपने जले हुए Arduino या ESP32 को कैसे ठीक करें! यह आपको एक उत्कृष्ट वित्तीय आय ला सकता है, कुछ ऐसा जो आप करना पसंद करते हैं। मैंने दो नए उपकरणों का उपयोग किया और वे एक सोल्डरिंग स्टेशन थे जो मुझे नहीं लगता था कि इतना सस्ता काम करता है
Arduino कार रिवर्स पार्किंग अलर्ट सिस्टम - कदम दर कदम: 4 कदम
Arduino कार रिवर्स पार्किंग अलर्ट सिस्टम | स्टेप बाय स्टेप: इस प्रोजेक्ट में, मैं Arduino UNO और HC-SR04 अल्ट्रासोनिक सेंसर का उपयोग करके एक साधारण Arduino कार रिवर्स पार्किंग सेंसर सर्किट डिजाइन करूंगा। इस Arduino आधारित कार रिवर्स अलर्ट सिस्टम का उपयोग स्वायत्त नेविगेशन, रोबोट रेंजिंग और अन्य रेंज r के लिए किया जा सकता है
कम लागत वाले E32 (sx1278/sx1276) के साथ LoRa 3Km से 8Km वायरलेस संचार Arduino, Esp8266 या Esp32 के लिए डिवाइस: 15 कदम
लोरा 3Km से 8Km वायरलेस कम्युनिकेशन कम लागत E32 (sx1278/sx1276) Arduino, Esp8266 या Esp32 के लिए डिवाइस: मैं लोरा डिवाइस की सेमटेक श्रृंखला के आधार पर EBYTE E32 को प्रबंधित करने के लिए एक लाइब्रेरी बनाता हूं, बहुत शक्तिशाली, सरल और सस्ता डिवाइस। आप पा सकते हैं यहां 3 किमी संस्करण, यहां 8 किमी संस्करण वे 3000 मीटर से 8000 मीटर की दूरी पर काम कर सकते हैं, और उनके पास बहुत सारी विशेषताएं हैं
Arduino, Esp32 और Esp8266 के साथ अटैचमेंट के साथ ईमेल कैसे भेजें: 6 कदम
Arduino, Esp32 और Esp8266 के साथ अटैचमेंट के साथ ईमेल कैसे भेजें: यहां मैं अपनी लाइब्रेरी EMailSender के संस्करण 2 की व्याख्या करना चाहता हूं, संस्करण 1 के लिए एक बड़ा विकास सम्मान, Arduino के समर्थन के साथ w5100, w5200 और w5500 ईथरनेट शील्ड और enc28J60 क्लोन डिवाइस, और esp32 और esp8266 के लिए समर्थन। अब आप विज्ञापन कर सकते हैं
ESP32 के साथ शुरुआत करना - Arduino IDE में ESP32 बोर्ड स्थापित करना - ESP32 ब्लिंक कोड: 3 चरण
ESP32 के साथ शुरुआत करना | Arduino IDE में ESP32 बोर्ड स्थापित करना | ESP32 ब्लिंक कोड: इस निर्देश में हम देखेंगे कि esp32 के साथ काम करना कैसे शुरू करें और Arduino IDE में esp32 बोर्ड कैसे स्थापित करें और हम arduino ide का उपयोग करके ब्लिंक कोड चलाने के लिए esp 32 प्रोग्राम करेंगे।