Mündəricat:
- Təchizat
- Addım 1: Video Baxış Y Oyun Dizayn Sənədi
- Addım 2: Montaje Del Circuito
- Addım 3: Subir Código Del Funcionamiento Al Arduino
- Addım 4: Creación De Sprites Y Personajes
- Addım 5: Import Springs bir Godot Mühərriki ilə Del Vídeo Juego
- Addım 6: De Los Elementos En Pantalla Y Konfiqurasiya Del Proyecto
- Addım 7: Creación De Los Scripts
- Addım 8: İnteqrasiya (Control + Videojuego)
Video: Bölmə ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
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
Oyun Dizayn Sənədinin ən vacib hissəsi bu proqramdır.
Addım 2: Montaje Del Circuito
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
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
Şə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
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
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
Şə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)
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ə:
Gizli bölmə ilə üz tanıma aynası: 15 addım (şəkillərlə)
Gizli Bölmə ilə Üz Tanıma Güzgüsü: Hekayələrdə, filmlərdə və bənzərlərində istifadə olunan yaradıcı gizli bölmələr məni həmişə maraqlandırırdı. Beləliklə, Gizli Bölmə Yarışmasını görəndə bu fikri öz üzərimdə sınamağa və açılan adi bir güzgü düzəltməyə qərar verdim
Arduino MIDI Ritm Bölmə Sequencer: 8 Addım (Şəkillərlə birlikdə)
Arduino MIDI Ritm Bölmə Sequencer: Yaxşı bir proqram nağara maşınına sahib olmaq bu gün asan və ucuzdur, amma siçan istifadə etmək mənim üçün əyləncəni öldürür. Bu səbəbdən əvvəlcə 12 fərqli baraban elementini işə sala bilən təmiz 64 addımlı MIDI tambur ardıcıllığı olaraq nəyin nəzərdə tutulduğunu başa düşdüm
Cənab Big (Ağırlıq Daşınan Mobil Bölmə): 4 addım
Mr Big (Ağırlıq Taşıma Mobil Cihazı): Bu mənim ilk təlimatımdır, buna görə əvvəlcədən hər hansı bir səhv üçün bağışlanma diləyirəm. Yaz tətilində evimə qayıdın, evdəki hər kəs əşyalarını başqa otaqlardan gətirməyimi istədi. . Əşyalar kiçik və ya məhdud sayda olsa yaxşı olardı
Arduino Nano Çarpma/Bölmə İşarələri: 9 Addım (Şəkillərlə)
Arduino Nano Çarpma/Bölmə İşarələri: Arduino Nano Çarpma/Bölmə İşarələri, ibtidai siniflərdə tədris üçün əla vasitə ola bilər, çünki onun dizaynının vurma və riyazi əməliyyatlardakı işarələrin birləşməsinin nəticəsini göstərdiyi düşünülmüşdü. bölünmə
Retro nitq sintezi. Bölmə: 12 IoT, Ev Avtomatlaşdırması: 12 Addım (Şəkillərlə)
Retro nitq sintezi. Hissə: 12 IoT, Ev Avtomatlaşdırması: Bu məqalə, ev avtomatlaşdırılması ilə bağlı bir sıra 12 -ci məqalədir