Съдържание:

Battle City Remake на GameGo с Makecode Arcade: 4 стъпки (със снимки)
Battle City Remake на GameGo с Makecode Arcade: 4 стъпки (със снимки)

Видео: Battle City Remake на GameGo с Makecode Arcade: 4 стъпки (със снимки)

Видео: Battle City Remake на GameGo с Makecode Arcade: 4 стъпки (със снимки)
Видео: Final Combat (Battle City remake) - 8 bit game 2024, Ноември
Anonim
Image
Image

GameGo е съвместима с Microsoft Makecode ретро игрална преносима конзола, разработена от TinkerGen STEM образование. Той е базиран на чип STM32F401RET6 ARM Cortex M4 и е предназначен за STEM преподаватели или просто хора, които обичат да се забавляват при създаването на ретро видео игри. Можете да следвате този урок и да опитате играта в Makecode Arcade simulator и след това да я стартирате на GameGo.

В тази статия ще се опитаме да пресъздадем класическа игра за стрелба с танкове Battle City, първоначално произведена и публикувана през 1985 г. от Namco за Nintendo Entertainment System (NES). В оригиналната игра играчът контролира танк и стреля с снаряди, за да унищожи вражеските танкове. Вражеските танкове се опитват да унищожат базата на играча, както и самия танк на играча. Ще направим някои промени в играта, за да приспособим по -добре практиките на блоково програмиране с GameGo, но нашият римейк ще запази много прилики с оригиналната игра. Нека да започнем!

Консумативи

GameGo

Стъпка 1: Нашето Алтер -его - Жълт резервоар

Нашето Алтер -его - Жълт танк
Нашето Алтер -его - Жълт танк

Отворете Makecode Arcade на адрес https://arcade.makecode.com/ и кликнете върху нов проект. Ще започнем да правим нашето алтер-его жълт резервоар. Изберете Set mySprite to sprite of kind player block и нарисувайте жълт резервоар, обърнат нагоре като наш стартов спрайт, поставете този блок вътре в стартовия блок. Добавяне на ход mySprite с бутони. Сега имаме резервоар, който можем да преместваме с бутони в симулация! Страхотно, но винаги е с една и съща посока, дори когато се движим надолу или настрани …

За да коригираме това, нека добавим още четири блока, по един за всеки бутон за посока. Създайте нова променлива, наречена посока - ще запазим посоката на движение на нашия резервоар в нея, 100 ще съответства на надолу, -100 ще съответства на нагоре, 200 за дясно и -200 за ляво. Защо тези числа? Ще видите по -късно, когато добавим снарядите, че нашият танк ще стреля. Логиката във всеки четири от тези блокове е много проста - проверяваме дали новата посока (от натискане на бутон) е същата като посоката преди. Ако е така, по принцип не правим никакви промени. Ако това не е така, ние променяме спрайта на резервоара и в случай на посока надолу и наляво обръщаме изображението на спрайта, за да избегнем изтеглянето на допълнителни спрайтове. Накрая нека да присвоим началната стойност на посоката на -100 (резервоар нагоре), тъй като по този начин нашият танк започва играта. Опитайте да преместите жълтия резервоар сега, спрайтът ще се промени според посоката на движение сега! Отлично, сега нека добавим куршуми.

Ще изстреляме куршуми със зададен снаряд към снаряд (нарисувайте малък сребърен квадрат за този спрайт) от mySprite с vx vy скорости. Вътре в бутона за включване A натиснат блок, трябва да проверим за абсолютна стойност на посоката, за да видим дали жълтият резервоар е обърнат нагоре/надолу наляво/надясно. След това пристъпваме към изстрелване на снаряда с променливата скорост на посоката -затова имахме -100/100/-200/200 за стойности на посоката.

Сега имаме жълт танк, който може да стреля с снаряди и да се движи. Ако жълтите симулирани танкове можеха да се чувстват, със сигурност биха се почувствали самотни в тази празна празнота без врагове и неща за вършене. Така че, за следващата стъпка нека добавим врагове, за да мине времето.

Стъпка 2: Изведете враговете

Изведете враговете
Изведете враговете
Изведете враговете
Изведете враговете

Ще започнем тази стъпка, като създадем куп нови променливи: два масива (един за задържане на вражески спрайтове и друг за задържане на вражески посоки), времева променлива за съхраняване на периода от време на хвърляне на хайвера, брой врагове за съхраняване на максимален брой врагове по същото време. Ще добавим и два снаряда (снаряд и вражески снаряд), стрелящи по стартовия блок - това ще ни помогне да избегнем грешка по -късно.

След това създаваме при актуализиране на играта всеки … ms блок, вмъкваме променливата spawn_time там. Логиката вътре в блока е проста - ако общият брой врагове на бойното поле е по -малък от максимално допустимия брой врагове, добавете враг към neprija_sprite_list и добавете 200 (върви надясно) посока за този враг.

След това в създадения спрайт от вид Enemy блок добавяме някои графични ефекти, поставяме го на произволна празна плочка и извикваме функция pick_direction за този спрайт. В на спрайт от вид враг удари стената, ние наричаме същата функция, pick_direction.

Какво има в тази функция? Тук нещата започват да се усложняват, така че задръжте. Има 50 процента шанс вражеският танк да се покачи и 50 процента от него да падне - ние съответно променяме спрайта. Единственият трик тук е, че ние също трябва да променим стойността, съответстваща на конкретния вражески танк в вражеската_дирекция_лист, в нова посока, така че да го изстреляме в правилната посока. За това намираме индекса на вражеския спрайт в вражеския_сприт_лист и променяме стойността на този елемент в списъка на вражеските насоки.

И накрая, нека добавим изстрели. Добавяме още една актуализация на играта на всеки блок от 500 ms и поставяме елемент for в вражески_сприт_лист. С 30% шанс вражески спрайт ще изстреля вражески снаряд в посоката му на движение.

Ако стартираме играта в симулация сега, можем да видим как нашият жълт танк и вражеските танкове се появяват в една и съща точка и отиват в празното пространство. Ние можем да стреляме и те могат да стрелят по нашия жълт танк, но нищо няма да се случи. Все още се чувства толкова лишено от смисъл:) Нека добавим декорациите и механиката на играта като последна стъпка.

Стъпка 3: 42 от Играта

42 от Играта
42 от Играта
42 от Играта
42 от Играта
42 от Играта
42 от Играта

Ще започнем тази стъпка, като добавим живот и резултат от раздела Информация и зададем живот на 10 и резултат на нула. След това добавяме карта с плочки към …. Начертайте файловата карта, за да изглежда така, както виждате на екрана по -горе. Не забравяйте да добавите стените!

Нека добавим спрайт от вид Снаряд припокрива други Сприт от вид играч - това е, когато куршумите на врага ударят нашия жълт танк. Трябва да се уверим, че тези снаряди са куршуми на врага, а не наши, така че ще добавим, че ако условието в блока и ако се оценява като Истина, тогава изваждаме един от броя на живота. Подобно на него, в друг блок на спрайт от вид Снаряд припокрива otherSprite of kind Enemy, ние се уверяваме, че снарядът е снаряд от жълт резервоар и ако това условие се оценява като True, унищожаваме otherSprite (вражеския танк), премахваме го от списъка на neprijatel_sprite_list и добавете един за отбелязване.

Последното нещо са условията за победа и поражение - за победа ще проверим дали резултатът е по -висок или равен на 10 във блок завинаги. Ако е така, тогава показваме екрана за победа. В жизнения нулев блок показваме екрана Game Over.

Сега опитайте в симулацията, за да видите дали играта работи според очакванията. След това го качете в GameGo и се насладете на разбиването на вражески танкове!

Стъпка 4: Безкрайна игра и подобрения

Безкрайна игра и подобрения
Безкрайна игра и подобрения

В нашето хранилище на GitHub можете да изтеглите два файла за Makecode arcade - единият е абсолютно същият, който бихте получили, ако следвате тази инструкция, а другият е надградена версия, която има произволно генерирана прогресия на ниво. Той има 10 нива, всяко от които се генерира на случаен принцип с увеличен брой врагове на всяко следващо ниво.

И разбира се, има още повече неща, които вие или вашите ученици можете да добавите към играта на всичкото отгоре! Има по -добра музика, чупливи стени, различни условия за победа и така нататък!

Ако все пак направите подобрена версия на играта, споделете я в коментарите по -долу! За повече информация относно GameGo и друг хардуер за създатели и STEM преподаватели, посетете нашия уебсайт, https://tinkergen.com/ и се абонирайте за нашия блог.

TinkerGen стартира Kickstarter кампания за MARK (Make A Robot Kit), робот комплект за обучение на кодиране, роботика, AI!

Препоръчано: