Мазмұны:

(Көп ойыншы) GameGo -да Makecode Arcade көмегімен күрес: 6 қадам
(Көп ойыншы) GameGo -да Makecode Arcade көмегімен күрес: 6 қадам

Бейне: (Көп ойыншы) GameGo -да Makecode Arcade көмегімен күрес: 6 қадам

Бейне: (Көп ойыншы) GameGo -да Makecode Arcade көмегімен күрес: 6 қадам
Бейне: 5 ойын ойнау БРОУЛБОЛ бравл старс 2024, Қараша
Anonim

GameGo - TinkerGen STEM білім беруімен жасалған Microsoft Makecode үйлесімді ретро ойын портативті консолі. Ол STM32F401RET6 ARM Cortex M4 чипіне негізделген және STEM тәрбиешілеріне немесе ретро видео ойындар жасауды ұнататын адамдарға арналған. Осы оқулықты орындап, ойынды Makecode Arcade тренажерінде көруге болады, содан кейін оны GameGo -да іске қосуға болады.

Біз жариялаған мақалаларда біз платформалық ойын мен Battle City Remake жасауға күшімізді сынап көрмедік. Бұл жолы мен Jacdac интерфейсін екі GameGo -ны біріктіру үшін қолданғым келді және ойыншыларға көп ойыншы жауынгерлік ойында үстемдік үшін күресуге мүмкіндік бергім келді. Өкінішке орай, мен Jacdac мультиплееріне арналған блоктық бағдарламалау қазіргі уақытта бета -сатыда екенін және кейбір қателері бар екенін білдім - әлі де қарапайым ойындар жасауға болады, бірақ менің жауынгерлік ойында сәттілік жоқ. Сонымен, мен бұл нұсқаулықта ойынның үш нұсқасын жариялаймын (мен оны «Cthulhu Combat» деп атадым:))

- қарапайым AI қарсыласы бар жалғыз ойыншы нұсқасы

- аркадтық модельдеуде ойнауға болатын көп ойыншы нұсқасы

- Jacdac бар көп ойыншы нұсқасы (толық емес, кейін жаңартылады)

Жабдықтар

GameGo

Microsoft Makecode Arcade

1 -қадам: Бастау және Round_setup функциялары

Бастау және Round_setup функциялары бойынша
Бастау және Round_setup функциялары бойынша

Мен бір ойыншының ойынын кодтауды егжей -тегжейлі сипаттаймын, содан кейін келесі қадамдарда біз оны қалай жасау керектігін талқылаймыз

а) мультипликаторлық тренажер

б) Jacdac көп ойыншы.

Біз плиткалардың картасын қараңғы зынданға орнатудан және ойыншы мен AI ботқа спрайт құрудан бастаймыз, бірақ олардың екеуі де ойыншы түріне жатады. Біз олардың осьтік үдеуін 600 -ге қойдық - олар секіргеннен кейін ұшпайды. Сонымен қатар, round_setup функциясын шақырар алдында снарядтарды боттан және ойнатқыштан инициализациялаймыз. round_setup функциясы біз үшін жаңа раундтық дайындық туралы қамқорлық жасайды - оны функцияға айналдырған себебіміз, ойынның жалпы саны 3 раунд болуы мүмкін және біз сол кодты қайталамауды қалаймыз. Бұл функцияда алдымен ойыншылардың біреуінде 2 жеңіс бар -жоғын тексереміз - егер бұл шарт шын деп бағаланса, ойын аяқталды. Егер екі ойыншының да жеңістері екіден аз болса, біз round_num айнымалысын бір -ге арттырамыз және ойыншыларды бастапқы орындарына орналастырамыз, олардың өмірін 100 -ге дейін толықтырамыз және жаңа раундтың басталуын жариялаймыз.

2 -қадам: Ойын ағыны

Ойын ағыны
Ойын ағыны

Бұл ойында әлемнің өзі статикалық және ойын ағыны ойыншылардың әрекеттеріне байланысты. Төрт блокта біз ойын ережелерінің көпшілігін анықтаймыз, бұл блоктар: жоғары, төмен түймесі, А түймесі басылады және В түймесі басылады. Осы блоктардың әрқайсысын қарастырайық.

жоғары батырмасы басылады - қос секіру логикасы. Егер біз секіру түймесін 3 реттен аз бассақ, онда ойыншының жылдамдығын - 140 (жоғары қарай жылжу) деп орнатамыз. Біздің ойыншыда 600 үдеу бар, сондықтан біз секіргеннен кейін жылдамдығымыз тез төмендейді. Ол 0 -ге жеткенде (тік осьте қозғалмайды), біз jump_count мәнін қайтадан 0 -ге орнатамыз.

төмен батырмасы басылды - ауқымды шабуыл қалқанының логикасы. Егер төмен түймесі басылса, ойыншы өзінің бейнесін «экрандалған» етіп өзгертеді және экрандалған айнымалы мәнді 1 -ге қояды.

А түймесін басу - снарядты өртеу. Бұл өздігінен түсінікті.

В батырмасы басылды - іске асырудағы қалқанға ұқсас шабуыл.

Біз ойыншылардың спрайттары мен олардың қорғалған/шабуылдайтын айнымалыларының суреттерін әр 500 мс сайын 0 жаңартуға орнатамыз. Біз әр әрекет үшін тәуелсіз таймерлерді орната алар едік, бірақ қарапайымдылық үшін біз ойынның негізгі жаңарту циклін қолданамыз.

Бұл жерде жеңу шарттары өте оңай - ойыншының өмірі 0 -ге жеткенде, басқа ойыншы раундта жеңіске жетті, содан кейін біз ойыншының жеңіс санын айнымалы түрде сақтаймыз.

Ақырында, шабуылдың зақымдануы мен шабуылдың зақымдануын басқаратын екі блок бар. Олардың әрқайсысында біз спрайт соқтығысуын тексереміз және егер шабуылдаушы ойыншының қорғалған/шабуылдық айнымалы мәні 0/1 күйіне орнатылса.

3 -қадам: 1 -ойын: AI қарсыласы

1 -ойын: AI қарсыласы
1 -ойын: AI қарсыласы

Бірінші ойында біз екінші ойыншы болу үшін AI -ға қарапайым қарсылас жасаймыз. Әр 200 мс сайын ойын жаңартылғанда біз алдымен ойыншы мен АИ арасындағы қашықтықты тексереміз - егер ол 20 -дан аз болса, біз интеллектуалды шабуыл режимін 30 -ға және шабуыл мүмкіндігін 30 -ға дейін жоғарылату арқылы қоямыз. 20 -дан астам біз қарымта шабуыл мүмкіндігін нөлге (ойыншы тым алыста болғандықтан, нүкте қоймайды) және 70 -ке ауыстыру мүмкіндігін қойдық. Әрекет ықтималдығы үшін айнымалылар орнатылғаннан кейін, біз бұл әрекеттерді көрсетілген мүмкіндіктермен орындауды жалғастырамыз. Егер сіз осы қарапайым АИ -ге қарсы ойнауға тырыссаңыз, оның мінез -құлқының өте қарапайым екеніне көз жеткізесіз, онымен күресу оңай емес - көбінесе компьютермен басқарылатын қарсыластарда ол жеңеді, себебі ол секундына көбірек әрекеттерді жасай алады. адам ойыншысы.

Егер сіз кодтау кезінде кептеліп қалсаңыз, сіз осы жобаның GitHub репозиторийінен толық кодты жүктей аласыз және оны Makecode Arcade -де ашасыз.

4 -қадам: 2 -ойын: Көп ойыншы симуляторы

2 -ойын: Көп ойыншы симуляторы
2 -ойын: Көп ойыншы симуляторы
2 -ойын: Көп ойыншы симуляторы
2 -ойын: Көп ойыншы симуляторы

Симуляциядағы екі ойыншының ойын нұсқасы бір ойыншының нұсқасына өте ұқсас, тек біз AI -дің мінез -құлық блогын 4 -плеердегі 2 -түймені басқан блоктармен алмастырамыз - бұл блоктардың ішіндегі мазмұн 1 -ойыншы үшін сол блоктардың мазмұнын көрсетеді. қандай өзгерістер енгізу керектігін жақсы түсіну үшін скриншотты қараңыз. Бұдан басқа, бізде 2 -ші ойыншының іске қосылу түймесі бар қосқышын қосу және екі ойыншының соңғы экранын LOSE орнына WIN -ге ауыстыру қажет.

5 -қадам: 3 -ойын: Jacdac көп ойыншы

3 ойын: Jacdac көп ойыншы
3 ойын: Jacdac көп ойыншы

Мен осы форумда Makecode аркадалық блоктары бар Jacdac көп ойыншысының қоғамдастыққа енгізілуін таптым

forum.makecode.com/t/new-extension-real-mu…

Мен мысалды ойынды (Space Invaders) сынап көрдім және ол өте жақсы жұмыс істейтінін байқадым. Өкінішке орай, Cthulhu Combat ойын механикасы көптеген айнымалыларды қолданады, және нақты мультиплеерлік кеңейтімдер әлі де синхрондауды қолдамайтын сияқты, сондықтан мен оны іске қостым, екі ойыншының әрекеттері құрылғыларда синхрондалады, бірақ өмір олай етпейді. қарсыластардың құрылғыны тастамаңыз. Сондай -ақ, снаряд механикасында қате бар, снарядтар қабырғаға тигеннен кейін жоғалмайтын сияқты, бұл 10 -ға жуық снаряд атылғаннан кейін ойынның байланысын жоғалтады.

Сіз оны ойнату үшін GitHub репозиторийінен-p.webp

6 -қадам: Cthulhu күресі басталсын

Cthulhu жекпе -жегі басталсын!
Cthulhu жекпе -жегі басталсын!

Біздің қарапайым жауынгерлік ойынға әлі де көптеген жақсартулар енгізуге болады - мысалы, сіз AI -дің күрделілігін қоса аласыз немесе түймешіктер мен/немесе анимация тізбегін қосу үшін кеңейтімді қолдана аласыз. GameGo және Makecode Arcade көмегімен өз ойындарыңызды бағдарламалау кезінде сәттілік пен көңілді болыңыз.

Егер сіз ойынның жақсартылған нұсқасын жасасаңыз, оны төмендегі түсініктемелерде бөлісіңіз! GameGo және өндірушілер мен STEM тәрбиешілеріне арналған басқа да жабдықтар туралы қосымша ақпарат алу үшін біздің веб -сайтқа кіріңіз, https://tinkergen.com/ және біздің ақпараттық бюллетеньге жазылыңыз.

Ұсынылған: