Բովանդակություն:

Անսահման մակարդակներով հարթակ GameGo With Makecode Arcade: 5 քայլ (նկարներով)
Անսահման մակարդակներով հարթակ GameGo With Makecode Arcade: 5 քայլ (նկարներով)

Video: Անսահման մակարդակներով հարթակ GameGo With Makecode Arcade: 5 քայլ (նկարներով)

Video: Անսահման մակարդակներով հարթակ GameGo With Makecode Arcade: 5 քայլ (նկարներով)
Video: Երկիր մոլորակի ստորգետնյա քաղաքակրթություն Ստորգետնյա աշխարհ 2024, Հուլիսի
Anonim
Image
Image

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

Այս հոդվածում մենք պատրաստելու ենք պլատֆորմեր խաղ ՝ անսահման պատահական գեներացվող մակարդակներով: Պլատֆորմատորում խաղացողի կողմից վերահսկվող կերպարը պետք է ցատկի և բարձրանա կախովի հարթակների միջև ՝ խոչընդոտներից խուսափելով: Շրջակա միջավայրում հաճախ նկատվում է տարբեր բարձրության անհավասար տեղանք, որը պետք է անցնել: Խաղացողը հաճախ որոշակի վերահսկողություն ունի ցատկերի բարձրության և հեռավորության վրա, որպեսզի թույլ չտա, որ նրանց բնավորությունը ընկնի մահվան կամ բաց թողնի անհրաժեշտ ցատկերը: Մենք կիրականացնենք այս բոլոր հիմնական տարրերը, ինչպես նաև կավելացնենք հատուկ գործառույթ, որը կստեղծի նոր մակարդակներ, երբ մենք հասնենք վերջինի ավարտին: Եկեք սկսենք!

Պարագաներ

GameGo

Քայլ 1: Հերոսը

Հերոսը
Հերոսը

Որպես առաջին քայլ ՝ մենք կստեղծենք մեր ալտեր-էգոն: Իմ նկարչական հմտությունները բավականին վատն են, ուստի ես պարզապես որոշեցի օգտագործել Պատկերասրահից մեկը;) Ի տարբերություն մեր պատրաստած նախորդ խաղի, այս խաղարկողի մեր խաղարկային կերպարը կարող է շարժվել միայն ձախ և աջ, ինչպես նաև ցատկել: Այսպիսով, գլխավոր հերոսի համար երկու տարբեր բծեր ունենալու փոխարեն, այս անգամ մեկը բավական է. Մենք կարող ենք պարզապես շուռ տալ սպրայտի կերպարը, երբ փոխում ենք ուղղությունը:

Առաջին բանը, որ պետք է անել, ֆոնի և սալիկների քարտեզ ավելացնելն է: Ես ընտրել եմ երկար սալիկների 32x8 քարտեզ. Առաջին մակարդակի համար մենք այն գծելու ենք ձեռքով, ինչպես սքրինշոթ 2 -ում: Այնուհետև մենք ավելացնում ենք մեր նվագարկվող բնավորությունը set mySprite- ով ՝ բարի Player- ի բլոկի համար և տեղադրում այն 0-5 սալիկի վերևում:. Մենք նաև դրել ենք, որ տեսախցիկը կարող է շարժվել խաղարկվող բնույթով և վերահսկել դրա ձախ և աջ շարժումները: Ավելացրեք երկու… կոճակի սեղմված բլոկներ, մեկը ձախ կոճակի համար, մեկը աջի համար: Երբ ձախ կոճակը սեղմվում է, կոճակը սեղմելուց առաջ մենք ստուգում ենք, թե արդյոք մեր ուղղությունը «ձախ» է եղել: Եթե դա լիներ, մենք պարզապես շարունակում ենք ձախ գնալ: Եթե դա չլիներ, մենք պետք է շուռ տայինք մեր կերպարի սփրիտ կերպարը: Նմանատիպ տրամաբանություն ճիշտ շարժման համար:

Առայժմ ամեն ինչ լավ է, միակ խնդիրը թվում է, որ մեր հերոսը չի կարող հաղթահարել որևէ խոչընդոտ: Այսպիսով, մենք պետք է ավելացնենք թռիչքը: Մենք վերահսկելու ենք մինչև կոճակը սեղմելու կարգավորումները, և երբ այն հայտնաբերվի, մենք փոփոխական թռիչքը դնում ենք 1 -ի վրա, նշելու ենք, թե երբ են սկսվում թռիչքային շարժումները և բնույթի արագության արագությունը vy- ին դնում -200 -ի վրա (բարձրանում է): Հետո որոշակի ժամանակահատվածից հետո մենք արագությունը կդնենք 200 -ի վրա (իջնում է), այնպես որ մեր հերոսը հրթիռի նման երկինք չի բարձրանա:

Կարծում եմ, որ մենք հիմա ստեղծեցինք մարտահրավերի արժանի հերոս: Դե, որտե՞ղ է մարտահրավերը:

Քայլ 2: Թշնամիները

Թշնամիները
Թշնամիները

Մենք կօգտագործենք զանգվածային կառուցվածք ՝ թշնամիների բծերը պահելու համար: Թշնամիների տեսակների համար մենք մի փոքր դյուրանցում կկիրառենք և չղջիկներ կօգտագործենք:) ոչ թե կորոնավիրուսի մասին տեղեկանք, այլ պարզապես չղջիկները կարող են թռչել, այդ իսկ պատճառով մենք կարիք չենք ունենա «մոդելավորելու» ձգողականությունը նրանց համար, ինչպես դա անում ենք մեր խաղարկվող կերպարի հետ: Օգտագործեք ստեղծած բարի թշնամու բլոկի վրա `նորաստեղծ չղջիկները պատահական ձվադրման սալիկի վրա տեղադրելու համար (նշված է մի փոքր սպիտակ նշանով) և սահմանեք նրանց vx արագությունը -10 -ի վրա (դանդաղ շարժվում է աջ): Հետո խաղի թարմացման յուրաքանչյուր 2000 ms բլոկում մենք կրկնում ենք թշնամու ցուցակի յուրաքանչյուր կետի մեջ և պատահականորեն փոխում դրանց ուղղությունը, անհրաժեշտության դեպքում նաև թեքում չղջիկների բծերը (արտացոլում շարժման ուղղության փոփոխությունը): Ի վերջո, մենք ավելացնում ենք բարի խաղացողի համընկնումը այլ տեսակի բարի թշնամու բլոկի հետ, որտեղ մենք պարզ ստուգում ենք կատարում, եթե խաղացողն արդեն խփված է: Եթե դա չլիներ, մենք հանեցինք մեկ կյանք, դրեք դրոշի դրոշակը 1 -ին (հարվածված է) և գործարկեք ժամաչափը: Երբ վերջին հարվածի ժամանակից անցել է 500 ms, մենք դրոշի հարվածը փոխում ենք 0 -ի: Մենք դա անում ենք, որպեսզի խաղացողը խուսափի թշնամու հետ բախվելուց շատ թանկարժեք կյանքեր կորցնելուց:

Եկեք ստուգենք, թե ինչպես ենք մենք: Դե, տեսարանն, անշուշտ, ավելի աշխույժ է թվում, երբ բոլոր չղջիկները թռչում են շուրջը և կծում մեր խաղացողին: Այժմ մեզ զենք է պետք մեր հերոսական գործողությունները կատարելու համար:

Քայլ 3: Theենք

Weենքը
Weենքը

Theենքի համար ես ոգեշնչում էի հին Nintendo խաղից ՝ երկու խեղկատակ եղբայրների մասին:) Եկեք մակարդակի ավելացնենք տուփի սփրիտը, նույն կերպ, ինչպես անում ենք թշնամիներին ավելացնելով: Մենք նաև նախաստորագրում ենք has_crate փոփոխականը մինչև -1, ինչը ցույց է տալիս, որ մեր բնավորությունը տուփ չի կրում: Sprite of kind Player- ը համընկնում է այլ տեսակի Good food- ի բլոկի հետ, մենք ստուգում ենք ՝ արդյո՞ք մենք արդեն պահում ենք տուփ, իսկ եթե ոչ, ապա has_crate փոփոխականը սահմանում ենք ցուցակում գտնվող crate sprite- ի ինդեքսը: Այնուհետև խաղի թարմացման բլոկում մենք տեղափոխում ենք այդ սփրեյթը խաղացողի սպրայտի հետ միասին, և եթե կոճակը սեղմված է, մենք փոխում ենք վանդակի vx արագությունը մինչև 1200 կամ -1200 (կախված կերպարի շարժման ուղղությունից): Մենք նաև has_crate փոփոխականը կրկին դնում ենք -1 -ի և փոխում ենք հենց հիմա արկղի սպրայտի տեսակը, որը հենց հիմա օդ է արձակվել, դարձնելով Projectile:

Ի վերջո, մեզ անհրաժեշտ է, որ արկղերը գործարկելիս իրականում ոչնչացնեն թշնամիներին (բայց ոչ այն դեպքում, երբ թշնամիները պատահաբար սայթաքում են վանդակի միջով: այդ պատճառով մենք դնում ենք տուփեր, որպեսզի նրանք մուտքագրեն սնունդ և այն փոխեն արկերի միայն արձակվելիս) և հարվածի ժամանակ ինքնաոչնչանան: պատը. Դրա համար մենք օգտագործում ենք մեկ այլ տեսակի արկ, որը համընկնում է այլ տեսակի բարի թշնամու բլոկի հետ. Այդ դեպքում մենք քանդում ենք երկու sprites և հաշիվը բարձրացնում մեկով: Եթե արկը դիպչի պատին, մենք քանդում ենք նրա սփրիտը:

Գրեթե ավարտված է: Այժմ խաղը կարելի է խաղալ, բայց դժվար թե դեռևս որևէ մարտահրավեր ՝ միայն մեկ մակարդակով և դրանով բավականին պարզ: Մենք կարող ենք ձեռքով ավելի շատ մակարդակներ կազմել կամ գրել այնպիսի ալգորիթմ, որը մեզ համար ինքնաբերաբար կստեղծի այդ մակարդակները, չնայած դրանք, իհարկե, այնքան գեղեցիկ չեն լինի, որքան մարդու կողմից ստեղծված մակարդակները:

Քայլ 4: Անսահման արկածներ

Անսահման արկածներ
Անսահման արկածներ
Անսահման արկածներ
Անսահման արկածներ
Անսահման արկածներ
Անսահման արկածներ

Պատահական մակարդակի ստեղծման գործառույթը սկզբում մի փոքր սարսափելի է թվում, բայց դա իսկապես քայլերի պարզ շարք է ՝ նոր մակարդակ ալգորիթմական ձևով ստեղծելու համար, այնպես, որ նոր մակարդակը անցանելի է խաղարկվող կերպարների համար: Նախ, մենք հոգ ենք տանում մեր բնավորությունը այդ նոր մակարդակի հասցնելու մասին `օգտագործելով բարի խաղացողի համընկնումը … տեղում` մենք օգտագործում ենք պորտալի դռան սալիկը որպես նոր մակարդակի ձգան: Generate_level գործառույթում մենք նախաստորագրում ենք տող, col և հնարավորություն փոփոխականները: Նաև մենք ստեղծում ենք սալիկների նոր քարտեզ ՝ նույն չափի, ինչ նախկինում, բայց դատարկ: Ահա թեև մի փոքր նախազգուշացում. Հավաքածուն… սալիկապատման տողում… սոլ… բլոկ օգտագործելու համար սալիկապատկերին անհրաժեշտ է ունենալ այս հատուկ սալիկները, - դա մի փոքր հակասող ինտուիտիվ է և գուցե սխալ ՝ Makecode- ում: Այսպիսով, այն, ինչ ձեզ հարկավոր է անել, սալիկների քարտեզ ստեղծելն է, տեղադրեք սալիկների բոլոր տեսակները, որոնք ցանկանում եք օգտագործել պատահական սերնդում ԵՎ ջնջել դրանք:

Մենք ձեռքով դնում ենք առաջին սալիկը (0x6) և նվագարկիչը դրա վերևում: Այնուհետև հաջորդ քայլը կրկնում ենք 30 անգամ. Հաջորդ քայլը Trueշմարիտ -կեղծ ստուգումների պարզ շարք է, որը որոշում է, թե հաջորդ սյունակի սալիկապատումը մեզ համար կլինի 1) նույն մակարդակի, ինչ նախորդ 2) մեկ վեր կամ 3) մեկ ներքև: Նաև շատ փոքր հավանականություն կա, որ հաջորդ սալիկը կլինի լավայի սալիկ. Մենք չենք ուզում դրանցից շատերը: Ստացված յուրաքանչյուր սալիկից հետո մենք լավա ենք լցնում դրա տակ գտնվող տարածքը `պարզապես գեղեցկության համար: Որպես վերջին քայլ, մենք ավելացնում ենք թշնամիներին և արկղերը և դրանք տեղադրում պատահական ձվադրման սալիկների վերևում:

Քայլ 5: Արկածները սկսվում են

Սկսվում է արկածախնդրությունը
Սկսվում է արկածախնդրությունը

Վոյա! Մենք ավարտեցինք մեր ծրագրավորողը, և մեր հերոսը կարող է գնալ անսահման արկածախնդրության ՝ հաղթելով չղջիկներին և քանդելով արկղերը: եթե խնդիրներ եք ունենում, կարող եք ներբեռնել կոդը մեր GitHub պահոցից:

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

TinkerGen- ը ստեղծել է Kickstarter արշավ MARK- ի համար (Make A Robot Kit), ռոբոտների հավաքածու ՝ կոդավորման, ռոբոտաշինության, AI!

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