Obsah:

Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 krokov
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 krokov

Video: Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 krokov

Video: Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): 8 krokov
Video: Топ 10 лучших игр SEGA [Mega Drive, Genesis] 2024, Júl
Anonim
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32)
Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32)

Väčšina protokolovaných videonahrávok môže obsahovať rôzne ovládacie prvky, ktoré nie sú ovládateľné, ale žiadne konvenčné možnosti prehrávania rôznych softvérových softvérových balíkov, ako sú napríklad softvérové balíky, ktoré sú k dispozícii pre ArduPack.

-Juan Camilo Guzmán-Sebastián Carmona-Juan Diego Bustamante-Jhonatan Rodriguez

Zásoby

WEMOS LOLIN 32.

Doskové senzory HC SR 04.

Pantalla LED 1920x1080, 24, 24MK430H.

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

Arduino IDE (ovládanie viacerých funkcií)

Piskel (Para los sprites y personajes). Godot (Para la programación del Vídeo Juego).

Librerias: pySerial (programátor firmvéru pre softvér ESP32) NewPing_v1.9.1 (pre všetky typy snímačov s lososom) blekeyboard (komunikácia prebehla s videomuego simulando un teclado)

Krok 1: Kontrola videa Dokument o návrhu hry Y

Image
Image

Dokumenty, ktoré sú k dispozícii v dokumente Game Design

Krok 2: Montaje Del Circuito

Nižšie je k dispozícii Al Arduino
Nižšie je k dispozícii Al Arduino

Pozrite sa na niekoľko senzorov, ktoré nájdete v nasledujúcom obrázku. Vyberte si z nasledujúcich: usamos en el código, de esta manera se lograra la detección de los movimientos de la mano para mover al personaje y el ángulo del disparo.

Krok 3: Subir Código Del Funcionamiento Al Arduino

Nižšie je k dispozícii Al Arduino
Nižšie je k dispozícii Al Arduino

Primárne debetky a knižnice musia mať všetky svoje ID a skice, vrátane knižnice, pridať. Zip knižnicu.. buscamos y agregamos la librerías proporcionadas.

NewPing

BleKeyboard

Para poder usar correctamente la placa con arduino IDE usaremos pyserial.

-Primero, download Python, process and descargar el archivo PIP, lo ubicaremos en una consola Python y escribiremos el comando get-pip.py, posteriormente en una consola nueva de Python escribiremos el comando: Python -m pip install pyserial, you todo ha Vykonajte správnu opravu a použite základňu s Arduino IDE

Nasledujúce ovládacie prvky môžu obsahovať rôzne ovládacie prvky, napríklad ovládače archívu.ino.

Senzory prechádzajú väčšinou bez ohľadu na to, či sú senzory závislé na vašej váhe, alebo ako závisia od typu BleKeyboard, paralelné a pulzujúce pulzujúce arriba, abajo, izquierda y derecha

Krok 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

Užívateľský manuál ako stvorený na spritek obsahuje niekoľko obľúbených postáv, predmetov, nepriateľov atď.

Môžete si vytvoriť vlastnú recenziu (https://www.piskelapp.com), aby ste mohli vytvárať ovládateľné osoby, ovládať všetky svoje editora, a dbať na to, aby editor ochranných známok pracoval s týmto obrázkom (povolená transparentná verzia).

Krok 5: Import Los Los Sprites a Godot Engine Para La Implementacion Del Vídeo Juego

Importované Los Sprites a Godot Engine podľa implementácie z celého sveta
Importované Los Sprites a Godot Engine podľa implementácie z celého sveta
Importované Los Sprites a Godot Engine podľa implementácie z celého sveta
Importované Los Sprites a Godot Engine podľa implementácie z celého sveta

Väčšina dovozov pochádza z predných parkovacích miest, kde sú tvorené hlavné videá. Niektoré z najdôležitejších, najpopulárnejších a najpopulárnejších textúr, textov a fotografií vašich obľúbených, enemigo, fondo atď.

Krok 6: Disposición De Los Elementos En Pantalla Y Configuración Del Proyecto

Disposición De Los Elementos En Pantalla Y Configuración Del Proyecto
Disposición De Los Elementos En Pantalla Y Configuración Del Proyecto

Všetky možnosti sa budú zhodovať s najdôležitejšími prvkami videa, ako sa budú zhodovať s ďalšími podrobnosťami a informáciami (Como el caso del jugador con su sprite y collider más su brazo) damos click en el nodo y damos click en añadir hijo.

Poznámka: Všetky konfiguračné údaje potrebné pre správnu funkciu, overenie a overenie všetkých udalostí (vrátane dôležitých udalostí, dôsledkov a následných), zodpovedajúcich zoskupení Počet strán, ktoré môžete nominovať, sú obmedzené a obmedzená veľkosť obrazovky, konfigurácia a rozlíšenie obrazovky> 1600 x 600 pixelov, ktoré sú k dispozícii, Pozrite sa na obrázky, ktoré sú popísané nižšie, ako správne, tam, kde sú definované ako hlavné, ktoré ovládajú, ako sa vyberáme a vyberáme z rôznych oblastí> mapujeme, vyberáme, definujeme a dopĺňame. por defekto tenemos las flechas (Arriba y abajo para altura y izquierda y derecha para el angulo).

Krok 7: Vytvorenie skriptov de Los

Skripty tvorby Los Angeles
Skripty tvorby Los Angeles
Skripty tvorby Los Angeles
Skripty tvorby Los Angeles
Skripty tvorby Los Angeles
Skripty tvorby Los Angeles

Môžete si vybrať z mnohých skriptov osobnej zábavy, nepriateľských skriptov, skriptov disparos, puntaje, enemigos derrotados, zvuku a detekcie fin fin del juego. Goodot engine vám môže poskytnúť skript skriptov, ktoré môžu používať C# alebo používať. GD.

Pokračovanie v práci na nasledujúcich scenároch správy:

"nombreScript.cs (NombreNodo) -> popis"

Dohodnite sa na skripte a kliknite na odkaz, kliknite na tlačidlo kliknite na ďalšie tlačidlo a kliknite na tlačidlo Pridať, kliknite na položku Skript.

Skripty pre ovládanie všetkých úrovní: infinite_bg.cs (Úroveň 1) -> Infinitné pohyblivé pozadia, vypočítané puntaje a determinačné stupne.

používanie systému Godot; používanie systému;

verejná trieda infinite_bg: Uzol

{public double puntaje = 0; public bool vivo = pravda; súkromné Sprite pozadia = nový Sprite [5]; súkromný plavák bg_width = 1598f; private float move_speed = 400f; súkromný plavák min_X = -1300f; // Volá sa, keď uzol vstupuje do stromu scény prvýkrát. public override void _Ready () {for (int i = 1; i <6; i ++) {backgrounds [i-1] = GetNode ("Background"+i); }}

// Volá sa každý rámec. „delta“je čas, ktorý uplynul od predchádzajúceho rámca.

public override void _Process (float delta) {for (int i = 0; i <backgrounds. Length; i ++) {Vector2 temp = backgrounds . GetPosition (); temp.x -= rýchlosť pohybu * delta; if (temp.x <= min_X) {temp.x += bg_width * backgrounds. Length; } pozadia . SetPosition (temp); } if (vivo) {puntaje += 0,01; Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = nový Vector2 (0, 0); BotonReinicio. Scale = escala; Label Puntaje = GetNode ("CanvasLayer/puntaje"); Puntaje. Text = Math. Round (puntaje, 0). ToString (); } else {Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = nový Vector2 (1, 1); BotonReinicio. Scale = escala; }

}

}

Reinicio: botonReinicio.gd (botonReinicio) -> Controla el funcionamiento del botón para volver a empezar.

rozširuje Area2D

func _on_Area2D_input_event (viewport, event, shape_idx):

if event je InputEventMouseButton: if event.is_pressed (): get_tree (). reload_current_scene ()

Jugador: jugador.gd (Jugador) -> Controla el movimiento del jugador.

rozširuje KinematicBody2D

var motion = Vector2 ()

func _ready ():

print (self.get_path ()); func _physics_process (delta): if (position.y = 570): motion.y = -150 else: if (Input.is_action_pressed ("ui_up")): motion.y += -20 else: if (Input.is_action_pressed ("ui_down")): motion.y+= 20 motion = move_and_slide (pohyb)

Porovnanie: Disparo_ Brazo.gd (Brazo) -> ovládanie el angulo del arma y instancia un nuevo disparo cada cierto tiempo

rozširuje Area2D

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

var disparo = pravda; export var velocidad = 1000; exportný pomer exportu = 0,4;

# Volal sa každý rámček. „delta“je čas, ktorý uplynul od predchádzajúceho rámca.

func _process (delta): if rotation_degrees> -40: if Input.is_action_pressed ("ui_left"): rotation_degrees += -5 if rotation_degrees <45: if Input.is_action_pressed ("ui_right"): rotation_degrees += 5 if (disparo): var bala_creada = bala.instance (); bala_creada.position = get_global_position (); bala_creada.rotation_degrees = stupne rotácie; bala_creada.apply_impulse (Vector2 (), Vector2 (velocidad, 0).rotated (rotácia)) get_tree (). get_root (). add_child (bala_creada); disparo = nepravda; yield (get_tree (). create_timer (ratio), "timeout") disparo = true;

Colisiones: enemigo.gd (Enemigo) y bala.gd (Bala) -> verificar y aktuar ante una colisión (Enemigo y bala) (Enemigo y jugador).

rozširuje KinematicBody2D

#Determina la velocidad del enemigo

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

func _on_Area2D_body_entered (body):

ak body.is_in_group ("Jugador"): body.queue_free (); get_node ("/root/Úroveň1"). vivo = nepravda; ak body.is_in_group ("obrazovka"): queue_free ();

rozširuje RigidBody2D

#

func _on_Bala_body_entered (telo):

ak body.is_in_group ("Enemigo"): body.queue_free (); queue_free (); get_node ("/root/Level1"). puntaje += 5; ak body.is_in_group ("obrazovka"): queue_free ();

Enemigos: EnemySpawner.gd (EnemySpawner)-> zariadenie typu aleatoria de enemigos.

predlžuje Node

var nepriateľ = preload ("res: //Escena/Enemigo.tscn");

var aparicion = 0,8; export var aparecer = true;

func _process (delta):

if (aparecer): spawn () aparecer = false; yield (get_tree (). create_timer (aparicion), "timeout") aparecer = true; func spawn (): var enemigo = nepriateľ.inštancia (); var pos = Vector2 (); poz.x = 1632; pos.y = rozsah_ rande (32, 592); enemigo.set_position (pos); get_node ("kontajner"). add_child (enemigo)

Los nodos Enemigo y bala se encuentran en dos escenas independentientes, que toman su mismo nombre, bala.tscn y enemigo.tscn.

Z tohto dôvodu video skončí:

github.com/jcamiloguzman/ArduPack

Krok 8: Integrácia (Control + Videojuego)

Integración (Control + Videojuego)
Integración (Control + Videojuego)
Integración (Control + Videojuego)
Integración (Control + Videojuego)
Integración (Control + Videojuego)
Integración (Control + Videojuego)

Väčšina správnych a základných funkcií ovládania videa, ako aj ovládanie jadra, integrácia všetkých funkcií, ktoré sú k dispozícii, a ďalšie formy vykonávania, implementácie a ovládania, jednoduché a jednoduché ovládanie teclado de Najvyššia výpočtová frekvencia, počet zapojených konektorov a počet snímačov montovaných na jednom mieste, rôzne funkcie ovládania, bezdrôtové pripojenie a pripojenie k rozhraniu Bluetooth, pripojenie k širokému spektru zariadení a pripojenie k internetu al juego, your todo ha funcionado correctamente with the three disfrutar de ArduPack con su control no concional.

Široká škála dostupných Bluetooth a prenosných počítačov s podporou klávesnice ESP32 BLE ponúka široký výber kompatibilných a prepojených automobilových reproduktorov.

Jugar!

Odporúča: