Съдържание:
- Консумативи
- Стъпка 1: При стартиране и Round_setup функции
- Стъпка 2: Поток на играта
- Стъпка 3: Игра 1: AI противник
- Стъпка 4: Игра 2: Симулатор Мултиплейър
- Стъпка 5: Игра 3: Jacdac Мултиплейър
- Стъпка 6: Нека борбата с Ктулху започне
Видео: (Мултиплейър) Борба в GameGo с Makecode Arcade: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
GameGo е съвместима с Microsoft Makecode ретро игрална преносима конзола, разработена от TinkerGen STEM образование. Той е базиран на чип STM32F401RET6 ARM Cortex M4 и е създаден за STEM преподаватели или просто хора, които обичат да се забавляват при създаването на ретро видео игри. Можете да следвате този урок и да изпробвате играта в Makecode Arcade simulator и след това да я стартирате на GameGo.
В статиите, които публикувахме преди, вече се опитахме да направим игра на платформер и римейк на Battle City. Този път исках да използвам интерфейса на Jacdac, за да свържа две GameGo заедно и да позволя на играчите да се борят за надмощие в мултиплейър бойна игра. За съжаление, разбрах, че блоковото програмиране за мултиплейър Jacdac е в бета етап от сега и има някои грешки - все още е възможно да се правят по -прости игри, но няма късмет за моята бойна игра. И така, в тази инструкция публикувам три версии на играта (която нарекох "Cthulhu Combat":))
- версия за един играч с прост AI противник
- мултиплейър версия за игра в аркадна симулация
- мултиплейър версия с Jacdac (непълна, ще бъде актуализирана по -късно)
Консумативи
GameGo
Аркада на Microsoft Makecode
Стъпка 1: При стартиране и Round_setup функции
Ще опиша подробно кодирането на игра за един играч и след това в следващите стъпки обсъждаме как да го превърнем
а) симулатор за мултиплейър
б) Jacdac мултиплейър.
Започваме с поставянето на картата на плочки на тъмно подземие и създаването на спрайтове за играч и AI бот - и двете ще принадлежат към вида Player. Зададохме ускорението им по оста y на 600 - за да не летят след скока. Също така инициализираме снаряди от бот и плейър, преди да извикаме функцията round_setup. Функцията round_setup се грижи за подготовката на нов кръг за нас - причината, поради която я превръщаме във функция, е, че в играта може да има общо 3 кръга и искаме да избегнем повтарянето на един и същ код. В тази функция първо проверяваме дали някой от играчите има 2 победи - ако това условие се оценява като вярно, значи играта е приключила. Ако и двамата играчи имат по -малко от две победи, ние увеличаваме променливата round_num с една и поставяме играчите на техните начални места, допълваме живота им до 100 и обявяваме началото на нов кръг.
Стъпка 2: Поток на играта
В тази игра самият свят е статичен и игровият поток е обвързан с действията на играчите. В четири блока дефинираме повечето правила за игра, тези блокове са: при натиснат бутон нагоре, натиснат бутон надолу, натиснат бутон А и натиснат бутон В. Нека да разгледаме всеки от тези блокове.
натиснат бутон нагоре - логика за двоен скок. Ако натиснахме бутона за скок по -малко от 3 пъти, тогава задаваме скоростта на играча vy на - 140 (придвижване нагоре). Нашият играч е настроил ускорението на 600, така че след като скочим, скоростта ни ще намалява бързо. След като достигне 0 (не се движи по вертикална ос), отново задаваме jump_count на 0.
при натиснат бутон надолу - логика на щита за далечна атака. Ако бутонът надолу е натиснат, играчът променя изображението си на "екраниран" и задава променлива екранирана на 1.
на бутон А натиснат - стреля с снаряд. Това е само по себе си обяснително.
при натискане на бутон В - атака в меле, подобна на щита в изпълнение.
Задаваме изображения на спрайтовете на играчите и техните екранирани/атакуващи променливи на 0 на всеки 500 ms при актуализацията на играта на всеки.. ms блок. Можехме да зададем независими таймери за всяко действие, но за по -простота просто ще използваме основния цикъл за актуализиране на играта.
Условията за спечелване тук са доста лесни - когато животът на играча достигне 0, другият играч е спечелил рунда, след това съхраняваме броя на победите по играч в променлива.
И накрая, има два блока, които контролират щети от далечни атаки и щети от атака в близко движение. Във всеки един от тях проверяваме за сблъсък на спрайт и дали екранираната/атакуващата променлива за атакуващия играч е настроена на 0/1.
Стъпка 3: Игра 1: AI противник
В първата игра ще създадем сравнително прост противник на AI, който да бъде втори играч. Вътре в актуализацията на играта на всеки 200 мс първо правим проверка на разстоянието между играча и AI - ако е по -малко от 20, ние настройваме нашия AI в режим на меле, като повишаваме шанса за атака в близко положение на 30 и даваме шанс за атака на 30. Ако разстоянието е по -голямо от 20 ние задаваме шанс за атака в меле на нула (няма пинта в меле атака, тъй като играчът е твърде далеч) и преместваме шанс на 70. След като променливите за шансове за действие са зададени, продължаваме да изпълняваме тези действия с посочените шансове. Ако сами опитате да играете срещу този прост AI, ще видите, че въпреки поведението му е много просто, спечелването срещу него не е лесно - толкова често в случай на компютърно контролирани противници той печели най -вече защото може да извърши повече действия в секунда, отколкото човешки играч.
Ако сте останали при кодирането, можете да изтеглите пълния код в нашето хранилище на GitHub за този проект и да го отворите в Makecode Arcade.
Стъпка 4: Игра 2: Симулатор Мултиплейър
Вариантът на играта за двама играчи в симулация е много подобен на версията за един играч, с изключение на това, че заменяме блока за поведение на AI с четири блока, натиснати с бутон 2, със съдържание вътре в тези блокове, отразяващи съдържанието на същите блокове за играч 1. Имайте погледнете екранната снимка, за да добиете по -добра представа какви промени трябва да направите. Отделно от това, ние също трябва да добавим ход плейър 2 с бутони, включени в стартовата функция и да променим крайния екран за игра на две игра на WIN вместо LOSE.
Стъпка 5: Игра 3: Jacdac Мултиплейър
Намерих общностна реализация на Jacdac мултиплейър с Makecode аркадни блокове в тази тема на форума
forum.makecode.com/t/new-extension-real-mu…
Тествах примерната игра там (Space Invaders) и установих, че работи много добре. За съжаление, механиката на играта на Cthulhu Combat използва много променливи и изглежда, че истинските мултиплейър разширения все още не поддържат синхронизиращи променливи - така че го накарах да работи, действията на двамата играчи се синхронизират на различни устройства, но животът не може не пада на устройството на опонентите. Също така има нещо нередно в механиката на снарядите, изглежда, че снарядите не изчезват след удар в стената, което води до загуба на играта след изстрелване на около 10 снаряда.
Можете да изпробвате мултиплейъра, като изтеглите-p.webp
Стъпка 6: Нека борбата с Ктулху започне
Има още много подобрения, които могат да бъдат направени в нашата проста бойна игра - например можете да добавите по -сложно поведение на AI или да използвате разширение, за да добавите комбинации от бутони и/или анимационни последователности. Успех и забавление, докато програмирате собствените си игри с GameGo и Makecode Arcade.
Ако все пак направите подобрена версия на играта, споделете я в коментарите по -долу! За повече информация относно GameGo и друг хардуер за създатели и преподаватели по STEM посетете нашия уебсайт https://tinkergen.com/ и се абонирайте за нашия бюлетин.
Препоръчано:
Как да направите мултиплейър игра с Arduino контролери: 6 стъпки
Как да си направим мултиплейър игра с Arduino контролери: Замисляли ли сте се как разработчиците на игри създават невероятни игри, които хората от цял свят обичат да играят? Е, днес ще ви дам само малък намек за това, като направя малка мултиплейър игра, която ще се контролира от контролер на Arduino
Платформер с безкрайни нива в GameGo с Makecode Arcade: 5 стъпки (със снимки)
Платформер с безкрайни нива в GameGo с Makecode Arcade: GameGo е съвместима с Microsoft Makecode ретро игрална преносима конзола, разработена от TinkerGen STEM образование. Той е базиран на чип STM32F401RET6 ARM Cortex M4 и е създаден за STEM преподаватели или просто хора, които обичат да се забавляват при създаването на ретро видео игра
Квадрокоптери за борба с дронове, известни като истинско изживяване на борба с кучета: 8 стъпки (със снимки)
Квадрокоптери за бойни дронове, известни като истинско изживяване на борба с кучета: Добре дошли в моята " ible " #37 Трябва да признаем, че настоящите бойни дронове на пазара са малко объркани. Много е трудно да се разбере кой печели и кой губи. Когато един дрон се спусне, другият го следва (блъска се един в друг
Battle City Remake на GameGo с Makecode Arcade: 4 стъпки (със снимки)
Battle City Remake на GameGo с Makecode Arcade: GameGo е съвместима с Microsoft Makecode ретро игрална преносима конзола, разработена от TinkerGen STEM образование. Той е базиран на чип STM32F401RET6 ARM Cortex M4 и е създаден за STEM преподаватели или просто хора, които обичат да се забавляват при създаването на ретро видео
Мултиплейър с удар на бутон: 4 стъпки
Whack a Button Multiplayer: Игра като Whack-a-Mole. Използване на светодиоди и бутони. Има 2 режима: -Один играч-Мултиплейър в режим за един играч, има 3 нива: LEVEL_1: 1 диод за 1 секундаLEVEL_2: 2 диода за 1 секундаLEVEL_3: 2 диода за 0,7 секунди И за многократното