Სარჩევი:

(Multiplayer) ბრძოლა GameGo Makecode Arcade– ით: 6 ნაბიჯი
(Multiplayer) ბრძოლა GameGo Makecode Arcade– ით: 6 ნაბიჯი

ვიდეო: (Multiplayer) ბრძოლა GameGo Makecode Arcade– ით: 6 ნაბიჯი

ვიდეო: (Multiplayer) ბრძოლა GameGo Makecode Arcade– ით: 6 ნაბიჯი
ვიდეო: Rizz, Canon events, Skibidi Toilet, Chess, Are you a T? Online DC Universe 2024, ივლისი
Anonim

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

ჩვენს მიერ გამოქვეყნებულ სტატიებში, სანამ ჩვენ უკვე შევეცადეთ ხელი შეგვექმნა პლატფორმის თამაშისა და Battle City რიმეიკის შესაქმნელად. ამჯერად მინდოდა გამომეყენებინა Jacdac ინტერფეისი ორი GameGo- ს ერთმანეთთან დასაკავშირებლად და მოთამაშეებს საშუალება მიეცათ იბრძოდნენ უპირატესობისთვის მულტიპლეიერის გამანადგურებელ თამაშში. სამწუხაროდ, აღმოვაჩინე, რომ Jacdac Multiplayer– ის ბლოკის პროგრამირება ჯერჯერობით ბეტა ეტაპზეა და აქვს შეცდომები - ჯერ კიდევ შესაძლებელია უფრო მარტივი თამაშების გაკეთება, მაგრამ წარმატებას არ მოუტანს ჩემს საბრძოლო თამაშს. ამრიგად, ამ სასწავლო პროგრამაში ვაქვეყნებ თამაშის სამ ვერსიას (რომელსაც მე ვუწოდებდი "Cthulhu Combat":))

- ერთი მოთამაშის ვერსია მარტივი AI ოპონენტით

- Multiplayer ვერსია უნდა ითამაშოს Arcade სიმულაცია

- Multiplayer ვერსია Jacdac– ით (არასრული, მოგვიანებით განახლდება)

მარაგები

თამაში წადი

Microsoft Makecode Arcade

ნაბიჯი 1: დაწყებისა და Round_setup ფუნქციების შესახებ

დაწყების და Round_setup ფუნქციებზე
დაწყების და Round_setup ფუნქციებზე

მე დეტალურად აღვწერ ერთი მოთამაშის თამაშის კოდირებას და შემდეგ მომდევნო ნაბიჯებში ჩვენ განვიხილავთ თუ როგორ უნდა მივიღოთ იგი

ა) სიმულატორი მულტიპლეიერი

ბ) ჟადაკის მულტიპლეიერი.

ჩვენ ვიწყებთ კრამიტის რუქის დაყენებას მუქი დუნდულაზე და მოთამაშისა და AI ბოტისთვის სპრიტების შექმნას - ორივე მათგანი ეკუთვნის მოთამაშეს. ჩვენ დავაყენეთ მათი y ღერძის აჩქარება 600 -მდე - ასე რომ ისინი არ დაფრინავენ ხტუნვის შემდეგ. ჩვენ ასევე ვაყენებთ ჭურვებს ბოტისა და მოთამაშისგან round_setup ფუნქციის გამოძახებამდე. round_setup ფუნქცია ზრუნავს ჩვენთვის ახალი რაუნდის მომზადებაზე - მიზეზი, რის გამოც ჩვენ მას ფუნქცია ვაკეთებთ არის ის, რომ თამაშში შეიძლება იყოს სულ რაღაც 3 რაუნდი და ჩვენ გვსურს, რომ თავიდან ავიცილოთ ერთი და იგივე კოდის გამეორება. ამ ფუნქციაში ჯერ ჩვენ ვამოწმებთ, აქვს თუ არა რომელიმე მოთამაშეს 2 გამარჯვება - თუ ეს მდგომარეობა შეაფასებს როგორც ჭეშმარიტს, მაშინ თამაში დასრულებულია. თუ ორივე მოთამაშეს აქვს ორზე ნაკლები გამარჯვება, ჩვენ ვადიდებთ რაუნდის_ნუმ ცვლადს ერთზე და ვდებთ მოთამაშეებს საწყის ადგილებზე, ვავსებთ მათ სიცოცხლეს 100 -მდე და ვაცხადებთ ახალი რაუნდის დაწყებას.

ნაბიჯი 2: თამაშის ნაკადი

თამაშის ნაკადი
თამაშის ნაკადი

ამ თამაშში სამყარო თავისთავად სტატიკურია და თამაშის ნაკადი უკავშირდება მოთამაშეთა ქმედებებს. ოთხ ბლოკში ჩვენ განვსაზღვრავთ თამაშის წესების უმეტესობას, ეს ბლოკებია: ზევით ღილაკზე დაჭერილი, ქვემოთ ღილაკზე დაჭერილი, ღილაკზე დაჭერილი და B ღილაკზე დაჭერილი. მოდით შევხედოთ თითოეულ ამ ბლოკს.

ზევით ღილაკზე დაჭერილი - ორმაგი ნახტომის ლოგიკა. თუ ჩვენ დააჭირეთ ღილაკს გადასვლა 3 -ჯერ ნაკლებჯერ, მაშინ ჩვენ დავაყენებთ მოთამაშეს vy სიჩქარეზე - 140 (მოძრაობს ზემოთ). ჩვენს მოთამაშეს აქვს vy აჩქარება 600 -ზე, ასე რომ ერთხელ გადახტომისას ჩვენი სიჩქარე სწრაფად შემცირდება. როგორც კი ის მიაღწევს 0 -ს (ვერტიკალურ ღერძზე არ მოძრაობს) ჩვენ კვლავ jump_count- ს ვაყენებთ 0 -ზე.

ქვემოთ დაჭერილი ღილაკი - მოქმედების ფარის ლოგიკა. თუ დააჭირეთ ღილაკს ქვემოთ მოთამაშე ცვლის მის სურათს "დაცულად" და ცვლის ცვლადს 1.

ღილაკზე A დაჭერით - გაუშვით ჭურვი. ეს ერთი საკმაოდ თვითგამორკვევია.

B ღილაკზე დაჭერილი - შეტევის შეტევა, ფარის მსგავსი განხორციელებისას.

ჩვენ ვაყენებთ მოთამაშეთა სპრიტების გამოსახულებებს და მათ დაცულ/შეტევითი ცვლადებს 0 ყოველ 500 ms თამაშში ყოველ.. ms ბლოკზე. ჩვენ შეგვეძლო თითოეული მოქმედებისათვის დამოუკიდებელი ქრონომეტრების დაყენება, მაგრამ სიმარტივისთვის ჩვენ უბრალოდ გამოვიყენებთ თამაშის განახლების მთავარ მარყუჟს.

მოგების პირობები აქ საკმაოდ მარტივია - როდესაც მოთამაშეთა სიცოცხლე 0 -ს მიაღწევს, სხვა მოთამაშემ მოიგო რაუნდი, ჩვენ შემდეგ მოთამაშეთა მიერ მოგების რაოდენობას ვინახავთ ცვლადში.

დაბოლოს, არსებობს ორი ბლოკი, რომელიც აკონტროლებს დიაპაზონის თავდასხმის დაზიანებას და შეტევის ზიანს. თითოეულ მათგანში ჩვენ ვამოწმებთ სპრაიტის შეჯახებას და თუ დაცული/შემტევი ცვლადი შემტევი მოთამაშისთვის არის 0/1.

ნაბიჯი 3: თამაში 1: AI მოწინააღმდეგე

თამაში 1: AI მოწინააღმდეგე
თამაში 1: AI მოწინააღმდეგე

პირველ თამაშში ჩვენ შევქმნით შედარებით უბრალო AI მოწინააღმდეგეს, რომ იყოს მეორე მოთამაშე. თამაშის განახლებაში ყოველ 200 ms ჩვენ პირველ რიგში ვაკეთებთ მანძილის შემოწმებას მოთამაშესა და AI– ს - თუ ის 20 – ზე ნაკლებია ჩვენ ვაყენებთ ჩვენს AI– ს მელულურ რეჟიმში, როდესაც melee თავდასხმის შანსი 30 – მდე იზრდება და თავდასხმის შანსი 30 – მდეა. თუ მანძილი უფრო მაღალია 20 -ზე მეტი ჩვენ შეტევის შანსს ვაქცევთ ნულს (არამცირე შეტევაში, რადგან მოთამაშე ძალიან შორს არის) და გადავიტანთ შანსს 70 -ზე. მას შემდეგ რაც ცვლადების მოქმედების შანსები დადგენილია, ჩვენ ვაგრძელებთ ამ მოქმედებების შესრულებას მითითებული შანსებით. თუ თქვენ თვითონ ცდილობთ თამაშობდეთ ამ მარტივი AI– ს წინააღმდეგ, დაინახავთ, რომ მიუხედავად მისი ქცევისა ძალიან მარტივია, მის წინააღმდეგ მოგება ადვილი არ არის - როგორც ხშირად კომპიუტერთან კონტროლირებადი მეტოქეების შემთხვევაში ის იმარჯვებს ძირითადად იმიტომ რომ მას შეუძლია წამში მეტი მოქმედების გაკეთება ვიდრე ადამიანი მოთამაშე.

თუ კოდირებისას დავრჩებოდით, შეგიძლიათ გადმოწეროთ სრული კოდი ჩვენი პროექტის GitHub საცავში და გახსნათ იგი Makecode Arcade– ში.

ნაბიჯი 4: თამაში 2: სიმულატორი Multiplayer

თამაში 2: სიმულატორი Multiplayer
თამაში 2: სიმულატორი Multiplayer
თამაში 2: სიმულატორი Multiplayer
თამაში 2: სიმულატორი Multiplayer

თამაშის ვარიანტი ორი მოთამაშისთვის სიმულაციაში ძალიან ჰგავს ერთი მოთამაშის ვერსიას, გარდა იმისა, რომ ჩვენ ვცვლით AI ქცევის ბლოკს ოთხი მოთამაშეზე 2 ღილაკზე დაჭერილი ბლოკით - შინაარსი ამ ბლოკებში, რომელიც ასახავს მოთამაშეს იგივე ბლოკების შინაარსს 1. აქვს გადახედეთ ეკრანის სურათს, რათა უკეთ გაეცნოთ რა ცვლილებების შეტანა გჭირდებათ. გარდა ამისა, ჩვენ ასევე უნდა დავამატოთ გადატანა მოთამაშე 2 ღილაკებით დაბლოკვის დაწყების ფუნქცია და შეცვალოს ბოლო ეკრანი მოთამაშეს ორი თამაშისთვის WIN ნაცვლად LOSE.

ნაბიჯი 5: თამაში 3: Jacdac Multiplayer

თამაში 3: Jacdac Multiplayer
თამაში 3: Jacdac Multiplayer

მე ვიპოვე Jacdac Multiplayer– ის საზოგადოებრივი განხორციელება Makecode არკადული ბლოკებით ამ ფორუმის თემაში

forum.makecode.com/t/new-extension-real-mu…

მე გამოვცადე მაგალითი თამაში იქ (Space Invaders) და აღმოვაჩინე, რომ ის ძალიან კარგად მუშაობდა. სამწუხაროდ, Cthulhu Combat– ის თამაშის მექანიკა იყენებს უამრავ ცვლადს და როგორც ჩანს, რეალური Multiplayer გაფართოებები ჯერ არ უჭერს მხარს სინქრონიზაციის ცვლადებს - ასე რომ, მე დავიწყე მუშაობა, ორი მოთამაშის მოქმედება სინქრონიზებულია მოწყობილობებში, მაგრამ სიცოცხლე არ შეიძლება არ დაეცემა ოპონენტების მოწყობილობაზე. ასევე არის რაღაც არასწორი ჭურვის მექანიკაში, ჭურვები არ ქრება კედელზე მოხვედრის შემდეგ, რაც იწვევს თამაშს კავშირის დაკარგვას მას შემდეგ, რაც დაახლოებით 10 ჭურვი გაისროლეს.

შეგიძლიათ სცადოთ მულტიპლეიერი გადმოწეროთ-p.webp

ნაბიჯი 6: დაე დაიწყოს Cthulhu ბრძოლა

დაე დაიწყოს Cthulhu ბრძოლა!
დაე დაიწყოს Cthulhu ბრძოლა!

ჯერ კიდევ ბევრი გაუმჯობესებაა შესაძლებელი ჩვენი მარტივი საბრძოლო თამაშისთვის - მაგალითად, თქვენ შეგიძლიათ დაამატოთ უფრო რთული AI ქცევა ან გამოიყენოთ გაფართოება ღილაკების კომბინაციისა და/ან ანიმაციის თანმიმდევრობის დასამატებლად. წარმატებებს გისურვებთ და გაერთეთ სანამ საკუთარ თამაშებს პროგრამირებთ GameGo და Makecode Arcade– ით.

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

გირჩევთ: