Мазмұны:

ArduPack бөлу (Videojuego2D Godot3 + Arduino ESP32): 8 қадам
ArduPack бөлу (Videojuego2D Godot3 + Arduino ESP32): 8 қадам

Бейне: ArduPack бөлу (Videojuego2D Godot3 + Arduino ESP32): 8 қадам

Бейне: ArduPack бөлу (Videojuego2D Godot3 + Arduino ESP32): 8 қадам
Бейне: Голубая стрела (1958) фильм 2024, Қараша
Anonim
ArduPack бөлімі (Videojuego2D Godot3 + Arduino ESP32)
ArduPack бөлімі (Videojuego2D Godot3 + Arduino ESP32)

Бейнежазбаның протоколы және рұқсаты әр түрлі болуы мүмкін, бұл ArduPack бағдарламалық жасақтамасының кітапхана мен бағдарламалық жасақтамасының конвенционалдығы жоқ.

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

Жабдықтар

WEMOS LOLIN 32.

Дос сенсоры HC SR 04.

Pantalla жарықдиодты 1920x1080, 24, 24MK430H.

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

Arduino IDE (бақылау функциялары)

Пискель (Para los sprites y personajes). Годот (Бағдарламаның дель -видео бағдарламасы).

Кітапханалар: pySerial (ESP32 бағдарламасы)

1 -қадам: Y Ойынның конструкторлық құжаты

Image
Image

Бұл ойын жобалау құжаты

2 -қадам: Montaje Del Circuito

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

Wemos Lolin32 сенсорлы түрде сенсорлы түрде жұмыс істей алады: ол 5 -ші деңгейдегі GND -ді қолдана алады, сенсорлық қарағайдың позасы, қарағайдың жаңғырығы, триггер, есту қабілеті бар. пайдаланушылардың жеке мәліметтері бойынша, сіз жеке мәліметтерге қол жеткізе аласыз.

3 -қадам: Subir Código Del Funcionamiento Al Arduino

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

Кітапханаға кітапхана қосылады,. Zip кітапханасы кіреді.. buscamos және agregamos la librerías proporcionadas.

NewPing

BleKeyboard

IDE usaremos pyserial қолданбасы бойынша ақпаратты түзетуге болады.

-Python -дың бірінші нұсқасын жүктеу, PIP -тің архивтік нұсқасын жүктеу, бұл Python -дің бір нұсқасы, Python -дің қол жетімділігі, Python -дың келесі нұсқасы: Python -m pip pip -ге орнату. Arduino IDE бағдарламасының негізгі функциялары

Басқару функциялары басқару функцияларын басқарады, архив контроллері.ino сайтына енеді.

Сенсорлар сенсорлар мен датчиктердің сенсорлары, BleKeyboard және 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), егер сіз жеке бағдарламаны басқара алатын болсаңыз, редактордың рұқсаты бар файлдарды өңдеуге рұқсат етіледі (https://www.piskelapp.com).

5 -қадам: Los Sprites импорты Godot қозғалтқышы Para La Implementacion Del Vídeo Juego

Импорт Los Sprites Godot қозғалтқышы Del Vídeo Juego
Импорт Los Sprites Godot қозғалтқышы Del Vídeo Juego
Импорт Los Sprites Godot қозғалтқышы Del Vídeo Juego
Импорт Los Sprites Godot қозғалтқышы Del Vídeo Juego

Видеожазбалар жасалынған кезде, сіз өзіңізге белгілі бір бағдарламаны жасай аласыз. Түсіндіру бойынша, спрайттар, спецификалар, суреттер, суреттер, имидждер, фондо және т.

6 -қадам: De Los Elementos En Pantalla Y конфигурациясы Del Proyecto

Дес -Лос -Элемент ережелері: Конфигурация Del Proyecto
Дес -Лос -Элемент ережелері: Конфигурация Del Proyecto

Ақпараттық ресурстар біртіндеп жойылады, олар бір -бірімен байланыс орнатпайды (Como el caso del jugador con sprite y collider más su brazo) демонстрацияны басу керек..

Ескертпе: Algunas configuraciones de los nodos sones conios de la de los nodos concadados conectados conectados conectados los eventos (ең маңызды оқиғалардың бірі), ең жоғары деңгейдегі ойындар, бір топ ойындар: Экранның конфигурациясы - бұл 1600x600 өлшеміндегі экранның конфигурациясы, экранның конфигурациясы, ол 1600x600 көлемінде, сонымен қатар олардың әрқайсысы жеке басын анықтайды. aprecian en la imagen para comper sered accedidos correctamente, толық анықтаулардың анықталуы сіздің жеке бақылауыңыздың маңыздылығы болып табылады, бұл сіздің жеке тәжірибеңізге сәйкес келеді. ақауды жою (ақылдылықты жоюға мүмкіндік береді).

7 -қадам: Creación De Los Scripts

Creación De Los сценарийлері
Creación De Los сценарийлері
Creación De Los сценарийлері
Creación De Los сценарийлері
Creación De Los сценарийлері
Creación De Los сценарийлері

Сценарийлер жеке тұлғаларға, клизмаларға, сценарийлерге, пунтаждарға, клизмаларға, аудиожазбаларға және аудиожазбаларға арналған. Goodot қозғалтқышы бағдарламалық жасақтама үшін C# бағдарламаларын қолдайды. GD.

Үздіксіз сценарийлердің үздіксіз орындалуы:

«nombreScript.cs (NombreNodo) -> сипаттау»

Сценарий бойынша бір немесе бірнеше сценарийлерді орындауға болады, бұл жағдайда сіз сценарийді басуыңыз керек.

Бақылау сценарийлері: infinite_bg.cs (Деңгей 1) -> Қолданбалар мен есептер, есеп айырысу және есептеу әдістері.

Godot жүйесін пайдалану;

infinite_bg қоғамдық класы: түйін

{көпшілікке арналған қос пунтаже = 0; public bool vivo = true; жеке Sprite фондары = жаңа Sprite [5]; жеке қалқыма bg_width = 1598f; жеке float 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 -= move_speed * дельта; if (temp.x <= min_X) {temp.x += bg_width * backgrounds. Length; } фон . 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 (); } else {Area2D BotonReinicio = GetNode («BotonReinicio»); Vector2 escala = жаңа Vector2 (1, 1); BotonReinicio. Scale = escala; }

}

}

Reinicio: botonReinicio.gd (botonReinicio) -> Бақылау функциясын орындаңыз.

2D аумағын кеңейтеді

func _on_Area2D_input_event (қарау аймағы, оқиға, пішін_idx):

егер оқиға InputEventMouseButton болса: if event.is_pressed (): get_tree (). reload_current_scene ()

Jugador: jugador.gd (Jugador) -> Контактілер және қозғалыстар.

KinematicBody2D кеңейтеді

var motion = Vector2 ()

func _ready ():

басып шығару (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 қозғалыс = move_and_slide (қозғалыс)

Диспаро: Диспаро_Бразо.gd (Brazo) -> уақытты өзгертуге мүмкіндік береді.

2D аумағын кеңейтеді

var bala = алдын ала жүктеу («res: //Escena/bala.tscn»);

var disparo = ақиқат; экспорттау var velocidad = 1000; экспорттық коэффициент = 0,4;

# Әр кадрға қоңырау шалды. 'дельта' - алдыңғы кадрдан бері өткен уақыт.

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 = айналу_әрежелері; bala_creada.apply_impulse (Vector2 (), Vector2 (velocidad, 0).otroted (ротация)) get_tree (). get_root (). add_child (bala_creada); диспаро = жалған; кірістілік (get_tree (). create_timer (қатынас), «күту уақыты») disparo = true;

Соқтығысқандар: enemigo.gd (Enemigo) y bala.gd (Bala) -> verificar y actuar ante una colisión (Enemigo y бала) (Enemigo y jugador).

KinematicBody2D кеңейтеді

#Анықтама

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

func _on_Area2D_body_entered (дене):

егер body.is_in_group («Jugador»): body.queue_free (); get_node («/root/Level1»). vivo = жалған; егер body.is_in_group («Экран»): queue_free ();

RigidBody2D кеңейтеді

#

func _on_Bala_body_entered (дене):

егер body.is_in_group («Enemigo»): body.queue_free (); queue_free (); get_node («/root/Level1»). puntaje += 5; егер body.is_in_group («Экран»): queue_free ();

EnemyS: EnemySpawner.gd (EnemySpawner)-> apecion aleatoria de enemigos.

түйінді кеңейтеді

var душман = алдын ала жүктеу («res: //Escena/Enemigo.tscn»);

var aparicion = 0.8; export var aparecer = true;

func _process (дельта):

if (aparecer): spawn () aparecer = false; кірістілік (get_tree (). create_timer (aparicion), «күту уақыты») aparecer = true; 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 (клизма)

Логикалық түйіндер тәуелсіздікке қол жеткізуге мүмкіндік береді, бұл сіздің ата -анаңызға, балаңызға және сіздің тіліңізге жауап береді.

Бейнежазбаның соңғы нұсқасы:

github.com/jcamiloguzman/ArduPack

8 -қадам: интеграция (Control + Videojuego)

Интеграция (басқару + бейнежуего)
Интеграция (басқару + бейнежуего)
Интеграция (басқару + бейнежуего)
Интеграция (басқару + бейнежуего)
Интеграция (басқару + бейнежуего)
Интеграция (басқару + бейнежуего)

Түзету функциясы видео функцияларды бақылау мен бақылауды жүзеге асырады, сонымен қатар бақылауды жүзеге асырады, сонымен қатар бақылауды жүзеге асырады. nuestra computadora, a elle debemos conectar el con código y los sensors montados y funcionando yuestro juego ejecutándose, bluetooth -дің бақылауы, Bluetooth -мен байланыс орнатылған кезде, сенсорлық байланыс орнатылған. бұл жағдайда ArduPack басқарудың конвенциясыз реттелуі мүмкін болатын функцияларды түзетеді.

Бұл ESP32 BLE пернетақтасы үшін Bluetooth -дың бірде -бір белгісі болып табылады, сондықтан олар автоматты түрде орнатылады.

Құмар!

Ұсынылған: