Mündəricat:

Bölmə ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 addım
Bölmə ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 addım

Video: Bölmə ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 addım

Video: Bölmə ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 addım
Video: Çubuqlu bölmə. Riyaziyyat Bölmə Əməli. Asan izah 2024, Noyabr
Anonim
Bölmə ArduPack (Videojuego2D Godot3 + Arduino ESP32)
Bölmə ArduPack (Videojuego2D Godot3 + Arduino ESP32)

Videonun qorunması ilə əlaqədar olaraq, ArduPack -in proqram təminatı ilə əlaqəli heç bir şərti proqram yoxlanıla bilməz.

-Juan Camilo Guzman-Sebastian Carmona-Juan Diego Bustamante-Jhonatan Rodriguez

Təchizat

WEMOS LOLIN 32.

Dos sensorlar HC SR 04.

Pantalla LED 1920x1080, 24, 24MK430H.

Altavoces 2.2W, 3, 5 mm, logitech S120.

Arduino IDE (idarəetmə funksiyası)

Piskel (Şəxsi şəkillər və los sprites). Godot (Proqramlaşdırma del Vídeo Juego).

Kitabxanalar: pySerial (ESP32 proqram təminatı ilə) NewPing_v1.9.1 (məlumat los datos de los sensors) blueyboard (video və ya simulyasiya proqramı ilə birlikdə)

Addım 1: Video Baxış Y Oyun Dizayn Sənədi

Image
Image

Oyun Dizayn Sənədinin ən vacib hissəsi bu proqramdır.

Addım 2: Montaje Del Circuito

Subir Código Del Funcionamiento Al Arduino
Subir Código Del Funcionamiento Al Arduino

Wemos Lolin32 ilə əlaqəli problemlərin həlli ilə əlaqədar olaraq: Awigizamos 5v və ya GND istifadə edərək, çam ağacı sensoru, heç bir tetikleyicinin olmadığı, heç bir tetikleyicinin yoxlanılmadığı üçün ən yaxşı seçimdir. istifadəçilərə ən çox məlumat verilsə də, şəxsi məlumatların dəyişdirilməsi də şəxsi məlumatların təhlili ilə əlaqədardır.

Addım 3: Subir Código Del Funcionamiento Al Arduino

Subir Código Del Funcionamiento Al Arduino
Subir Código Del Funcionamiento Al Arduino

Kitabların siyahısı, Arduino IDE və en Sketch, kitabxana daxil edin, əlavə edin. Zip Kitabxanası.

NewPing

BleKeyboard

İstifadəçi məlumatlarını IDE istifadə etmək üçün kompüter sistemini düzəldin.

-Python -u ilk dəfə yükləyin, PIP -i arxivləşdirin, sonra Python -un bir konsolunu və ya bir -birindən uzaqlaşdırın, Python -un konsolunu yükləyin: Python -m pip -ə quraşdırın. Arduino IDE -nin əsas funksiyalarını yerinə yetirin

Nəzarət funksiyalarını idarə etmək üçün, arxivə nəzarətçi ilə əlaqə qurun.

Həssas sensorlar, sensor sensorlar, cla sensorlar, BleKeyboard simulyasiya vasitələri ilə, məsələn, aribo, izquierda və derecha üçün istifadə edilə bilər.

Addım 4: Creación De Sprites Y Personajes

Creación De Sprites Y Personajes
Creación De Sprites Y Personajes
Creación De Sprites Y Personajes
Creación De Sprites Y Personajes
Creación De Sprites Y Personajes
Creación De Sprites Y Personajes

Şəxsi həyat tərzi, objektif, düşmənçilik və s.

Bu proqramlar (https://www.piskelapp.com) ilə əlaqədar olaraq, idarə oluna bilən şəxslərin, redaktorların icazəsi ilə şəkillər-p.webp

Addım 5: Import Springs bir Godot Mühərriki ilə Del Vídeo Juego

Los Sprites, bir Godot Mühərriki ilə Del Vídeo Juego
Los Sprites, bir Godot Mühərriki ilə Del Vídeo Juego
Los Sprites, bir Godot Mühərriki ilə Del Vídeo Juego tətbiq edir
Los Sprites, bir Godot Mühərriki ilə Del Vídeo Juego tətbiq edir

Videonu yükləmək üçün ən yaxşı proqramlar yaradılır. Şəxsi mənbə, düşmənçilik, fondo və s-p.webp

Addım 6: De Los Elementos En Pantalla Y Konfiqurasiya Del Proyecto

İstifadəyə verilişlərin təşkili və quraşdırılması Del Proyecto
İstifadəyə verilişlərin təşkili və quraşdırılması Del Proyecto

Axtarışdan sonra bir çox məlumat əldə etmək mümkün deyilsə, o zaman heç bir problem yoxdur (Como el caso del jugador con sprite y collider más su brazo) düymələri vurun və vurun..

Qeyd: Algunas konfiqurasiyasını düzəltmək üçün ən çox tələb olunan şeylər, bir -biri ilə əlaqə qurmaqla əlaqədardır (Bu hadisələr bir -birindən asılı olmayaraq, ən yaxşı hadisələr): Jugador və Enemigo qrupları, LimiteBalas qrupları tərəfindən ekranlaşdırılır, ekranın dizaynı 1600x600 ölçüsündə bir cihazın dizaynı ilə əlaqədardır; aprecian ən çox təsəvvür etmək üçün bir çox məlumat əldə etmək lazımdır, həm də ən çox maraqlandıran mövzulardan bir neçəsi var, həm də şəxsi məlumatların təhlili, bu proqramların tərtib edilməsi, əldə etmək və ya öyrənmək üçün əsas şərtlərdir. defecto tenemos las flechas (Arriba y abajo para altura y izquierda y derecha para el angulo).

Addım 7: Creación De Los Scripts

Creación De Los Skriptləri
Creación De Los Skriptləri
Creación De Los Skriptləri
Creación De Los Skriptləri
Creación De Los Skriptləri
Creación De Los Skriptləri

Şəxsi mənbə sənədləri, düşmənlər, skriptlər, puntajlar, düşmənlər, səslər və s. Yaxşı bir mühərrik, C + proqramları ilə birlikdə proqramlaşdırma proqramlarını da hazırlayır. GD.

Ssenarilərin davamlı şəkildə hazırlanması ilə bağlı işlər davam edir:

"nombreScript.cs (NombreNodo) -> təsvir"

Ssenariyə uyğun olaraq heç bir düyməni basmaq lazım deyilsə, bu düyməni vurun və ya başqa bir şəkildə yazın.

Skriptlər nivel nəzarət üçün: sonsuz_bg.cs (Səviyyə1) -> Əlavə məlumatların sonunu, hesablamaların və hesablamaların vaxtını müəyyənləşdirin.

Godot istifadə etmək; Sistemdən istifadə etmək;

public class infinite_bg: Node

{ictimai ikiqat puntaje = 0; ictimai bool vivo = doğru; özəl Sprite fonları = yeni Sprite [5]; xüsusi float bg_width = 1598f; şəxsi float move_speed = 400f; xüsusi float min_X = -1300f; // Düyün ilk dəfə səhnə ağacına daxil olduqda çağırılır. public override void _Ready () {for (int i = 1; i <6; i ++) {backgrounds [i-1] = GetNode ("Background"+i); }}

// Hər kadr çağırılır. 'delta' əvvəlki çərçivədən keçən vaxtdır.

public override void _Process (float delta) {for (int i = 0; i <backgrounds. Length; i ++) {Vector2 temp = backgrounds . GetPosition (); temp.x -= hərəkət_sürəti * delta; if (temp.x <= min_X) {temp.x += bg_width * backgrounds. Length; } arxa planlar . SetPosition (temp); } əgər (vivo) {puntaje += 0.01; Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = yeni Vector2 (0, 0); BotonReinicio. Scale = escala; Etiket Puntaje = GetNode ("CanvasLayer/puntaje"); Puntaje. Text = Math. Round (puntaje, 0). ToString (); } başqa {Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = yeni Vector2 (1, 1); BotonReinicio. Scale = escala; }

}

}

Reinicio: botonReinicio.gd (botonReinicio) -> Əməliyyat sistemini idarə edin.

2D sahəsini genişləndirir

func _on_Area2D_input_event (görüntü portu, hadisə, şekil_idx):

hadisə InputEventMouseButton olarsa: if.is_pressed (): get_tree (). reload_current_scene ()

Jugador: jugador.gd (Jugador) -> Mövzu ilə əlaqə saxlayın.

KinematicBody2D uzanır

var motion = Vector2 ()

func _ready ():

çap (self.get_path ()); func _physics_process (delta): if (position.y = 570): motion.y = -150 başqa: if (Input.is_action_pressed ("ui_up")): motion.y += -20 else: if (Input.is_action_pressed ("ui_down"))): motion.y+= 20 hərəkət = move_and_slide (hərəkət)

Disparo: Disparo_ Brazo.gd (Brazo) -> bu proqramlar bir -birinizlə əlaqə saxlamağa imkan verir.

2D sahəsini genişləndirir

var bala = preload ("res: //Escena/bala.tscn");

var disparo = doğru; ixrac var velocidad = 1000; ixrac var nisbəti = 0.4;

# Hər kadr çağırılır. 'delta' əvvəlki çərçivədən keçən vaxtdır.

func _process (delta): rotasiya_dərəcələri> -40: əgər Input.is_action_pressed ("ui_left"): rotation_degrees += -5 rotasiya_degrees <45: əgər Input.is_action_pressed ("ui_right"): rotasiya_dərəcələri += 5 əgər (disparo): var bala_creada = bala.instance (); bala_creada.position = get_global_position (); bala_creada.rotation_degrees = fırlanma_dərəcələri; bala_creada.apply_impulse (Vector2 (), Vector2 (velocidad, 0).dövr (fırlanma)) get_tree (). get_root (). add_child (bala_creada); disparo = yalan; verim (get_tree (). create_timer (nisbət), "zaman aşımı") disparo = doğru;

Qarşıdurmalar: enemigo.gd (Enemigo) və bala.gd (Bala) -> aktual aktual ante una colisión (Enemigo y bala) (Enemigo y jugador).

KinematicBody2D uzanır

#Müəyyən etmək

var velocidad = -500; func _process (delta): move_and_slide (Vector2 (velocidad, 0)) keçid

func _on_Area2D_body_entered (bədən):

əgər body.is_in_group ("Jugador"): body.queue_free (); get_node ("/root/Level1"). vivo = yanlış; əgər body.is_in_group ("Ekran"): queue_free ();

RigidBody2D uzanır

#

func _on_Bala_body_entered (bədən):

əgər body.is_in_group ("Enemigo"): body.queue_free (); queue_free (); get_node ("/root/Level1"). puntaje += 5; əgər body.is_in_group ("Ekran"): queue_free ();

Enemigos: EnemySpawner.gd (EnemySpawner)-> aparat apeatoria deemigos.

Node uzanır

var düşmən = ön yükləmə ("res: //Escena/Enemigo.tscn");

var aparicion = 0.8; ixrac var aparecer = true;

func _process (delta):

if (aparecer): spawn () aparecer = false; verim (get_tree (). create_timer (aparicion), "zaman aşımı") aparecer = doğru; func spawn (): var enemigo = dushman.instance (); var pos = Vector2 (); pos.x = 1632; pos.y = rand_range (32, 592); enemigo.set_position (pos); get_node ("konteyner"). add_child (enemigo)

Müstəqillikdən asılı olmayaraq, ən çox maraqlandıran şeylər, ən çox oxunan və ən çox oxunan şeylərdir.

Git Con Video İstifadəsi:

github.com/jcamiloguzman/ArduPack

Addım 8: İnteqrasiya (Control + Videojuego)

İnteqrasiya (Control + Videojuego)
İnteqrasiya (Control + Videojuego)
İnteqrasiya (Control + Videojuego)
İnteqrasiya (Control + Videojuego)
İnteqrasiya (Control + Videojuego)
İnteqrasiya (Control + Videojuego)

Düzgün idarəetmə funksiyasını yerinə yetirmək üçün video nəzarət və nəzarət etmək, həm də idarə etmək, həm də idarə etmək, həm də idarə etmək, həm də idarə etmək, həm də simulyasiya etmək lazımdır. nuestra computadora, və ya digər cihazlarla əlaqə qurmaq üçün ccdigo y los sensorlar montados funcionando y nuestro juego ejecutándose, ən yaxşı anlar üçün idarəetmə, Bluetooth -dan istifadə etmək üçün heç bir problem yoxdur. Əlavə olaraq, heç bir konvensional olaraq ArduPack ilə əlaqəli heç bir problem yoxdur.

Bluetooth ilə ESP32 BLE klaviatura ilə əlaqəli heç bir problem yoxlanılmadığı təqdirdə, avtomatik olaraq kompüterə daxil ola bilərsiniz.

Şəkər!

Tövsiyə: