Агуулгын хүснэгт:

Con ArduPack хуваалт (Videojuego2D Godot3 + Arduino ESP32): 8 алхам
Con ArduPack хуваалт (Videojuego2D Godot3 + Arduino ESP32): 8 алхам

Видео: Con ArduPack хуваалт (Videojuego2D Godot3 + Arduino ESP32): 8 алхам

Видео: Con ArduPack хуваалт (Videojuego2D Godot3 + Arduino ESP32): 8 алхам
Видео: Moleman 2 - Demoscene - The Art of the Algorithms (2012) 2024, Арваннэгдүгээр
Anonim
Con ArduPack хуваалт (Videojuego2D Godot3 + Arduino ESP32)
Con ArduPack хуваалт (Videojuego2D Godot3 + Arduino ESP32)

Video Protectipo de unVideoJuego нь зөвшөөрөл өгөхөөс өөр аргагүй байдаг бөгөөд үүнийг хянах боломжгүй байдаг.

-Хуан Камило Гузман-Себастьян Кармона-Хуан Диего Бустаманте-Жонатан Родригес

Хангамж

WEMOS LOLIN 32.

Dos HC SR 04 -ийг мэдэрдэг.

Pantalla LED 1920x1080, 24, 24MK430H.

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

Arduino IDE (хяналтын функцууд)

Piskel (Төгсгөлд нь хувь хүн). Годот (Хөтөлбөрийн дель Видо тоглоом).

Номын сан: pySerial (ESP32 програм хангамжийн програм хангамж) NewPing_v1.9.1 (өгөгдөл дамжуулах зориулалттай) самбар

Алхам 1: Видео тойм Y Тоглоомын дизайны баримт бичиг

Image
Image

Тоглоомын дизайны баримт бичиг

Алхам 2: Montaje Del Circuito

Subir Codigo Del Funcionamiento Al Arduino
Subir Codigo Del Funcionamiento Al Arduino

Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах Deos conectar los dos sensors a la placa Wemos Lolin32 como se aprecia en la imagen: Utilizamos 5v y el GND para la alimentación, cada sensor posee dos pines, uno echo y un trigger, estos pueden ser cualesquiera pero en la imagen especificamos los que. 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.

Алхам 3: Subir Código Del Funcionamiento Al Arduino

Subir Codigo Del Funcionamiento Al Arduino
Subir Codigo Del Funcionamiento Al Arduino

Арилжааны IDE y en Sketch номын сан, номын сан оруулах,. Zip номын сан нэмэх.. buscamos y agregamos la librerías proporcionadas.

NewPing

BleKeyboard

Тэмдэглэл нь IDE -ийг ашиглах боломжийг олгодог.

-Python програмыг татаж авах, програмыг архивт оруулах, архивт оруулах журам, Python -ийг ашиглах, Python -ийг ашиглах, Python -ийн эх сурвалжийг бичих: Python -m pip суулгах pipdo. Arduino IDE -ийг ашиглахын тулд програмыг засах боломжтой

Хяналтын товчлуурыг дарж, архивын хянагчийг сонгоно уу.

Хяналтын мэдрэгч, мэдрэгч, када мэдрэгч, АНУ -ын номын сангийн BleKeyboard -ийн симуляцийн хэлбэрүүд, араба, изкуерда, дереча

Алхам 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

Хувилбарууд, обьектууд, бургуй гэх мэт олон төрлийн програмууд байдаг.

Эндээс үзэхэд хамгийн их ашиг тустай байх болно (https://www.piskelapp.com) нь хянаж болно, хувийн хяналттай, редакторыг хамгаалагчаар ажиллуулдаг (para зөвшөөрөл авах ил тод байдал).

Алхам 5: Лос Спрайт импортлох нь Godot Engine Para La Implementacion Del Vídeo Juego

Импорт Лос Спрайтс Годот хөдөлгүүрийг ашиглах нь Del Vídeo Juego
Импорт Лос Спрайтс Годот хөдөлгүүрийг ашиглах нь Del Vídeo Juego
Импорт Лос Спрайтс Годот хөдөлгүүрийг ашиглах нь Del Vídeo Juego
Импорт Лос Спрайтс Годот хөдөлгүүрийг ашиглах нь Del Vídeo Juego

Видео бичлэгийг үзэхийн тулд импорт хийх боломжтой болно. Лос -спрайт, имижо, фонда гэх мэт олон төрлийн файлуудыг импортоор оруулах боломжтой.

Алхам 6: De Los Elementos En Pantalla Y Configuración Del Proyecto

Дес Лос Элементос Дан Профайлын Тохиргоо
Дес Лос Элементос Дан Профайлын Тохиргоо

Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах De esta manera se agregan cada uno de los elementos al entorno para 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 click en el nodo y damos click en añadir hijo..

Тэмдэглэл: Algunas configuraciones de los nodos son necesarios, para el correcto funcionamiento, como verificar que los nodos tienen conectados correctamente los eventos (En este caso los eventos que implican a la bala, el enemigo y al jugador), arespublika los grupos: Дэлгэцийн дэлгэц, тохиргоог хийх нь 1600x600 хэмжээтэй, 1600x600 хэмжээтэй, дэлгэцийн тохиргоо юм. aprecian en la imagen para poder ser accedidos correctamente, también podemos definilos los controles que se asignan a la altura y ángulo de disparo del personaje en la ventana Proyecto> ajustes del proyecto> mapas de entrada, aquí podemos definitos las utlasar quaremos defecto tenemos las flechas (Arriba y abajo para altura y izquierda y derecha para el angulo).

Алхам 7: Creación De Los Script

Creación De Los скриптүүд
Creación De Los скриптүүд
Creación De Los скриптүүд
Creación De Los скриптүүд
Creación De Los скриптүүд
Creación De Los скриптүүд

Tendremos que crear los scripts de movimiento de personaje, enemigos, скриптүүд де диспарос, пунтаже, enemigos derrotados, аудио y la detección del fin del juego. Goodot хөдөлгүүр нь програм хангамжийн програмууд дээр C# o usar su propio lenguaje програмыг ашигладаг. GD.

Скриптийг тасралтгүй үргэлжлүүлэх:

"nombreScript.cs (NombreNodo) -> тайлбарлах"

Скриптийг ноотоор хийхгүй бол, дарж дарна уу.

Скриптүүд нь хяналт шалгалтын төгсгөлд байдаг: infinite_bg.cs (Түвшин1) -> Мэдээлэл дамжуулах, тооцоолох, тооцоолох үйл явц.

Godot ашиглах; системийг ашиглах;

public class infinite_bg: Зангилаа

{нийтийн давхар puntaje = 0; public bool vivo = үнэн; хувийн Sprite суурь = шинэ Sprite [5]; хувийн хөвөгч bg_width = 1598f; хувийн хөвөх move_speed = 400f; хувийн хөвөгч min_X = -1300f; // Зангилааг үзэгдлийн модонд анх удаа ороход дууддаг. public override void _Ready () {for (int i = 1; i <6; i ++) {backgrounds [i-1] = GetNode ("Background"+i); }}

// Хүрээ бүрийг дуудсан. 'дельта' нь өмнөх хүрээнээс хойш өнгөрсөн хугацаа юм.

public override void _Process (float delta) {for (int i = 0; i <backgrounds. Length; i ++) {Vector2 temp = backgrounds . GetPosition (); temp.x -= хөдлөх_хүрээ * дельта; if (temp.x <= min_X) {temp.x += bg_width * дэвсгэр. Урт; } дэвсгэр . SetPosition (temp); } if (vivo) {puntaje += 0.01; Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = шинэ Vector2 (0, 0); BotonReinicio. Scale = escala; Puntaje шошго = GetNode ("CanvasLayer/puntaje"); Puntaje. Text = Math. Round (puntaje, 0). ToString (); } өөр {Area2D BotonReinicio = GetNode ("BotonReinicio"); Vector2 escala = шинэ Vector2 (1, 1); BotonReinicio. Scale = escala; }

}

}

Reinicio: botonReinicio.gd (botonReinicio) -> Хяналтын функцууд нь маш чухал юм.

Area2D -ийг өргөжүүлнэ

func _on_Area2D_input_event (харах цонх, үйл явдал, хэлбэр_идx):

хэрэв үйл явдал бол InputEventMouseButton: if event.is_pressed (): get_tree (). reload_current_scene ()

Жугадор: jugador.gd (Жугадор) -> Дэлгэрэнгүй үзэх.

KinematicBody2D -ийг өргөжүүлдэг

var motion = Vector2 ()

func _ready ():

хэвлэх (self.get_path ()); func _physics_process (дельта): if (position.y = 570): motion.y = -150 өөр: if (Input.is_action_pressed ("ui_up")): motion.y += -20 өөр: if (Input.is_action_pressed ("ui_down"))): motion.y+= 20 хөдөлгөөн = move_and_slide (хөдөлгөөн)

Диспаро: Диспаро_ Бразо.gd (Бразо) -> энэ програмыг ашиглах нь маш чухал юм.

Area2D -ийг өргөжүүлнэ

var bala = урьдчилан ачаалах ("res: //Escena/bala.tscn");

var disparo = үнэн; экспортлох var velocidad = 1000; экспортын var харьцаа = 0.4;

# Хүрээ болгон руу залгасан. 'дельта' нь өмнөх хүрээнээс хойш өнгөрсөн хугацаа юм.

func _process (дельта): хэрэв rotation_degrees> -40: Input.is_action_pressed ("ui_left"): rotation_degrees += -5 эргэх_degrees <45: хэрэв Input.is_action_pressed ("ui_right"): rotation_degrees += 5 бол (disparo): var bala_creada = bala.instance (); bala_creada.position = get_global_position (); bala_creada.rotation_degrees = эргэлтийн_зэрэг; bala_creada.apply_impulse (Vector2 (), Vector2 (velocidad, 0). эргэх (эргүүлэх)) get_tree (). get_root (). add_child (bala_creada); диспаро = худал; өгөөж (get_tree (). create_timer (харьцаа), "timeout") disparo = үнэн;

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

KinematicBody2D -ийг өргөжүүлдэг

#Тодорхойлолт

var velocidad = -500; func _process (дельта): move_and_slide (Vector2 (velocidad, 0)) дамжуулалт

func _on_Area2D_body_entered (body):

хэрэв body.is_in_group ("Жугадор"): body.queue_free (); get_node ("/root/Level1"). vivo = худал; хэрэв body.is_in_group ("Дэлгэц"): queue_free ();

RigidBody2D -ийг өргөжүүлдэг

#

func _on_Bala_body_entered (body):

хэрэв body.is_in_group ("Enemigo"): body.queue_free (); queue_free (); get_node ("/root/Level1"). puntaje += 5; хэрэв body.is_in_group ("Дэлгэц"): queue_free ();

Enemigos: EnemySpawner.gd (EnemySpawner)-> aparición aleatoria de enemigos.

зангилааг сунгадаг

var дайсан = урьдчилан ачаалах ("res: //Escena/Enemigo.tscn");

var aparicion = 0.8; export var aparecer = үнэн;

func _process (дельта):

if (aparecer): spawn () aparecer = false; өгөөж (get_tree (). create_timer (aparicion), "timeout") aparecer = үнэн; func spawn (): var enemigo = dushman.instance (); var pos = Vector2 (); pos.x = 1632; pos.y = rand_range (32, 592); enemigo.set_position (pos); get_node ("контейнер"). add_child (enemigo)

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

Git con видео бичлэгийг үзэх:

github.com/jcamiloguzman/ArduPack

Алхам 8: Integración (Control + Videojuego)

Интеграци (Хяналт + Видео бичлэг)
Интеграци (Хяналт + Видео бичлэг)
Интеграци (Хяналт + Видео бичлэг)
Интеграци (Хяналт + Видео бичлэг)
Интеграци (Хяналт + Видео бичлэг)
Интеграци (Хяналт + Видео бичлэг)

Нэмэлт засварлах функцууд нь видео хяналтын систем, хяналт, шалгалт, хяналт, шалгалт, хяналт шалгалт, хяналт шалгалт, хяналт шалгалт юм. nuestra computadora, para ello debemos conectar el circuito con el código y los sensors montados y funcionando y nuestro juego ejecutándose, en el momento de encender el control, estará buscando un emparejamiento vía Bluetooth, lo que haremo conar con compartar compartar. Энэ тохиолдолд ArduPack -ийг хянах нь уламжлалт биш юм.

Bluetooth, ESP32 BLE гарын товчлуурууд нь автоматаар тоноглогдсон байдаг.

Жугар!

Зөвлөмж болгож буй: