Სარჩევი:

Battle City რიმეიკი GameGo With Makecode Arcade: 4 ნაბიჯი (სურათებით)
Battle City რიმეიკი GameGo With Makecode Arcade: 4 ნაბიჯი (სურათებით)

ვიდეო: Battle City რიმეიკი GameGo With Makecode Arcade: 4 ნაბიჯი (სურათებით)

ვიდეო: Battle City რიმეიკი GameGo With Makecode Arcade: 4 ნაბიჯი (სურათებით)
ვიდეო: თამაშების სრული ევოლუცია Resident Evil | Resident Evil-ის ყველა თამაში 2024, ნოემბერი
Anonim
Image
Image

GameGo არის Microsoft Makecode თავსებადი რეტრო სათამაშო პორტატული კონსოლი, რომელიც შემუშავებულია TinkerGen STEM განათლების მიერ. იგი დაფუძნებულია STM32F401RET6 ARM Cortex M4 ჩიპზე და დამზადებულია STEM პედაგოგებისთვის ან უბრალოდ მათთვის, ვისაც უყვარს გართობა რეტრო ვიდეო თამაშების შექმნით. შეგიძლიათ მიყევით ამ გაკვეთილს და სცადოთ თამაში Makecode Arcade სიმულატორში და შემდეგ გაუშვათ GameGo– ზე.

ამ სტატიაში ჩვენ ვცდილობთ ხელი შევუწყოთ კლასიკურ Battle City სატანკო მსროლელ თამაშს, თავდაპირველად წარმოებული და გამოქვეყნებული 1985 წელს Namco– ს მიერ Nintendo გასართობი სისტემისთვის (NES). თავდაპირველ თამაშში მოთამაშე აკონტროლებს ტანკს და ისვრის ჭურვებს მტრის ტანკების გასანადგურებლად. მტრის ტანკები ცდილობენ გაანადგურონ მოთამაშის ბაზა, ისევე როგორც თავად მოთამაშის ტანკი. ჩვენ შევიტანთ გარკვეულ ცვლილებებს თამაშის პროცესში, რათა უკეთ განვათავსოთ ბლოკის პროგრამირების პრაქტიკა GameGo– სთან, მაგრამ ჩვენი რიმეიკი მაინც შეინარჩუნებს მსგავსებას ორიგინალ თამაშთან. Მოდით დავიწყოთ!

მარაგები

თამაში წადი

ნაბიჯი 1: ჩვენი ალტერ -ეგო - ყვითელი ტანკი

ჩვენი ალტერ -ეგო - ყვითელი ტანკი
ჩვენი ალტერ -ეგო - ყვითელი ტანკი

გახსენით Makecode Arcade https://arcade.makecode.com/ და დააწკაპუნეთ ახალ პროექტზე. ჩვენ დავიწყებთ ჩემს ალტერ-ეგოს ყვითელ ავზს. შეარჩიეთ Set mySprite to sprite of kind player block და დახაზეთ ყვითელი ავზი ზევით, როგორც ჩვენი საწყისი სპრაიტი, დაადეთ ეს ბლოკი საწყისი ბლოკის შიგნით. დაამატეთ move mySprite ღილაკების ბლოკით. ახლა ჩვენ გვაქვს ტანკი, რომლის გადაადგილებაც შეგვიძლია სიმულაციის ღილაკებით! მშვენიერია, მაგრამ ის ყოველთვის ერთი მიმართულებით დგას, მაშინაც კი, როდესაც ჩვენ ქვევით ან გვერდულად მივდივართ…

ამის გამოსასწორებლად, დავამატოთ კიდევ ოთხი ბლოკი, თითო თითოეული მიმართულებით ღილაკზე. შევქმნათ ახალი ცვლადი, სახელწოდებით მიმართულება - ჩვენ შევინახავთ მასში ჩვენი ავზის მოძრაობის მიმართულებას, 100 შეესაბამება ქვემოთ, -100 შეესაბამება ზემოთ, 200 მარჯვნივ და -200 მარცხნივ. რატომ ეს რიცხვები? თქვენ ნახავთ მოგვიანებით, როდესაც ჩვენ დავამატებთ ჭურვებს, რომელსაც ჩვენი ტანკი გაისვრის. ამ ოთხივე ბლოკის ლოგიკა ძალიან მარტივია - ჩვენ ვამოწმებთ, არის თუ არა ახალი მიმართულება (ღილაკის დაჭერით) წინა მიმართულების მსგავსი. თუ ეს ასეა, ჩვენ ძირითადად არავითარ ცვლილებას არ ვაკეთებთ. თუ ეს არ არის, ჩვენ შევცვლით სატანკო სპრაიტს და ქვევით და მარცხნივ მიმართულების შემთხვევაში, ჩვენ ვტრიალებთ სპრაიტის გამოსახულებას, რათა თავიდან ავიცილოთ დამატებითი ნაპერწკლების ხატვა. დაბოლოს, მოდით მივცეთ მიმართულების საწყისი მნიშვნელობა -100 (ავზი ზემოთ), რადგან ასე იწყება ჩვენი ტანკი თამაშს. სცადეთ ყვითელი ავზის გადატანა ახლა, სპრაიტი შეიცვლება მოძრაობის მიმართულების შესაბამისად! შესანიშნავია, ახლა მოდით დავამატოთ ტყვიები.

ჩვენ ვასროლებთ ტყვიებს დაყენებული ჭურვით ჭურვიზე (დავხატოთ პატარა ვერცხლის კვადრატი იმ სპრატისთვის) mySprite– დან vx vy სიჩქარეებით. ღილაკზე დაჭერილი ბლოკის შიგნით, ჩვენ უნდა შევამოწმოთ მიმართულების აბსოლუტური მნიშვნელობა, თუ ყვითელი ავზი არის მარცხნივ/მარჯვნივ ზემოთ/ქვემოთ. ჩვენ ვაგრძელებთ ჭურვის გასროლას მიმართულების ცვლადი სიჩქარით -სწორედ ამიტომ გვქონდა -100/100/-200/200 მიმართულების მნიშვნელობებისთვის.

ახლა ჩვენ გვაქვს ყვითელი ტანკი, რომელსაც შეუძლია ჭურვების გასროლა და გადაადგილება. ყვითელ იმიტირებულ ტანკებს რომ ჰქონდეთ შეგრძნება, ის აუცილებლად იგრძნობდა თავს მარტოსულად ამ ცარიელ სიცარიელეში მტრების და გასაკეთებელი ნივთების გარეშე. ასე რომ, შემდეგი ნაბიჯისათვის მოდით დავამატოთ მტრები, რომ მან დრო გაატაროს.

ნაბიჯი 2: გამოიყვანეთ მტრები

გამოიყვანეთ მტრები
გამოიყვანეთ მტრები
გამოიყვანეთ მტრები
გამოიყვანეთ მტრები

ჩვენ ამ ნაბიჯს დავიწყებთ რამოდენიმე ცვლადის შექმნით: ორი მასივი (ერთი მტრის შპრიცების შესანახად და მეორე მტრის მიმართულებების შესანახად), ქვირითის დროის ცვლადი ქვირითებს შორის დროის შესანახად, მტრის რაოდენობა მტრების მაქსიმალური რაოდენობის შესანახად ამავე დროს. ჩვენ ასევე დავამატებთ ორ ჭურვს (ჭურვი და მტრის ჭურვი), რომელიც ისვრის საწყის ბლოკში - ეს დაგვეხმარება მოგვიანებით შეცდომების თავიდან აცილებაში.

შემდეგ ჩვენ ვქმნით თამაშის განახლებას ყოველ… ms ბლოკში, ჩადეთ spawn_time ცვლადი იქ. ბლოკის შიგნით ლოგიკა მარტივია - თუ ბრძოლის ველზე მტრების საერთო რაოდენობა მტრების მაქსიმალურ დასაშვებ რიცხვზე ნაკლებია, დაამატეთ მტერი arm_sprite_list და დაამატეთ 200 (სწორი მიმართულებით) მიმართულება იმ მტრისთვის.

შემდეგი, სახის Sprite სახის Enemy ბლოკში ჩვენ დავამატებთ რამდენიმე გრაფიკულ ეფექტს, ვდებთ შემთხვევით ცარიელ ფილაზე და ვიძახებთ pick_direction ფუნქციას ამ სპრაიტისთვის. Sprite სახის Enemy hits კედელი, ჩვენ მოვუწოდებთ იგივე ფუნქცია, pick_direction.

რა არის ამ ფუნქციაში? აქ არის ის, რომ ყველაფერი ცოტათი რთულდება, ასე რომ გააჩერეთ. არსებობს 50 პროცენტი შანსი იმისა, რომ მტრის ტანკი აიწიოს და მისი 50 პროცენტი დაიწიოს - ჩვენ შესაბამისად ვცვლით სპრინტს. აქ ერთადერთი ხრიკი ისაა, რომ ჩვენ ასევე უნდა შევცვალოთ მტრის სატანკო მნიშვნელობის შესაბამისი მნიშვნელობა მტრის_ მიმართულების_ სიაში მისი ახალი მიმართულებით, ასე რომ ჩვენ გვსურს, რომ ის ტყვიებს ისვრის სწორი მიმართულებით. ამისათვის ჩვენ ვიპოვით მტრის სპრაიტის ინდექსს dijmin_სპრესი_ სიაში და ვცვლით ამ ერთეულის მნიშვნელობას მტრის_ მიმართულების სიაში.

და ბოლოს, მოდით დავამატოთ გასროლა. ჩვენ ვამატებთ კიდევ ერთ თამაშის განახლებას ყოველ 500 ms ბლოკში და ვათავსებთ პუნქტს for dijmin_sprite_list. 30% -იანი შანსით მტრის სპლაიტი ესვრის მტრის ჭურვს მისი მოძრაობის მიმართულებით.

თუ თამაშს ახლავე დავიწყებთ სიმულაციაში, ჩვენ დავინახავთ, რომ ჩვენი ყვითელი ტანკი და მტრის ტანკები ერთ წერტილში ჩნდებიან და ცარიელ სივრცეში მიდიან. ჩვენ შეგვიძლია სროლა და მათ შეუძლიათ ჩვენი ყვითელი ტანკის სროლა, მაგრამ არაფერი მოხდება. ის მაინც ასე მოკლებულია მნიშვნელობას:) მოდით დავამატოთ დეკორაციები და თამაშის მექანიკა, როგორც ბოლო ნაბიჯი.

ნაბიჯი 3: თამაშის 42

42 თამაში
42 თამაში
42 თამაში
42 თამაში
42 თამაში
42 თამაში

ჩვენ ვაპირებთ ამ ნაბიჯის დაწყებას ინფორმაციის ჩანართის სიცოცხლისა და ქულის დამატებით და სიცოცხლის 10 -ით და ქულით ნულამდე. შემდეგ ჩვენ დავამატებთ ბლოკის ნაკრები კრამიტის რუქას…. დახაზეთ ფაილის რუქა ისე, როგორც თქვენ ხედავთ ეკრანის სურათზე ზემოთ. არ დაგავიწყდეთ კედლების დამატება!

დავამატოთ Sprite of kind Projectile გადაფარავს სხვასხვა სახის მოთამაშეს - ეს არის მაშინ, როდესაც მტრის ტყვიები მოხვდა ჩვენს ყვითელ ტანკს. ჩვენ უნდა დავრწმუნდეთ, რომ ეს ჭურვები არის მტრის ტყვიები და არა ჩვენი, ამიტომ ჩვენ დავამატებთ, რომ თუ მდგომარეობა ბლოკშია და თუ ის შეაფასებს როგორც ჭეშმარიტი, მაშინ ჩვენ გამოვაკლებთ ერთს სიცოცხლის რიცხვიდან. მის მსგავსად, სხვა ტიპის ბლოკზე სხვაგვარ ბლოკზე გადაფარავს სხვა სახის კეთილი მტერი ჩვენ დავრწმუნდებით, რომ ჭურვი არის ჭურვი ყვითელი სატანკოდან და თუ ეს მდგომარეობა შეფასდება როგორც ჭეშმარიტი, ჩვენ ვანადგურებთ სხვასხვადას (მტრის ტანკს), ამოვიღებთ სიიდან მტრის_სპრიზი_ სიიდან და დაამატე ერთი ქულაზე.

ბოლო არის გამარჯვება და დამარცხების პირობები - გამარჯვებისთვის, ჩვენ შევამოწმებთ, არის თუ არა ქულა უფრო მაღალი ან უდრის 10 სამუდამო ბლოკში. თუ ეს ასეა, ჩვენ ვაჩვენებთ გამარჯვების ეკრანს. სიცოცხლის ნულოვან ბლოკში ჩვენ ვაჩვენებთ Game Over ეკრანზე.

ახლა სცადეთ სიმულაციაში, რომ ნახოთ თუ არა თამაში ისე, როგორც მოსალოდნელი იყო. შემდეგ ატვირთეთ იგი GameGo– ში და ისიამოვნეთ მტრის ტანკების დამსხვრევით!

ნაბიჯი 4: გაუთავებელი თამაში და გაუმჯობესება

გაუთავებელი თამაში და გაუმჯობესებები
გაუთავებელი თამაში და გაუმჯობესებები

ჩვენს GitHub საცავში შეგიძლიათ ჩამოტვირთოთ ორი ფაილი Makecode arcade– ისთვის - ერთი ზუსტად იგივეა, რაც თქვენ მიიღებთ, თუ დაიცავთ ამ ინსტრუქციას, ხოლო მეორე განახლებული ვერსიაა, რომელსაც შემთხვევით წარმოქმნილი დონის პროგრესი აქვს. მას აქვს 10 დონე, თითოეული შემთხვევით გენერირდება ყოველ მომდევნო დონეზე მტრების რაოდენობის გაზრდით.

და რა თქმა უნდა, კიდევ ბევრი რამ არის რაც თქვენ ან თქვენს სტუდენტებმა შეგიძლიათ დაამატოთ თამაშს დამატებით! აქ არის უკეთესი მუსიკა, დამსხვრეული კედლები, განსხვავებული გამარჯვების პირობები და ასე შემდეგ!

თუ თქვენ შექმნით თამაშის გაუმჯობესებულ ვერსიას, გაუზიარეთ იგი ქვემოთ მოცემულ კომენტარებში! GameGo– ს და მწარმოებლებისა და STEM პედაგოგებისათვის დამატებითი აღჭურვილობის შესახებ დამატებითი ინფორმაციისათვის ეწვიეთ ჩვენს ვებ გვერდს, https://tinkergen.com/ და გამოიწერეთ ჩვენი ბლოგი.

TinkerGen– მა დაიწყო Kickstarter კამპანია MARK– ისთვის (გააკეთე რობოტის ნაკრები), რობოტის ნაკრები კოდირების, რობოტექნიკის, AI სწავლებისთვის!

გირჩევთ: