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

Battle City Remake- ը GameGo With Makecode Arcade- ի հետ. 4 քայլ (նկարներով)
Battle City Remake- ը GameGo With Makecode Arcade- ի հետ. 4 քայլ (նկարներով)

Video: Battle City Remake- ը GameGo With Makecode Arcade- ի հետ. 4 քայլ (նկարներով)

Video: Battle City Remake- ը GameGo With Makecode Arcade- ի հետ. 4 քայլ (նկարներով)
Video: ICE SCREAM STREAM CREAM DREAM TEAM 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 ՝ բարի խաղացողի բլոկը սփռելու համար և դեղին բաք նկարեք դեպի վերև ՝ որպես մեր մեկնարկային սփրեյթ, տեղադրեք այդ բլոկը մեկնարկային բլոկի ներսում: Ավելացնել move mySprite կոճակների բլոկով: Այժմ մենք ունենք տանկ, որը կարող ենք շարժվել մոդելավորման կոճակներով: Հիանալի է, բայց այն միշտ ուղղված է նույն ուղղությամբ, նույնիսկ երբ ներքև կամ կողքով ենք շարժվում…

Դա շտկելու համար ավելացնենք ևս չորս բլոկ, մեկը յուրաքանչյուր ուղղության կոճակի համար: Ստեղծեք նոր փոփոխական, որը կոչվում է ուղղություն. Մենք կփրկենք դրա մեջ մեր տանկի շարժման ուղղությունը, 100 -ը կհամապատասխանի ներքևին, -100 -ը կհամապատասխանի վերևին, 200 աջ և 200 ձախ. Ինչու՞ են այս թվերը: Կտեսնեք ավելի ուշ, երբ մենք ավելացնենք արկերը, որոնք մեր տանկը կկրակի: Այս չորս բլոկներից յուրաքանչյուրի տրամաբանությունը շատ պարզ է. Մենք ստուգում ենք, թե արդյոք նոր ուղղությունը (կոճակի սեղմումից) նույնն է, ինչ նախկինում: Եթե դա այդպես է, մենք հիմնականում ոչ մի փոփոխություն չենք կատարում: Եթե դա այդպես չէ, մենք փոխում ենք տանկի սպրայտը, իսկ ներքևի և ձախ ուղղությամբ այն շրջում ենք սպրայտի պատկերը `խուսափելու համար լրացուցիչ բծեր նկարելուց: Վերջապես, եկեք ուղղության մեկնարկային արժեքը նշանակենք -100 (տանկը դեպի վեր), քանի որ այսպես է մեր տանկը սկսում խաղը: Փորձեք տեղափոխել դեղին բաքը հիմա, սպրիտը կփոխվի շարժման ուղղության համաձայն: Գերազանց, հիմա եկեք ավելացնենք փամփուշտներ:

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

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

Քայլ 2: Դուրս բերեք թշնամիներին

Դուրս բեր թշնամիներին
Դուրս բեր թշնամիներին
Դուրս բեր թշնամիներին
Դուրս բեր թշնամիներին

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

Հաջորդը մենք խաղի թարմացման վրա ստեղծում ենք յուրաքանչյուր… ms արգելափակում, այնտեղ տեղադրում spawn_time փոփոխական: Բլոկի ներսում տրամաբանությունը պարզ է. Եթե մարտի դաշտում թշնամիների ընդհանուր թիվը պակաս է թշնամիների առավելագույն թույլատրելի թվից, թշնամի ավելացրու dijmin_շինական_լիս և ավելացրու 200 (գնում է ճիշտ) ուղղություն այդ թշնամու համար:

Հաջորդը, ստեղծվող բարի թշնամու բլոկում մենք ավելացնում ենք մի քանի գրաֆիկական էֆեկտներ, տեղադրում դրանք պատահական դատարկ սալիկի վրա և կանչում pick_direction գործառույթը այս սփրայթի համար: Բազում թշնամին հարվածում է պատին, մենք նույն գործառույթն ենք անվանում `pick_direction:

Ի՞նչ կա այդ գործառույթի մեջ: Ահա, որտեղ ամեն ինչ սկսում է մի փոքր բարդանալ, այնպես որ սպասեք: Թշնամու տանկը բարձրանալու և իջնելու 50 տոկոս հավանականություն կա. Մենք համապատասխանաբար փոխում ենք սպրիտը: Այստեղ միակ հնարքն այն է, որ մենք նաև պետք է փոխենք հակառակորդի տանկի համապատասխան արժեքը թշնամու_ուղղորդված_ ցուցակում `իր նոր ուղղությամբ, այնպես որ մենք կցանկանայինք, որ այն գնդակներ արձակեր ճիշտ ուղղությամբ: Դրա համար մենք թշնամու sprite- ի ինդեքսը գտնում ենք دشمن_շրջանի_շրջանում և այդ նյութի արժեքը փոխում ենք թշնամու_ուղղությունների ցուցակում:

Ի վերջո, եկեք ավելացնենք կրակոցներ: Խաղի թարմացման վրա մենք ավելացնում ենք ևս մեկ 500 մկս յուրաքանչյուր արգելափակում և նյութի համար տեղադրում ենք թշնամու_շրջանի_լրացում: 30% հավանականությամբ թշնամու սայթաքուն կրակի թշնամու արկը իր շարժման ուղղությամբ:

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

Քայլ 3: Խաղի 42

Խաղի 42 -ը
Խաղի 42 -ը
Խաղի 42 -ը
Խաղի 42 -ը
Խաղի 42 -ը
Խաղի 42 -ը

Մենք պատրաստվում ենք սկսել այս քայլը ՝ ավելացնելով կյանք և միավոր «Տեղեկատվություն» ներդիրից, իսկ կյանքը սահմանելով 10 և միավոր զրոյի: Այնուհետև ավելացնում ենք բլոկների սալիկների քարտեզը…. Նկարեք ֆայլի քարտեզը, որպեսզի տեսնեք այն, ինչ տեսնում եք վերևի սքրինշոթում: Մի մոռացեք ավելացնել պատերը:

Եկեք ավելացնենք բարի արկ, որը համընկնում է մյուսին: Մենք պետք է համոզվենք, որ այս արկերը թշնամու գնդակներ են և ոչ թե մեր սեփականը, ուստի մենք կավելացնենք, որ եթե բլոկի ներսում վիճակը և եթե այն գնահատվում է որպես Trueշմարիտ, ապա մեկը հանենք կյանքի հաշվից: Նմանապես, մեկ այլ բլոկի վրա Sprite տեսակի Արկը համընկնում է մյուսի Բարի տեսակի թշնամին մենք համոզվում ենք, որ արկը դեղին տանկից արկ է, և եթե այս պայմանը գնահատվի որպես Trueշմարիտ, մենք ոչնչացնում ենք այլ Գիշերը (թշնամու տանկը), հանում ենք ցուցակից թշնամու_գույքի ցանկից և ավելացրեք մեկը միավորին:

Վերջին բանը հաղթանակի և պարտության պայմաններն են. Հաղթանակի համար մենք ստուգելու ենք, որ միավորն ավելի բարձր է, թե՞ հավասար է 10 -ի ընդմիշտ բլոկում: Եթե այդպես է, ապա մենք ցույց ենք տալիս հաղթանակի էկրանը: Իսկ կյանքի զրոյական բլոկում մենք ցուցադրում ենք Game Over էկրանը:

Այժմ փորձեք այն սիմուլյացիայի մեջ ՝ տեսնելու, թե արդյոք խաղն ընթանում է սպասվածի պես: Ապա վերբեռնեք այն GameGo- ում և վայելեք թշնամու տանկերը ջարդելուց:

Քայլ 4: Անվերջ խաղ և բարելավումներ

Անվերջ խաղ և բարելավումներ
Անվերջ խաղ և բարելավումներ

Մեր GitHub շտեմարանում կարող եք ներբեռնել Makecode arcade- ի երկու ֆայլ. Մեկը նույնն է, ինչ կստանաք, եթե հետևեք այս հրահանգին, իսկ մյուսը `արդիականացված տարբերակին, որը պատահականորեն առաջացրել է մակարդակի առաջընթաց: Այն ունի 10 մակարդակ, որոնցից յուրաքանչյուրը պատահականորեն ստեղծվում է յուրաքանչյուր հաջորդ մակարդակում թշնամիների ավելացման հետ:

Եվ, իհարկե, կան ավելի շատ բաներ, որոնք դուք կամ ձեր ուսանողները կարող եք ավելացնել խաղին ի լրումն դրա: Կա ավելի լավ երաժշտություն, փշրվող պատեր, հաղթանակի տարբեր պայմաններ և այլն:

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

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

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