Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Видео тойм Y Тоглоомын дизайны баримт бичиг
- Алхам 2: Montaje Del Circuito
- Алхам 3: Subir Código Del Funcionamiento Al Arduino
- Алхам 4: Creación De Sprites Y Personajes
- Алхам 5: Лос Спрайт импортлох нь Godot Engine Para La Implementacion Del Vídeo Juego
- Алхам 6: De Los Elementos En Pantalla Y Configuración Del Proyecto
- Алхам 7: Creación De Los Script
- Алхам 8: Integración (Control + Videojuego)
Видео: Con ArduPack хуваалт (Videojuego2D Godot3 + Arduino ESP32): 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
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 Тоглоомын дизайны баримт бичиг
Тоглоомын дизайны баримт бичиг
Алхам 2: Montaje Del Circuito
Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах 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
Арилжааны 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
Хувилбарууд, обьектууд, бургуй гэх мэт олон төрлийн програмууд байдаг.
Эндээс үзэхэд хамгийн их ашиг тустай байх болно (https://www.piskelapp.com) нь хянаж болно, хувийн хяналттай, редакторыг хамгаалагчаар ажиллуулдаг (para зөвшөөрөл авах ил тод байдал).
Алхам 5: Лос Спрайт импортлох нь Godot Engine Para La Implementacion 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
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 гарын товчлуурууд нь автоматаар тоноглогдсон байдаг.
Жугар!
Зөвлөмж болгож буй:
LoRa Arduino, Esp8266 эсвэл Esp32: 15 алхам бүхий бага зардалтай E32 (sx1278/sx1276) төхөөрөмж бүхий 3 км -ээс 8 км хүртэлх утасгүй холбоо: 15 алхам
LoRa Arduino, Esp8266 эсвэл Esp32 -д зориулсан бага өртөгтэй E32 (sx1278/sx1276) төхөөрөмж бүхий 3Km -аас 8Km хүртэлх утасгүй холбоо: Би Semtech цувралын LoRa төхөөрөмж дээр суурилсан EBYTE E32 -ийг удирдах номын сан, маш хүчирхэг, энгийн бөгөөд хямд төхөөрөмжтэй. 3км -ийн хувилбар энд, 8км -ийн хувилбар энд байна Тэд 3000м -ээс 8000м -ийн зайд ажиллах боломжтой бөгөөд тэдгээр нь маш олон онцлог шинж чанартай байдаг
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
ESP32 -ийг ашиглаж эхлэх нь - Arduino IDE дээр ESP32 хавтанг суулгах - ESP32 анивчих код: 3 алхам
ESP32 -ийг ашиглаж эхлэх нь | Arduino IDE дээр ESP32 самбарыг суулгах | ESP32 Blink Code: Энэхүү зааварчилгаанд бид esp32 -тэй хэрхэн ажиллах, esp32 самбарыг Arduino IDE -д хэрхэн суулгах, мөн esp 32 -ийг arduino ide ашиглан анивчих кодыг ажиллуулах програмчлах болно
DIY Arduino робот гар, Алхам алхам: 9 алхам
DIY Arduino робот гар, алхам алхмаар: Эдгээр заавар нь танд робот гарыг хэрхэн яаж хийхийг зааж өгөх болно
Олон хуваалт бүхий USB ThumbDrive: 5 алхам
Multi Partitioned USB ThumbDrive: Би Линуксд үнэнч хэрэглэгч бөгөөд Windows-ийг зөвхөн надад хэрэгтэй үед л ашигладаг бөгөөд Mac-ээс зайлсхийх хэрэгтэй. Би Windows-ийн хэрэглэгчдийг миний эрхий хурууны нэгжийн агуулгыг унших, эсвэл харахыг зогсоохын тулд дунд зэргийн хялбархан хакердсан. Энэ бүхэн аав дээр үндэслэсэн болно