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

Makecode Arcade ашиглан GameGo дээр хязгааргүй түвшинтэй платформер: 5 алхам (зурагтай)
Makecode Arcade ашиглан GameGo дээр хязгааргүй түвшинтэй платформер: 5 алхам (зурагтай)

Видео: Makecode Arcade ашиглан GameGo дээр хязгааргүй түвшинтэй платформер: 5 алхам (зурагтай)

Видео: Makecode Arcade ашиглан GameGo дээр хязгааргүй түвшинтэй платформер: 5 алхам (зурагтай)
Видео: Хэрхэн хүссэн Arcade Game-ээ код бичиж сурах вэ? | Herhen hussen arcade game code bichej surah ve? 2024, Оны зургадугаар сарын
Anonim
Image
Image

GameGo бол TinkerGen STEM -ийн боловсруулсан Microsoft Makecode нийцтэй чимэг тоглоомын зөөврийн консол юм. Энэ нь STM32F401RET6 ARM Cortex M4 чип дээр суурилсан бөгөөд STEM сурган хүмүүжүүлэгчид эсвэл чимэг видео тоглоом бүтээх дуртай хүмүүст зориулагдсан бөгөөд та энэ хичээлийг дагаж Makecode Arcade симулятор дээр тоглоомыг туршиж үзээд GameGo дээр ажиллуулж болно.

Энэ нийтлэлд бид санамсаргүй байдлаар үүсгэсэн хязгааргүй түвшин бүхий платформ тоглоом хийх болно. Платформ тоглогчийн хувьд тоглогчийн хяналттай дүр нь саад бэрхшээлээс зайлсхийхийн тулд түдгэлзүүлсэн платформуудын хооронд үсрэх ёстой. Орчин нь ихэвчлэн өөр өөр өндөртэй тэгш бус газар нутгийг даван туулах ёстой. Тоглогч нь дүрээ үхэлд хүргэх эсвэл шаардлагатай үсрэлтийг алдахгүйн тулд үсрэлтийн өндөр, зайг хянах боломжтой байдаг. Бид эдгээр бүх үндсэн элементүүдийг хэрэгжүүлж, сүүлчийнх нь төгсгөлд хүрэх үед шинэ түвшинг бий болгох тусгай функцийг нэмж оруулах болно. Эхлээд үзье!

Хангамж

GameGo

Алхам 1: Баатар

Баатар
Баатар

Эхний алхам бол бид алтер-эго бүтээх болно. Миний зурах ур чадвар нэлээд муу байгаа тул галлерейгаас нэгийг ашиглахаар шийдлээ;) Бидний хийсэн өмнөх тоглоомоос ялгаатай нь энэ платформ дээр бидний тоглож болох дүр зөвхөн зүүн, баруун тийш хөдөлж, үсэрч чаддаг. Тиймээс гол дүрд хоёр өөр спрайт байхын оронд энэ удаад нэг л хангалттай - бид чиглэлээ өөрчлөхдөө спрайтийн дүрсийг зүгээр л эргүүлж чадна.

Хамгийн эхний хийх зүйл бол дэвсгэр болон хавтангийн зургийг нэмэх явдал юм. Би 32х8 хэмжээтэй плитаны газрын зургийг сонгосон - эхний түвшинд 2 -р зураг дээрх шиг гараар зурах болно. Дараа нь бид тоглодог дүрээ mySprite -тэй тоглогчийн блок болгон нэмж, хавтангийн дээд талд байрлуулна.. Бид мөн камерыг тоглож болох дүрээр хөдөлгөж, зүүн ба баруун хөдөлгөөнийг хянахаар тохируулсан болно. Учир нь v -ийг 0 болгоно, учир нь бидний тэмдэгт газрын зураг дээр y чиглэлд чөлөөтэй хөвж чадахгүй байх ёстой. Товчлуур дээр дарагдсан хоёр блок нэмж оруулаарай: нэг нь зүүн товчлуур, нөгөө нь баруун талд. Зүүн товчлуурыг дарахад товчлуурыг дарахаас өмнө бидний чиглэл "зүүн" байсан эсэхийг шалгадаг. Хэрэв тийм бол бид зүүн тийшээ үргэлжлүүлнэ. Хэрэв тийм биш бол бид дүрийнхээ спрайт дүр төрхийг эргүүлэх хэрэгтэй. Зөв хөдөлгөөн хийх логик.

Одоогийн байдлаар бүх зүйл сайн байгаа, цорын ганц асуудал бол манай баатар ямар ч саад бэрхшээлийг даван туулж чадахгүй юм шиг санагдаж байна. Тиймээс бид үсрэлтийг нэмэх хэрэгтэй. Бид товчлуурыг дарах хяналтыг хянаж, илрэх үед бид хувьсах үсрэлтийг 1 болгож, цаг үсрэх хөдөлгөөнийг тэмдэглэж, тэмдэгтийн спрейтийн хурдыг -200 (дээшлэх) болгоно. Дараа нь тодорхой хугацааны дараа бид хурдыг 200 болгож тохируулах болно, ингэснээр манай баатар пуужин шиг тэнгэр өөд харвахгүй.

Бид одоо сорилтыг давах зохистой баатар бүтээсэн гэж бодож байна! За, сорилт хаана байна вэ?

Алхам 2: Дайснууд

Дайснууд
Дайснууд

Бид дайснуудын спрайтуудыг хадгалахын тулд массив бүтцийг ашиглах болно. Дайснуудын хувьд бид бага зэрэг товчлол аваад сарьсан багваахайг ашиглах болно:) коронавирусын лавлагаа биш, зүгээр л сарьсан багваахай нисч чаддаг, тиймээс бид тоглож болох дүрийнхээ нэгэн адил тэдний таталцлыг "дуурайх" шаардлагагүй болно. Шинээр үүсгэсэн сарьсан багваахайг санамсаргүй түрс ялтсууд дээр байрлуулж (бага зэрэг цагаан тэмдгээр тэмдэглэсэн) дайсны блок хэлбэрээр үүсгэсэн спрайт дээр ашиглаж, vx хурдыг нь -10 болгож (аажмаар баруун тийш шилжих). Дараа нь 2000 ms тутамд тоглоомын шинэчлэлт хийхдээ бид dush_list -ийн зүйл бүрийг давтаж, чиглэлээ санамсаргүйгээр өөрчилж, шаардлагатай бол сарьсан багваахайн спритийг эргүүлнэ (хөдөлгөөний чиглэл дэх өөрчлөлтийг тусгахын тулд). Эцэст нь бид бусад төрлийн гайхалтай Enemy блоктой давхцаж буй тоглогчийн төрлийг нэмж, тоглогч аль хэдийн цохигдсон эсэхийг хялбархан шалгадаг. Хэрэв бид нэг амьдралыг хасахгүй бол хит тугийг 1 болгож (цохисон) тохируулаад таймерыг эхлүүлнэ үү. Сүүлчийн цохилтын хугацаа өнгөрснөөс хойш 500 ms -ийн дараа бид тугны цохилтыг 0 болгож буцааж өөрчилдөг. Тоглогч дайсантай мөргөлдсөнийхөө дараа маш их үнэ цэнэтэй амьдралаа алдахгүйн тулд үүнийг хийдэг.

Бид яаж байгааг шалгаж үзье. Мэдээжийн хэрэг, бүх сарьсан багваахай нисч, тоглогчийг хазаж байгаа нь дүр зураг илүү амьд харагдаж байна. Одоо бидэнд баатарлаг үйлсээ хийх зэвсэг хэрэгтэй байна!

Алхам 3: Зэвсэг

Зэвсэг
Зэвсэг

Зэвсгийн хувьд би хуучин Nintendo тоглоомоос хоёр сүнсний ах дүүсийн тухай урам зориг авч байсан юм.:) Крат спрейтийг дайснуудаа нэмсэнтэй ижил түвшинд нэмье. Бид бас has_crate хувьсагчийг -1 болгож эхлүүлдэг бөгөөд энэ нь бидний зан чанар хайрцаггүй болохыг харуулж байна. Төрөл бүрийн тоглогчийн бусад төрлийн хүнсний блоктой давхцах тохиолдолд бид хайрцаг барьж байгаа эсэхийг шалгадаг бөгөөд хэрэв байхгүй бол has_crate хувьсагчийг жагсаалтын крат спрейтийн индекс болгон тохируулдаг. Дараа нь тоглоомын шинэчлэлтийн блок дээр бид тухайн спрайтийг тоглогчийн спрайттай хамт хөдөлгөж, хэрэв А товчлуурыг дарвал кратын vx хурдыг 1200 эсвэл -1200 болгон өөрчилнө (дүрийн хөдөлгөөний чиглэлээс хамаарч). Бид бас has_crate хувьсагчийг дахин -1 болгож, яг одоо агаарт хөөргөсөн кратны төрлийг Projectile болгож өөрчилсөн.

Эцэст нь хэлэхэд, хайрцагнууд хөөргөхдөө дайснуудаа үнэхээр устгах ёстой (гэхдээ дайснууд санамсаргүй байдлаар хайрцган дээр бүдэрч унах ёсгүй! Тиймээс л бид хайрцгийг Хүнс гэж бичээд зөвхөн хөөргөхөд нь Пуужин болгон өөрчилдөг), цохихдоо өөрөө устгах ёстой. хана. Бид үүнээс өөр төрлийн Projectile төрлийн бусад төрлийн дайсны блоктой давхцдаг өөр нэг хувилбарыг ашигладаг - энэ тохиолдолд бид спрайт хоёуланг нь устгаж, оноог нэгээр нэмэгдүүлдэг. Хэрэв Projectile хананд цохивол бид түүний спрайтийг устгадаг.

Одоо бараг дууслаа! Тоглоомыг одоо тоглох боломжтой, гэхдээ бараг ямар ч сорилт байхгүй - зөвхөн нэг түвшин, маш энгийн. Бид гараар илүү олон түвшинг гаргаж эсвэл эдгээр түвшинг автоматаар бий болгох алгоритм бичиж болно, гэхдээ энэ нь хүний гараар бүтээсэн түвшнийх шиг үзэсгэлэнтэй биш байх болно.

Алхам 4: Хязгааргүй адал явдал

Хязгааргүй адал явдал
Хязгааргүй адал явдал
Хязгааргүй адал явдал
Хязгааргүй адал явдал
Хязгааргүй адал явдал
Хязгааргүй адал явдал

Санамсаргүй түвшин үүсгэх функц нь эхэндээ жаахан аймшигтай мэт санагддаг, гэхдээ энэ нь тоглож болох дүрд шинэ түвшинг дамжуулахын тулд шинэ түвшинг алгоритмаар гаргах энгийн алхам юм. Нэгдүгээрт, бид дүрээ шинэ түвшинд хүргэхийн тулд анхаарал тавьдаг. Тоглогчийн давхардсан байршлыг ашиглан байршил дээр порталын хаалганы хавтанг шинэ түвшинд хүргэх түлхүүр болгон ашигладаг. Generate_level функцид бид мөр, col, тохиолдлын хувьсагчдыг эхлүүлдэг. Мөн бид өмнөх хавтангийн хэмжээтэй ижил хэмжээтэй, гэхдээ хоосон шинэ хавтангийн газрын зургийг бий болгодог. Энд жижигхэн анхааруулга байна - tilemap эгнээнд… col… блок ашиглахын тулд хавтангийн карт нь эдгээр тусгай хавтантай байх ёстой - энэ нь арай ойлгомжтой бөгөөд магадгүй Makecode -ийн алдаа байж магадгүй юм. Тиймээс, та хийх ёстой зүйл бол хавтангийн зураг үүсгэх, ашиглахыг хүсч буй хавтангийн бүх төрлийг санамсаргүй байдлаар байрлуулж, дараа нь устгах явдал юм.

Бид эхний хавтан (0x6) болон тоглуулагчийг гараар тавьдаг. Дараа нь бид дараагийн алхамаа 30 удаа давтана. Дараагийн алхам бол үнэн ба хуурамч шалгалтуудын энгийн цуврал бөгөөд дараагийн багана нь 1) өмнөх түвшин 2) нэг дээш эсвэл 3) нэг доош байх эсэхийг шийдэх болно. Дараагийн хавтан нь лааван хавтан болох магадлал маш бага байдаг - бид эдгээрийг хэт олон байхыг хүсэхгүй байна! Плита бүрийг хийсний дараа бид түүний доорх зайг лааваар дүүргэдэг. Эцсийн алхам бол бид дайснууд болон хайрцгийг нэмж, санамсаргүй түрс ялтсууд дээр байрлуулна.

Алхам 5: Адал явдал эхэлнэ

Адал явдал эхэлнэ
Адал явдал эхэлнэ

Воила! Бид платформоо дуусгаж, баатар маань сарьсан багваахайг ялж, хайрцгийг устгахын тулд хязгааргүй адал явдалд явж чадна. Хэрэв танд асуудал тулгарвал та кодыг манай GitHub репозитороос татаж авах боломжтой.

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

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

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