Агуулгын хүснэгт:

Battle City ремейкийг GameGo дээр Makecode Arcade ашиглан: 4 алхам (зурагтай)
Battle City ремейкийг GameGo дээр Makecode Arcade ашиглан: 4 алхам (зурагтай)

Видео: Battle City ремейкийг GameGo дээр Makecode Arcade ашиглан: 4 алхам (зурагтай)

Видео: Battle City ремейкийг GameGo дээр Makecode Arcade ашиглан: 4 алхам (зурагтай)
Видео: Minecraft Trial VS Blockman Go, Block Craft 3d, LokiCraft, Mini Block Craft & Crafting and Building 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 чиглэл.

Дараа нь, Enemy блокийн үүсгэсэн спрайт дээр бид график эффект нэмж, санамсаргүй хоосон хавтан дээр байрлуулж, энэ спрайтын хувьд pick_direction функцийг дуудна. Дайсан хананд цохигдоход бид ижил функцийг pick_direction гэж нэрлэдэг.

Энэ функцэд юу багтдаг вэ? Энд бүх зүйл жаахан төвөгтэй болж эхэлдэг тул түр хүлээгээрэй. Дайсны танк дээшлэх 50 хувь, доошлох магадлал 50 хувь байдаг - бид спрайтийг зохих ёсоор нь өөрчилдөг. Энд байгаа цорын ганц заль мэх бол бид дайсны танктай тохирох утгыг dush_directions_list -т шинэ чиглэл болгон өөрчлөх шаардлагатай байгаа тул сумыг зөв чиглэлд галлах явдал юм. Үүний тулд бид dushman sprite -ийн индексийг dushman_sprite_list -ээс олоод, тухайн зүйлийн утгыг дайсны_ чиглэлүүдийн жагсаалтаас өөрчилнө.

Эцэст нь буудлага нэмж оруулъя. Бид тоглоомын шинэчлэлтийг 500 ms блок тутамд нэмж, нэг зүйлийг dush_sprite_list -д оруулна. 30% -ийн магадлалтайгаар дайсны спрайт дайсны сумыг хөдөлгөөний чиглэлд харвах болно.

Хэрэв бид одоо тоглоомыг симуляцаар эхлүүлбэл шар танк болон дайсны танкууд нэг цэг дээр гарч хоосон орон зай руу явж байгааг харж болно. Бид буудаж болно, тэд манай шар танкийг буудаж чадна, гэхдээ юу ч болохгүй. Энэ нь утгагүй мэт санагдаж байна:) Гоёл чимэглэл, тоглоомын механизмыг сүүлчийн алхам болгон нэмье.

Алхам 3: Тоглоомын 42

Тоглоомын 42
Тоглоомын 42
Тоглоомын 42
Тоглоомын 42
Тоглоомын 42
Тоглоомын 42

Бид энэ алхамыг Info таб дээрээс амьдрал, оноо нэмж, амьдралыг 10 болгож, оноог тэг болгох замаар эхлүүлэх гэж байна. Дараа нь бид блокны хавтангийн газрын зургийг нэмж оруулав. Дээрх дэлгэцийн агшинд харсан шиг харагдахын тулд файлын газрын зургийг зур. Хана нэмэхээ бүү мартаарай!

Нөгөө төрлийн пуужингийн төрөл нь бусад төрлийн тоглогчидтой давхцдаг. Энэ бол дайсны сум манай шар танк руу оногдсон үе юм. Бид эдгээр пуужингууд нь өөрсдийнх биш, дайсны сум гэдэгт итгэлтэй байх ёстой. Үүнтэй адил, өөр төрлийн спрейтийн өөр нэг блок дээр бусад төрлийн дайсантай давхцаж байгаа нь бид пуужин нь шар савнаас харваж байгаа эсэхийг шалгадаг бөгөөд хэрэв энэ нөхцөл үнэн гэж үнэлэгдвэл бид бусад спритийг (дайсны танк) устгаж, жагсаалтаас хасна уу. dush_sprite_list -ээс нэгийг нэмж оноо аваарай.

Хамгийн сүүлчийн зүйл бол ялалт, ялагдлын нөхцөл юм - ялалтын хувьд бид оноо өндөр эсвэл мөнхийн блок дээр 10 -тай тэнцэх эсэхийг шалгах болно. Хэрэв тийм бол бид ялалтын дэлгэцийг харуулна. Тэгээд тэг блок дээр бид Game Over дэлгэцийг харуулдаг.

Тоглоом хүлээгдэж буй байдлаар ажиллаж байгаа эсэхийг одоо симуляци дээр туршиж үзээрэй. Дараа нь үүнийг GameGo -д байршуулж, дайсны танкуудыг сүйрүүлээрэй!

Алхам 4: Эцэс төгсгөлгүй тоглоом ба сайжруулалт

Эцэс төгсгөлгүй тоглоом ба сайжруулалт
Эцэс төгсгөлгүй тоглоом ба сайжруулалт

Манай GitHub репозитороос та Makecode аркад зориулсан хоёр файлыг татаж авах боломжтой - нэг нь хэрэв та энэ зааврыг дагаж мөрдвөл нөгөөх нь санамсаргүйгээр үүсгэсэн түвшний дэвшилттэй хувилбарыг сайжруулсан тохиолдолд яг адилхан болно. Энэ нь 10 түвшинтэй бөгөөд тус бүрийг санамсаргүй байдлаар үүсгэсэн бөгөөд дараалсан түвшин бүрт дайсны тоо нэмэгддэг.

Мэдээжийн хэрэг, та эсвэл таны оюутнууд үүн дээр нэмж тоглоом нэмж болно! Илүү сайн хөгжим, хагардаг хана, ялалтын өөр нөхцөл гэх мэт!

Хэрэв та тоглоомын сайжруулсан хувилбарыг хийвэл доорх сэтгэгдлээр хуваалцаарай! GameGo болон үйлдвэрлэгч болон STEM сургагчдад зориулсан бусад тоног төхөөрөмжийн талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл манай вэбсайт https://tinkergen.com/ хаягаар орж манай блогт бүртгүүлнэ үү.

TinkerGen нь код бичих, робот техник, хиймэл оюун ухаан заах MARK (Make A Robot Kit) роботын Kickstarter кампанит ажлыг эхлүүлжээ.

Зөвлөмж болгож буй: