Мазмуну:

Battle City Remake GameGo менен Makecode Arcade менен: 4 кадам (сүрөттөр менен)
Battle City Remake GameGo менен Makecode Arcade менен: 4 кадам (сүрөттөр менен)

Video: Battle City Remake GameGo менен Makecode Arcade менен: 4 кадам (сүрөттөр менен)

Video: Battle City Remake GameGo менен Makecode Arcade менен: 4 кадам (сүрөттөр менен)
Video: По крышам прыг, по башне дрыг ► 2 Прохождение Dying Light 2: Stay Human 2024, Июль
Anonim
Image
Image

GameGo TinkerGen STEM билим берүү тарабынан иштелип чыккан Microsoft Makecode шайкеш ретро оюн портативдик консолу. Бул STM32F401RET6 ARM Cortex M4 чипине негизделген жана STEM педагогдоруна же ретро видео оюндарды түзүүнү жакшы көргөн адамдар үчүн жасалган. Сиз бул окуу куралын ээрчип, оюнду Makecode Arcade симуляторунда сынап көрүп, андан кийин GameGoдо иштете аласыз.

Бул макалада биз Nintendo Entertainment System (NES) үчүн 1985 -жылы Namco тарабынан чыгарылган жана басылган классикалык Battle City танк атуучу оюнун кайра жаратууга аракет кылабыз. Түпнуска оюнда оюнчу танкты башкарат жана душмандын танктарын жок кылуу үчүн снаряддарды атат. Душмандын танкалары оюнчунун базасын, ошондой эле оюнчунун танкын өзү жок кылууга аракет кылышат. Биз GameGo менен блок программалоо практикасын жакшыраак кабыл алуу үчүн оюнга бир аз өзгөртүүлөрдү киргизебиз, бирок биздин ремейк дагы эле баштапкы оюнга окшоштуктарды сактап калат. Баштайлы!

Жабдуулар

GameGo

1 -кадам: Биздин Альтер -эго - Сары Танк

Биздин Альтер -эго - Сары Танк
Биздин Альтер -эго - Сары Танк

Https://arcade.makecode.com/ дарегинен Makecode Arcade ачыңыз жана жаңы долбоорду чыкылдатыңыз. Биз альтерногубузду сары танк кыла баштайбыз. Кандайдыр бир оюнчу блогунун спрайтына Set mySprite тандап, биздин башталгыч спрайт катары өйдө караган сары танкты тартып, ошол блокту башталгычтын ичине коюңуз. Move mySprite баскычтар блогу менен кошуңуз. Азыр бизде симуляциядагы баскычтар менен жыла ала турган танк бар! Абдан сонун, бирок биз ылдый же капталга жылганда дагы, дайыма бир багытка карайт …

Муну оңдоо үчүн, дагы төрт блокту кошобуз, ар бир багыт баскычы үчүн бирөө. Багыты деп аталган жаңы өзгөрмөнү түзөбүз - биз анын ичинде биздин танктын кыймылынын багытын сактап калабыз, 100 ылдыйга туура келет, -100 жогору дал келет, Оңго 200, солго -200. Эмне үчүн бул сандар? Кийинчерээк көрөбүз, биз снаряддарды кошкондо биздин танк атат. Бул блоктордун ар бир төртүндөгү логика абдан жөнөкөй - биз жаңы багытты (баскычты басуудан) мурунку багыт менен бирдей экендигин текшеребиз. Эгер ошондой болсо, биз негизинен эч кандай өзгөртүүлөрдү киргизбейбиз. Эгер андай болбосо, биз танктын спритин өзгөртүп, ылдый жана солго карай кошумча спрайттарды тартпоо үчүн спрайттын сүрөтүн бурабыз. Акыры, багытынын баштапкы маанисин -100 (танк өйдө) деп коёлу, анткени биздин танк оюнду ушинтип баштайт. Сары танкты азыр жылдырууга аракет кылыңыз, спрайт азыр кыймылдын багытына жараша өзгөрөт! Мыкты, эми ок кошолу.

Биз vx vy ылдамдыктары менен mySpriteден снарядга снаряд менен ок чыгарабыз (ошол спрайт үчүн кичинекей күмүш чарчы тартабыз). А басылган блоктун ичинде, сары танк солдон/оңдон өйдө/ылдый караганын билүү үчүн биз багыттын абсолюттук маанисин текшеришибиз керек. Биз снарядды багытынын өзгөрмөлүүлүгү менен атууга киришебиз -ошол себептен бизде багыт баалуулуктары үчүн -100/100/-200/200 болгон.

Азыр бизде снаряддарды аткылап, кыймылдай ала турган сары танк бар. Эгерде сары түстөгү симуляцияланган танктар сезе алса, анда бул боштукта душмандарсыз жана кыла турган нерселери жок жалгыздык сезилет. Ошентип, кийинки кадам үчүн убакытты өткөрүү үчүн душмандарды кошолу.

2 -кадам: Душмандарды чыгаруу

Душмандарды чыгаруу
Душмандарды чыгаруу
Душмандарды чыгаруу
Душмандарды чыгаруу

Биз бул кадамды көптөгөн жаңы өзгөрмөлөрдү түзүү менен баштайбыз: эки массив (бири душмандын спритин кармоо үчүн, экинчиси душмандын багыттарын кармоо үчүн), жумурткалардын ортосундагы убакытты сактоо үчүн убакыт өзгөрмөсү, душмандын максималдуу санын сактоо үчүн душмандын саны. Ошол эле учурда. Биз ошондой эле баштоо блогуна ок атуучу эки снарядды (снаряд жана душман снаряды) кошобуз - бул кийин ката кетирбөөгө жардам берет.

Кийинкиде биз оюн жаңыртуусун сайын… ms блогунда түзөбүз, ал жерге spawn_time өзгөрмөсүн киргизебиз. Блоктун ичиндеги логика жөнөкөй - эгерде согуш майданындагы душмандардын жалпы саны душмандардын уруксат берилген санынан аз болсо, dushman_sprite_listке душманды кошуңуз жана кошуңуз. Ошол душман үчүн 200 (туура) багыт.

Андан кийин, душмандын блок түрүндө түзүлгөн спрайтта биз графикалык эффекттерди кошобуз, аны туш келди бош плиткага коюп, бул спрайт үчүн pick_direction функциясын чакырабыз. Кандайдыр бир душмандын душманы дубалга тийгенде, биз ошол эле функцияны pick_direction деп атайбыз.

Ал функцияда эмне бар? Бул жерде нерселер бир аз татаал боло баштайт, андыктан кармаңыз. Душмандын танкынын 50 % га жогорулашы жана 50 % ылдый түшүү ыктымалдыгы бар - биз ошого жараша спрайтты алмаштырабыз. Бул жердеги бирден -бир амал, биз дагы ошол душман душмандын танкасына туура келген маанини жаңы багытка өзгөртүүбүз керек, андыктан биз октарды туура багытта аткыла. Ал үчүн dushman sprite индексин dushman_sprite_listтен табабыз жана dushman_directions тизмесинде бул нерсенин маанисин өзгөртөбүз.

Акырында, ок атууну кошолу. Биз ар бир 500 мс блокко оюн жаңыртуусун кошуп, бир нерсени dushman_sprite_listке коебуз. 30% кокустуктар менен, душмандын сприти анын кыймыл багытында душмандын снарядын атат.

Эгерде биз азыр оюнду симуляцияда баштасак, анда биздин сары танк менен душмандын танктары бир эле жерде пайда болуп, бош мейкиндикке чыгып жатканын көрө алабыз. Биз атып алабыз, алар биздин сары танкты атса болот, бирок эч нерсе болбойт. Бул дагы деле мааниси жоктой сезилет:) Келгиле, акыркы кадам катары жасалгаларды жана оюн механикасын кошолу.

3 -кадам: Оюндун 42 -бөлүгү

Оюндун 42
Оюндун 42
Оюндун 42
Оюндун 42
Оюндун 42
Оюндун 42

Биз бул кадамды Info өтмөгүнөн жашоону жана баллды кошуп, жашоону 10го жана нөлгө коюудан баштайлы. Андан кийин биз блок плиткасынын картасын кошобуз…. Жогорудагы скриншотто көрүнгөн нерсеге окшошуу үчүн файл картасын тартыңыз. Дубалдарды кошууну унутпаңыз!

Келгиле, спрейттин түрүн кошобуз, боорукер оюнчунун башка түрлөрү - бул душмандын октору биздин сары танкка тийген кезде. Биз бул снаряддар өзүбүздүкү эмес, душмандын огу экенине ынануубуз керек, андыктан эгер биз блок ичиндеги шартты жана эгер ал "Чын" деп бааласа, анда биз аны өмүрдүн санынан алып салабыз. Анын сыңарындай, спрейттин дагы бир блогунда башка түрдөгү душмандын бири -бирине окшошуп кетиши, биз снаряддын сары танктан снаряд экенине ынанабыз жана эгер бул шарт чын деп бааланса, анда башкаSpriteти (душмандын танкын) жок кылабыз, аны тизмеден алып салабыз. dush_sprite_listтин тизмесине кирип, упайга бирин кошуңуз.

Акыркы нерсе - жеңиш жана жеңилүү шарттары - жеңиш үчүн биз упайдын жогору же 10го барабар экенин текшеребиз. Эгер ошондой болсо, анда биз жеңиш экранын көрсөтөбүз. Ал эми нөлдүк блокто Game Over экранын көрсөтөбүз.

Эми оюндун күтүлгөндөй иштеп жаткандыгын билүү үчүн аны симуляцияда сынап көрүңүз. Андан кийин аны GameGoго жүктөп, душмандын танктарын талкалоодон ырахат алыңыз!

4 -кадам: Чексиз оюн жана жакшыртуулар

Чексиз оюн жана жакшыртуулар
Чексиз оюн жана жакшыртуулар

Биздин GitHub репозиторийинде сиз Makecode аркадасына эки файлды жүктөп алсаңыз болот - бири ушул көрсөтмөнү аткарсаңыз, экинчиси туш келди деңгээлдеги прогрессти жараткан жаңыртылган версиясы менен дал келет. Анын 10 деңгээли бар, алардын ар бири туш келди деңгээлде душмандарынын саны көбөйтүлүп жаратылган.

Анан, албетте, сиз же студенттериңиз оюнга кошо турган нерселер дагы бар! Жакшы музыка, бузулуучу дубалдар, ар кандай жеңиш шарттары жана башкалар бар!

Эгер оюндун жакшыртылган версиясын чыгарсаңыз, аны төмөндөгү комментарийлерде бөлүшүңүз! GameGo жана башка жабдыктар жөнүндө көбүрөөк маалымат алуу үчүн, биздин веб -сайтка баш багыңыз, https://tinkergen.com/ жана биздин блогго жазылыңыз.

TinkerGen MARK (Make A Robot Kit) үчүн Kickstarter кампаниясын баштады, коддоо, робототехника, AI үйрөтүү үчүн робот -комплект!

Сунушталууда: