विषयसूची:

Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 कदम
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 कदम

वीडियो: Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 कदम

वीडियो: Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 कदम
वीडियो: Топ 10 лучших игр SEGA [Mega Drive, Genesis] 2024, जुलाई
Anonim
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32)
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32)

मॉडलो प्रोटोटिपो डी अन वीडियोजुएगो क्यू ले परमिटिरा अल उसुआरियो डायवर्टीर्स यूसंडो अन कंट्रोल नो कंवेंशनल वाई पैरा लॉस मास इंटुसियास्तास डे ला प्रोग्रामएशन डारल्स अन पुंटो डे पार्टिडा कॉन ला फैसिलिडैड डे लॉस एलिमेंटोस सॉफ्टवेयर लिब्रेस एन लॉस क्यू फ्यू डेसरोलाडो अर्डुपैक।

-जुआन कैमिलो गुज़मैन-सेबेस्टियन कार्मोना-जुआन डिएगो बुस्टामांटे-झोनाटन रोड्रिगेज

आपूर्ति

वेमोस लोलिन 32.

डॉस सेंसर एचसी एसआर 04।

पेंटाला एलईडी 1920x1080, 24, 24MK430H।

अल्टावोस 2.2W, 3, 5 मिमी, लॉजिटेक S120।

Arduino IDE (पैरा एल funcionamiento del control)

पिस्केल (पैरा लॉस स्प्राइट्स और पर्सनेज)। गोडोट (पैरा ला प्रोग्रामैसिओन डेल वीडियो जुएगो)।

पुस्तकालय:पाइसेरियल (पैरा प्रोग्रामर एल फर्मवेयर डे ला प्लाका ईएसपी32)न्यूपिंग_v1.9.1 (पैरा लेयर लॉस डेटोस डी लॉस सेंसर्स)ब्लीकीबोर्ड (पैरा कम्युनिकर एल आर्डिनो को एल वीडियोजुएगो सिमुलैंडो अन टेकलाडो)

चरण 1: वीडियो समीक्षा वाई गेम डिज़ाइन दस्तावेज़

Image
Image

एन एस्टा सेकियन मोस्ट्रामोस ला रेज़ोन डे सेर डे एल प्रोयेक्टो वाई सु गेम डिज़ाइन दस्तावेज़

चरण 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 कीबोर्ड, उन सभी चयनों में से चयन करें जो एम्पारेजार्से और कनेक्टर्स स्वचालित हैं।

एक जुगर!

सिफारिश की: