Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Ukaguzi wa Video Y Hati ya Kubuni Mchezo
- Hatua ya 2: Montaje Del Circuito
- Hatua ya 3: Subir Código Del Funcionamiento Al Arduino
- Hatua ya 4: Creación De Sprites Y Personajes
- Hatua ya 5: Ingiza Los Sprites Injini ya Godot Para La Implementacion Del Vídeo Juego
- Hatua ya 6: Disposición De Los Elementos En Pantalla Y Configuración Del Proyecto
- Hatua ya 7: Creación De Los Scripts
- Hatua ya 8: Jumuishi (Udhibiti + Videojuego)
Video: Diviértete Con ArduPack (Videojuego2D Godot3 + Arduino ESP32): Hatua 8
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Modeli Prototipo de un VideoJuego que le permitirá al usuario divertirse usando un control no convencional y para los mas entusiastas de la programación darles un punto de partida con la assistidad de los elementos software libres en los que fue desarrollado ArduPack.
-Juan Camilo Guzmán-Sebastián Carmona-Juan Diego Bustamante-Jhonatan Rodriguez
Vifaa
WEMOS LOLIN 32.
Dos sensores HC SR 04.
Pantalla LED 1920x1080, 24, 24MK430H.
Altavoces 2.2W, 3, 5 mm, logitech S120.
IDE ya Arduino (Para el funcionamiento del control)
Piskel (Para los sprites y personajes). Mungu (Para la programación del Vídeo Juego).
Librerias: pySerial (Para programar el firmware de la placa ESP32) NewPing_v1.9.1 (kwa leer los datos de los sensores) blekeyboard (Para comunicar el arduino con el videojuego simulando un teclado)
Hatua ya 1: Ukaguzi wa Video Y Hati ya Kubuni Mchezo
Hii ni njia ya kufanya kazi kwa njia ya kubuni Mchezo Hati ya Ubunifu
Hatua ya 2: Montaje Del Circuito
Tazama maoni yako kuhusu hali ya Wanawake katika Lolin32 kwa sababu ya picha: Utumiaji wa 5v na GND kwa ajili ya chakula, sensa ya simu inaweza kusababisha miti, inaelezea, ambayo inafanya kazi kwa sababu inahusika. usamos en el código, de esta manera se lograra la detección de los movimientos de la mano for mover al personaje y el ángulo del disparo.
Hatua ya 3: Subir Código Del Funcionamiento Al Arduino
Primero debemos añadir las librerías necesarias, al descargarlas deberemos ir al Arduino IDE na en Mchoro, ni pamoja na maktaba, ongeza. Zip Library.. buscamos agregamos la librerías proporcionadas.
NewPing
BleKeyboard
Para poder usar correctamente la placa con arduino IDE usaremos pyserial.
-Primero, descargaremos Python, taratibu za PIP ya chini, tazama ubicaremos na consola Python na maelezo ya com com get-pip.py, posteriormente en una consola nueva de Python escriptiremos el comando: Python -m pip install pyserial, si todo ha funcionado correctamente ya podremos usar la placa con Arduino IDE
Después subimos el código para el funcionamiento del control, ikiwa ni pamoja na udhibiti wa kumbukumbu.ino.
Idara hii inaruhusiwa kwa wahusika wengine kupata huduma, ni tegemezi kwa vifaa vya sensa ya utaftaji, usaidi wa BleKeyboard kwa simular las pulsasiones de arriba, abajo, izquierda na derecha
Hatua ya 4: Creación De Sprites Y Personajes
Deberemos usar un creador de sprites libre para poder crear propios personajes, objetos, enemigos nk.
Kwa sababu hii ni uso wa mkandarasi (https://www.piskelapp.com) kwa ajili ya kuunda orodha ya watu, ambayo inaweza kudhibitiwa, mhariri wa idhini hii anaweza kutekelezwa kama viini-p.webp
Hatua ya 5: Ingiza Los Sprites Injini ya Godot Para La Implementacion Del Vídeo Juego
Hesabu za kuingiza bidhaa kutoka nje zinapatikana kwa mikate kwa ajili ya kuunda video za video. Para importar los sprites al juego, añadimos un nodo de sprite y en sus propiedades elegimos como textura la imagen-p.webp
Hatua ya 6: Disposición De Los Elementos En Pantalla Y Configuración Del Proyecto
De esta manera se agreegan cada uno de los elementos al entorno for desarrollar el videojuego, para agregar un nodo perteneciente a otro (Como el caso del jugador con su sprite y collider más su brazo) damos bonyeza en el nodo y damos bonyeza en añadir hijo.
Noti: Algunas configuraciones de los nodos son necesarios para el correcto funcionamiento, como verificar que los nodos tienen conectados correctamente of event (En este caso los eventos que implican a la bala, el enemigo y al jugador), Asignarle los grupos correspondientes a los nodos: Jugador y Enemigo tienen sus grupos con su mismo nombre y LimiteBalas tiene el grupo llamado Screen, configurar el tamaño de la ventana en Proyecto> ajustes de proyecto> ventana un un 1600x600, tener en cuenta que algunos nodos deben tener los mismos nombres se aprecian en la imagen para poder ser accedidos correctamente, también podemos definir los controles que seignan a la altura na ángulo de disparo del personaje en la ventana Proyecto> ajustes del proyecto> mapas de entada, aquí podemos definir las teclas que queremos utiliz por defecto tenemos las flechas (Arriba y abajo para altura y izquierda y derecha para el angulo).
Hatua ya 7: Creación De Los Scripts
Tendremos que crear los scripts de movimiento de personaje, enemigos, scripts de disparos, puntaje, enemigos derrotados, audio na la detección del fin del juego. Injini ya Goodot ni programu ya maandishi ya maandishi usando C # o usar su propio lenguaje. GD.
Kuendelea kwa kufanya hivyo kwa sababu ya maandishi ya maandishi haya:
"nombreScript.cs (NombreNodo) -> sasisho"
Kwa agregar un script a un nodo, damos bonyeza derecho sobre él y damos bonyeza en añadir nodo, escogemos nombre y lenguaje para el script.
Maandiko kwa ajili ya kudhibiti del nivel: infinite_bg.cs (Level1) -> El movimiento infinito del fondo, calcium puntaje y determinar cuando pierde.
kutumia Godot, kutumia Mfumo;
darasa la umma infinite_bg: Node
{umma mara mbili puntaje = 0; bool ya umma vivo = kweli; Sprite ya faragha asili = Sprite mpya [5]; kuelea kwa kibinafsi bg_width = 1598f; kuelea kwa kibinafsi kusonga_speed = 400f; kuelea binafsi min_X = -1300f; // Inayoitwa wakati node inapoingia kwenye mti wa eneo kwa mara ya kwanza. kupuuza umma batili _Ready () {for (int i = 1; i <6; i ++) {background [i-1] = GetNode ("Usuli" + i); }}
// Inayoitwa kila fremu. 'delta' ni wakati uliopita tangu fremu iliyopita.
kupuuza umma batili _Utaratibu (kuelea delta) {kwa (int i = 0; i <asili. Urefu; i ++) {Vector2 temp = asili . GetPosition (); temp.x - = songa_kipya * delta; ikiwa (temp.x <= min_X) {temp.x + = bg_width * asili. Urefu; } asili . SetPosition (temp); } ikiwa (vivo) {puntaje + = 0.01; Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = Vector2 mpya (0, 0); BotonReinicio. Scale = escala; Lebo Puntaje = GetNode ("CanvasLayer / puntaje"); Puntaje. Text = Math. Mzunguko (puntaje, 0). ToString (); } mwingine {Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = Vector2 mpya (1, 1); BotonReinicio. Scale = escala; }
}
}
Reinicio: botonReinicio.gd (botonReinicio) -> Controla el funcionamiento del botón para volver a empezar.
inaongeza Area2D
func _on_Area2D_input_event (bandari ya kutazama, tukio, sura_idx):
ikiwa tukio ni InputEventMouseButton: ikiwa event.is_pressed (): get_tree (). reload_current_scene ()
Jugador: jugador.gd (Jugador) -> Controla el movimiento del jugador.
inaongeza KinematicBody2D
mwendo wa var = Vector2 ()
func _ tayari ():
chapisha (self.get_path ()); func _physics_process (delta): ikiwa (nafasi.y = 570): mwendo.y = -150 mwingine: ikiwa (Input.is_action_pressed ("ui_up")): motion.y + = -20 mwingine: ikiwa (Input.is_action_pressed ("ui_down")): mwendo.y + = mwendo 20 = hoja_na_slide (mwendo)
Disparo: Disparo_ Brazo.gd (Brazo) -> udhibiti wa angulo del arma y instancia un nuevo disparo cada cierto tiempo
inaongeza Area2D
var bala = preload ("res: //Escena/bala.tscn");
var disparo = kweli; kuuza nje var velocidad = 1000; usafirishaji var var = 0.4;
# Inaitwa kila fremu. 'delta' ni wakati uliopita tangu fremu iliyopita.
mchakato wa func (delta): ikiwa digrii_ za kuzunguka> -40: ikiwa Input.is_action_pressed ("ui_left"): rotation_degrees + = -5 ikiwa digrii_ za kuzunguka <45: ikiwa Input.is_action_pressed ("ui_right"): rotation_degrees + = 5 if (disparo): var bala_creada = bala.instance (); bala_creada.position = pata_pasi_position [); bala_creada.rotation_degrees = digrii_ za kuzungusha; bala_creada.apply_impulse (Vector2 (), Vector2 (velocidad, 0). iliyopigwa (kuzungushwa)) pata_tree (). pata_root (). add_child (bala_creada); disparo = uongo; mavuno (get_tree (). create_timer (ratio), "timeout") disparo = kweli;
Colisiones: enemigo.gd (Enemigo) y bala.gd (Bala) -> verificar y actuar ante una colisión (Enemigo y bala) (Enemigo y jugador).
inaongeza KinematicBody2D
#Determina la velocidad del enemigo
var velocidad = -500; mchakato wa func (delta): hoja_na_slide (Vector2 (velocidad, 0)) kupita
func _on_Area2D_body_entered (mwili):
ikiwa body.is_in_group ("Jugador"): body.queue_free (); pata_node ("/ mzizi / Kiwango1"). vivo = uwongo; ikiwa body.is_in_group ("Screen"): foleni_ya bure ();
inaongeza RigidBody2D
#
func _on_Bala_body_entered (mwili):
ikiwa body.is_in_group ("Enemigo"): body.queue_free (); foleni_ya bure (); pata_node ("/ root / Level1"). puntaje + = 5; ikiwa body.is_in_group ("Screen"): foleni_ya bure ();
Maana ya jina: EnemySpawner.gd (EnemySpawner) -> aparición aleatoria de enemigos.
inaongeza Node
var adui = preload ("res: //Escena/Enemigo.tscn");
var aparicion = 0.8; kuuza nje var aparecer = kweli;
mchakato wa func (delta):
ikiwa (aparecer): spawn () aparecer = uwongo; mavuno (get_tree (). create_timer (aparicion), "timeout") aparecer = kweli; func spawn (): var enemigo = adui.instance (); var pos = Vector2 (); pos.x = 1632; pos.y = rand_range (32, 592); nafasi ya enemigo.set_position (pos); pata_node ("kontena"). nyongeza mtoto (enemigo)
Los nodos Enemigo y bala se encuentran en dos escenas independientes, que toman su mismo nombre, bala.tscn y enemigo.tscn.
Git con video juego terminado:
github.com/jcamiloguzman/ArduPack
Hatua ya 8: Jumuishi (Udhibiti + Videojuego)
Una vipaji kumi na viwili vya kujifurahisha video kujishughulisha na udhibiti wa nuestro, kwa sababu ya kutambuliwa kwa uunganisho wa watu, hatua hii itatekelezwa kwa utaratibu wa kudhibiti, kwa mfano wa taswira moja. nuestra computadora, para ello debemos conectar el circo con el código y los sensores montados y funcionando y nuestro juego ejecutándose, en el momento de encender el control, estará buscando un emparejamiento vía Bluetooth, lo que haremos ser en cone cone alue, not todo ha funcionado correctamente se podría disfrutar de ArduPack con su control no convencional.
Agregamos un nuevo dispositivo Bluetooth y lo buscamos con el nombre de ESP32 BLE keyboard, una vez seleccionado debería emparejarse na conectarse automáticamente.
Mtungi!
Ilipendekeza:
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino - Hatua kwa Hatua: 4 Hatua
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino | Hatua kwa Hatua: Katika mradi huu, nitatengeneza Mzunguko rahisi wa Sura ya Maegesho ya Arduino kwa kutumia Arduino UNO na Sense ya Ultrasonic ya HC-SR04. Mfumo wa tahadhari ya Gari ya Arduino ya msingi inaweza kutumika kwa Urambazaji wa Kujitegemea, Kuanzia Robot na anuwai zingine
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa Hatua (hatua 8): Hatua 8
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa hatua (hatua-8): transducers za sauti za ultrasonic L298N Dc umeme wa umeme wa adapta na pini ya kiume ya dc Arduino UNOBreadboard Jinsi hii inavyofanya kazi: Kwanza, unapakia nambari kwa Arduino Uno (ni mdhibiti mdogo aliye na dijiti na bandari za analog kubadilisha msimbo (C ++)
RC Iliyofuatiliwa Robot Kutumia Arduino - Hatua kwa Hatua: 3 Hatua
RC Iliyofuatiliwa Robot Kutumia Arduino - Hatua kwa Hatua: Haya jamani, nimerudi na chasisi nyingine nzuri ya Robot kutoka BangGood. Natumahi kuwa umepitia miradi yetu ya awali - Spinel Crux V1 - Robot Iliyodhibitiwa na Ishara, Spinel Crux L2 - Arduino Pick na Weka Robot na Silaha za Roboti na Badland Braw
Kuanza na ESP32 - Kufunga Bodi za ESP32 katika Arduino IDE - Msimbo wa Blink wa ESP32: Hatua 3
Kuanza na ESP32 | Kufunga Bodi za ESP32 katika Arduino IDE | Msimbo wa Blink wa ESP32: Katika mafundisho haya tutaona jinsi ya kuanza kufanya kazi na esp32 na jinsi ya kusanikisha bodi za esp32 kwenye Arduino IDE na tutapanga programu ya esp 32 kutumia nambari ya blink kwa kutumia ideuino ide
Nguvu ya Roboti ya Arduino ya DIY, Hatua kwa Hatua: Hatua 9
DIY Arduino Robotic Arm, hatua kwa hatua: Mafunzo haya yanakufundisha jinsi ya kujenga mkono wa Robot na wewe mwenyewe