(Multiplayer) Fighting on GameGo With Makecode Arcade: 6 Steps
(Multiplayer) Fighting on GameGo With Makecode Arcade: 6 Steps
Anonim

GameGo- ն Microsoft Makecode- ի հետ համատեղելի ռետրո խաղային շարժական վահանակ է, որը մշակվել է TinkerGen STEM կրթության կողմից: Այն հիմնված է STM32F401RET6 ARM Cortex M4 չիպի վրա և պատրաստված է STEM մանկավարժների կամ պարզապես այն մարդկանց համար, ովքեր սիրում են զվարճանալ ռետրո տեսախաղեր ստեղծելով: Կարող եք հետևել այս ձեռնարկին և խաղը փորձել Makecode Arcade սիմուլյատորում, այնուհետև այն գործարկել GameGo- ով:

Նախկինում մեր հրապարակած հոդվածներում մենք արդեն փորձել էինք մեր ուժերը կատարել պլատֆորմային խաղ և Battle City Remake: Այս անգամ ես ուզում էի օգտագործել Jacdac ինտերֆեյսը `երկու GameGo- ն իրար միացնելու համար և թույլ տալու, որ խաղացողները մարտնչեն բազմամարտիկ խաղի գերակայության համար: Unfortunatelyավոք, ես պարզեցի, որ Jacdac multiplayer- ի բլոկային ծրագրավորումը այս պահին բետա փուլում է և ունի որոշ սխալներ. Դեռ հնարավոր է ավելի պարզ խաղեր պատրաստել, բայց հաջողություն չկա իմ մարտական խաղի համար: Այսպիսով, այս ուսանելիում ես հրապարակում եմ խաղի երեք տարբերակ (որը ես անվանում էի «Cthulhu Combat»:))

- մեկ խաղացողի տարբերակ ՝ պարզ AI հակառակորդով

- Արկադային սիմուլյացիայում խաղալու համար նախատեսված բազմաֆունկցիոնալ տարբերակ

- Jacdac- ով բազմաֆունկցիոնալ տարբերակ (թերի, կթարմացվի ավելի ուշ)

Պարագաներ

GameGo

Microsoft Makecode Arcade

Քայլ 1. Սկսելու և Round_setup գործառույթների վրա

Սկսելու և Round_setup գործառույթների վրա
Սկսելու և Round_setup գործառույթների վրա

Ես մանրամասն կներկայացնեմ միայնակ խաղացողների կոդավորումը, այնուհետև հաջորդ քայլերում մենք կքննարկենք, թե ինչպես այն դարձնել

ա) սիմուլյատոր multiplayer

բ) Jacdac multiplayer.

Մենք սկսում ենք սալիկի քարտեզը մուգ զնդանի վրա դնելուց և խաղողի և արհեստական ինտելեկտի բոտի համար բծախնդրություն ստեղծելուց. Մենք սահմանեցինք նրանց y առանցքի արագացումը 600 -ի վրա, որպեսզի նրանք չթռչեն ցատկելուց հետո: Մենք նաև նախաստորագրում ենք արկերը բոտից և նվագարկիչից ՝ նախքան round_setup գործառույթը կանչելը: round_setup գործառույթը հոգ է տանում մեզ համար նոր փուլի պատրաստման մասին. պատճառը, որ մենք այն դարձնում ենք գործառույթ, այն է, որ խաղի ընթացքում ընդհանուր առմամբ կարող է լինել մինչև 3 փուլ, և մենք ցանկանում ենք խուսափել նույն ծածկագրի կրկնությունից: Այդ գործառույթում մենք նախ ստուգում ենք, արդյոք խաղացողներից որևէ մեկն ունի 2 հաղթանակ. Եթե այս պայմանը գնահատվում է որպես Trueշմարիտ, ապա խաղն ավարտված է: Եթե երկու խաղացողներն էլ ունեն երկուից պակաս հաղթանակ, մենք մեծացնում ենք round_num փոփոխականը մեկով և խաղացողներին տեղադրում ենք մեկնարկային տեղերում, լրացնում նրանց կյանքը մինչև 100 և հայտարարում նոր փուլի սկիզբը:

Քայլ 2: Խաղի հոսք

Game Flow
Game Flow

Այս խաղում աշխարհն ինքնին ստատիկ է, և խաղի ընթացքը կապված է խաղացողների գործողությունների հետ: Չորս բլոկներում մենք սահմանում ենք խաղի կանոնների մեծ մասը: Այս բլոկներն են ՝ սեղմված վերևի կոճակը, ներքև կոճակը սեղմված, A կոճակը սեղմված և B կոճակը սեղմված: Եկեք նայենք այս բլոկներից յուրաքանչյուրին:

վերևի կոճակը սեղմված է `կրկնակի ցատկման տրամաբանություն: Եթե մենք սեղմել ենք թռիչքի կոճակը 3 անգամից պակաս, ապա խաղացողի արագությունը սահմանում ենք - 140 (շարժվում է դեպի վեր): Մեր խաղացողը vy արագացման համար սահմանել է 600, այնպես որ, երբ ցատկենք, մեր արագությունը արագ կնվազի: Երբ այն հասնում է 0 -ի (չի շարժվում ուղղահայաց առանցքի վրա) մենք նորից jump_count- ը դնում ենք 0 -ի:

ներքևի կոճակը սեղմված է `հարձակման վահանի տրամաբանությունը: Եթե սեղմված է ներքևի կոճակը, խաղացողը փոխում է իր պատկերը «պաշտպանված» և սահմանում է փոփոխականի պաշտպանվածը 1:

on կոճակը A սեղմված - արձակիր արկ: Այդ մեկը բավականին ինքնին բացատրող է:

B կոճակի վրա սեղմված - իրարանցում հարձակում, որը նման է վահանի իրականացմանը:

Մենք խաղացողների սպիրիտների և նրանց պաշտպանված/հարձակվող փոփոխականների պատկերները սահմանում ենք 0 յուրաքանչյուր 500 ms- ում խաղի թարմացման յուրաքանչյուր.. ms արգելափակում: Մենք կարող էինք յուրաքանչյուր գործողության համար անկախ ժամաչափեր սահմանել, բայց պարզության համար մենք պարզապես կօգտագործենք խաղի թարմացման հիմնական հանգույցը:

Այստեղ հաղթելու պայմանները բավականին հեշտ են. Երբ խաղացողի կյանքը հասնում է 0 -ի, մյուս խաղացողը հաղթում է փուլը, այնուհետև մենք պահում ենք խաղացողների կողմից ստացված հաղթանակների թիվը փոփոխականի մեջ:

Ի վերջո, կան երկու բլոկներ, որոնք վերահսկում են հարձակման տարբեր վնասները և իրարանցման հարձակման վնասները: Նրանցից յուրաքանչյուրում մենք ստուգում ենք Sprite- ի բախումը և եթե պաշտպանված/հարձակվող փոփոխականը հարձակվող խաղացողի համար սահմանվում է 0/1:

Քայլ 3. Խաղ 1: AI հակառակորդ

Խաղ 1: AI հակառակորդ
Խաղ 1: AI հակառակորդ

Առաջին խաղում մենք կստեղծենք AI- ի համեմատաբար պարզ հակառակորդ `երկրորդ խաղացող լինելու համար: Խաղի թարմացման յուրաքանչյուր 200 ms- ի սկզբում մենք առաջին հերթին կատարում ենք խաղացողի և AI- ի միջև հեռավորության ստուգում. Եթե 20 -ից պակաս է, մենք մեր AI- ն դնում ենք melee ռեժիմում ՝ բարձրացնելով melee հարձակման հավանականությունը 30 -ի և հարձակման հավանականությունը `30 -ի: Եթե հեռավորությունը ավելի մեծ է քան 20 -ը, մենք իրարանցման հարձակման հնարավորությունը զրոյի ենք դնում (ոչ մի պինտե քաշքշուկ հարձակման ժամանակ, քանի որ խաղացողը շատ հեռու է) և հնարավորությունը տեղափոխում ենք 70 -ի: Գործողությունների շանսերի փոփոխականները սահմանելուց հետո մենք շարունակում ենք այս գործողությունները կատարել նշված հնարավորություններով: Եթե ինքներդ փորձեք խաղալ այս պարզ AI- ի դեմ, կտեսնեք, որ չնայած վարքագծին շատ պարզ է, դրան հաղթելը հեշտ չէ, քանի որ համակարգչային վերահսկվող հակառակորդների դեպքում հաճախ հաղթում է հիմնականում այն պատճառով, որ կարող է վայրկյանում ավելի շատ գործողություններ կատարել, քան մարդ խաղացող:

Եթե կոդավորվել եք կոդավորման ընթացքում, կարող եք ներբեռնել այս ծրագրի մեր ամբողջական GitHub պահոցը և բացել այն Makecode Arcade- ում:

Քայլ 4: Խաղ 2: Simulator Multiplayer

Խաղ 2: Simulator Multiplayer
Խաղ 2: Simulator Multiplayer
Խաղ 2: Simulator Multiplayer
Խաղ 2: Simulator Multiplayer

Սիմուլյացիայի մեջ երկու խաղացողների համար խաղի տարբերակը շատ նման է մեկ խաղացողի տարբերակին, բացառությամբ, որ մենք AI վարքագծի բլոկը փոխարինում ենք նվագարկիչով 2 կոճակով սեղմված չորս բլոկով չորսով. հայացք սքրինշոթին ՝ ավելի լավ պատկերացնելու համար, թե ինչ փոփոխություններ պետք է կատարեք: Բացի այդ, մենք նաև պետք է ավելացնենք տեղափոխել նվագարկիչ 2 կոճակներով, որի վրա տեղադրված է մեկնարկային գործառույթը և խաղացողի երկու խաղի վերջնական էկրանը փոխվի WIN- ի `LOSE- ի փոխարեն:

Քայլ 5. Խաղ 3: Jacdac Multiplayer

Խաղ 3. Jacdac Multiplayer
Խաղ 3. Jacdac Multiplayer

Այս ֆորումի թեմայում ես գտա Jacdac մուլտիպլեյերի համայնքային իրականացում Makecode արկադային բլոկներով

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

Ես փորձեցի այնտեղի խաղի օրինակը (Space Invaders) և գտա, որ այն շատ լավ է աշխատում: Unfortunatelyավոք, Cthulhu Combat- ի խաղային մեխանիկան օգտագործում է բազմաթիվ փոփոխականներ, և թվում է, որ Real Multiplayer- ի ընդարձակումները դեռ չեն աջակցում փոփոխականների համաժամացմանը. մի ընկեք հակառակորդների սարքի վրա: Նաև ինչ -որ բան այն չէ արկի մեխանիկայի հետ, կարծես արկը չի անհետանում պատին հարվածելուց հետո, ինչը պատճառ է դառնում, որ խաղը կապը կորցնի մոտ 10 արկ արձակվելուց հետո:

Դուք կարող եք փորձել multiplayer- ը `ներբեռնելով-p.webp

Քայլ 6: Թող սկսվի Cthulhu- ի մարտը:

Թող սկսվի Cthulhu- ի մարտը
Թող սկսվի Cthulhu- ի մարտը

Դեռևս շատ բարելավումներ կան, որոնք կարող են կատարվել մեր պարզ մարտական խաղի մեջ, օրինակ ՝ կարող եք ավելացնել ավելի բարդ AI վարքագիծ կամ ընդլայնում օգտագործել ՝ կոճակների համակցություններ և (կամ) անիմացիոն հաջորդականություններ ավելացնելու համար: Հաջողություն և զվարճացեք, երբ ծրագրավորում եք ձեր սեփական խաղերը GameGo- ի և Makecode Arcade- ի միջոցով:

Եթե դուք իսկապես կատարելագործում եք խաղի տարբերակը, կիսվեք այն ստորև բերված մեկնաբանություններում: GameGo- ի և արտադրողների և STEM մանկավարժների համար լրացուցիչ սարքավորումների մասին լրացուցիչ տեղեկությունների համար այցելեք մեր կայքը ՝ https://tinkergen.com/ և բաժանորդագրվեք մեր տեղեկագրին:

Խորհուրդ ենք տալիս: