Мазмұны:
- Жабдықтар
- 1 -қадам: Y Ойынның конструкторлық құжаты
- 2 -қадам: Montaje Del Circuito
- 3 -қадам: Subir Código Del Funcionamiento Al Arduino
- 4 -қадам: Creación De Sprites Y Personajes
- 5 -қадам: Los Sprites импорты Godot қозғалтқышы Para La Implementacion Del Vídeo Juego
- 6 -қадам: De Los Elementos En Pantalla Y конфигурациясы Del Proyecto
- 7 -қадам: Creación De Los Scripts
- 8 -қадам: интеграция (Control + Videojuego)
Бейне: ArduPack бөлу (Videojuego2D Godot3 + Arduino ESP32): 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бейнежазбаның протоколы және рұқсаты әр түрлі болуы мүмкін, бұл 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 Ойынның конструкторлық құжаты
Бұл ойын жобалау құжаты
2 -қадам: Montaje Del Circuito
Wemos Lolin32 сенсорлы түрде сенсорлы түрде жұмыс істей алады: ол 5 -ші деңгейдегі GND -ді қолдана алады, сенсорлық қарағайдың позасы, қарағайдың жаңғырығы, триггер, есту қабілеті бар. пайдаланушылардың жеке мәліметтері бойынша, сіз жеке мәліметтерге қол жеткізе аласыз.
3 -қадам: Subir Código 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
Деректерді шығаруда жеке тұлғалар, адамдар, клизмалар және т.
Бұл ең маңыздысы (https://www.piskelapp.com), егер сіз жеке бағдарламаны басқара алатын болсаңыз, редактордың рұқсаты бар файлдарды өңдеуге рұқсат етіледі (https://www.piskelapp.com).
5 -қадам: Los Sprites импорты Godot қозғалтқышы Para La Implementacion Del Vídeo Juego
Видеожазбалар жасалынған кезде, сіз өзіңізге белгілі бір бағдарламаны жасай аласыз. Түсіндіру бойынша, спрайттар, спецификалар, суреттер, суреттер, имидждер, фондо және т.
6 -қадам: De Los Elementos En Pantalla Y конфигурациясы 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
Сценарийлер жеке тұлғаларға, клизмаларға, сценарийлерге, пунтаждарға, клизмаларға, аудиожазбаларға және аудиожазбаларға арналған. 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 -дың бірде -бір белгісі болып табылады, сондықтан олар автоматты түрде орнатылады.
Құмар!
Ұсынылған:
Бөлу Кон Эль Ардуино Промини: 3 қадам
Байланысты бөлу: Араластыру бағдарламалары бір мезгілде пайдаланылады, бұл олардың тұрақты интеграциялануы, сонымен қатар, сіздің тілдеріңіз, тілектеріңіз бен тілектеріңіз үшін де қажет. комуникарло
Роботты шығару және қуатты бөлу: 6 қадам
Роботтардың шығуы мен қуатын бөлу: сыртта қолдануға арналған робот құрастыру сериясындағы тағы біреуі. Бұл тарауда біз сору желдеткішін орнатамыз, батареяға сөрелер жасаймыз, моторды басқару/бастапқы Raspberry Pi және қуат түрлендіргіштерін. Мақсат - жұмысты толықтай орындауға арналған автономды робот
Arduino Nano көбейту/бөлу белгілері: 9 қадам (суреттермен)
Arduino Nano мультипликациясы/бөлу белгілері: Arduino Nano мультипликациясы/бөлу белгілері бастауыш сыныптарда оқытудың тамаша құралы бола алады, себебі оның дизайны көбейтудің математикалық операцияларындағы белгілердің комбинациясының нәтижесін көрсетеді деп есептелген. бөлу
RC бөлу (4 жоба): 4 қадам
TC Aparting RC (4 -жоба): Бірінші қадам үшін сіз көре алатын барлық бұрандаларды алып тастауыңыз керек. Мен жасырынған жұптар бар, оларды артқы дөңгелектердің астынан табуға тура келді. Беріліс қорабында екі бұранда жоқ, ал екеуі бұрап алынған
Audacity -те моно тректі стереоға бөлу: 5 қадам
Audacity -те моно тректі стереоға бөлу: Audacity -те стерео ретінде көргіңіз келетін моно аудио трек бар ма? Содан кейін моно дыбыстық тректерді стереоға қалай бөлуге болатынын білу үшін оқыңыз