(ผู้เล่นหลายคน) ต่อสู้บน GameGo ด้วย Makecode Arcade: 6 ขั้นตอน
(ผู้เล่นหลายคน) ต่อสู้บน GameGo ด้วย Makecode Arcade: 6 ขั้นตอน
Anonim

GameGo เป็นคอนโซลพกพาสำหรับเล่นเกมย้อนยุคที่เข้ากันได้กับ Microsoft Makecode พัฒนาโดย TinkerGen STEM education มันใช้ชิป ARM Cortex M4 ของ STM32F401RET6 และสร้างขึ้นสำหรับนักการศึกษา STEM หรือเพียงแค่ผู้ที่ชื่นชอบการสร้างวิดีโอเกมย้อนยุค คุณสามารถทำตามบทช่วยสอนนี้และลองเล่นเกมในโปรแกรมจำลอง Makecode Arcade แล้วเรียกใช้บน GameGo

ในบทความที่เราเผยแพร่ก่อนที่เราจะลองทำเกม platformer และ Battle City Remake ครั้งนี้ฉันต้องการใช้อินเทอร์เฟซ Jacdac เพื่อเชื่อมต่อ GameGo สองเกมเข้าด้วยกัน และอนุญาตให้ผู้เล่นต่อสู้เพื่ออำนาจสูงสุดในเกมต่อสู้แบบผู้เล่นหลายคน น่าเสียดายที่ฉันพบว่าการเขียนโปรแกรมบล็อกสำหรับผู้เล่นหลายคนของ Jacdac อยู่ในช่วงเบต้า ณ ตอนนี้และมีข้อบกพร่องบางอย่าง - ยังคงเป็นไปได้ที่จะสร้างเกมที่ง่ายกว่า แต่ไม่มีโชคสำหรับเกมต่อสู้ของฉัน ดังนั้นในคำแนะนำนี้ฉันเผยแพร่เกมสามเวอร์ชัน (ซึ่งฉันเรียกว่า "Cthulhu Combat":))

- เวอร์ชันผู้เล่นเดี่ยวพร้อมคู่ต่อสู้ AI ที่เรียบง่าย

- เวอร์ชันผู้เล่นหลายคนเพื่อเล่นในการจำลองอาร์เคด

- เวอร์ชันผู้เล่นหลายคนพร้อม Jacdac (ไม่สมบูรณ์จะอัปเดตในภายหลัง)

เสบียง

GameGo

Microsoft Makecode Arcade

ขั้นตอนที่ 1: ในฟังก์ชัน Start และ Round_setup

ในฟังก์ชัน Start และ Round_setup
ในฟังก์ชัน Start และ Round_setup

ฉันจะอธิบายรายละเอียดเกี่ยวกับการเข้ารหัสเกมสำหรับผู้เล่นคนเดียว จากนั้นในขั้นตอนต่อไป เราจะพูดถึงวิธีทำให้มันกลายเป็น

ก) ผู้เล่นหลายคนจำลอง

b) ผู้เล่นหลายคนของ Jacdac

เราเริ่มต้นด้วยการตั้งค่าแผนที่ไทล์เป็นดันเจี้ยนมืดและสร้างสไปรท์สำหรับผู้เล่นและบอต AI - ทั้งคู่จะเป็นของประเภทผู้เล่น เราตั้งค่าความเร่งในแกน y ไว้ที่ 600 ดังนั้นพวกมันจึงไม่บินหลังจากกระโดด เรายังเริ่มต้นโพรเจกไทล์จากบอทและผู้เล่นก่อนที่จะเรียกใช้ฟังก์ชัน round_setup ฟังก์ชัน round_setup จะช่วยเตรียมการรอบใหม่ให้กับเรา - เหตุผลที่เราสร้างฟังก์ชันนี้ขึ้นก็เพราะว่าในเกมนี้อาจมีทั้งหมด 3 รอบ และเราต้องการหลีกเลี่ยงการใช้โค้ดเดิมซ้ำ ในฟังก์ชันนั้นก่อนอื่น เราจะตรวจสอบว่าผู้เล่นคนใดได้รับชัยชนะ 2 ครั้ง หากเงื่อนไขนี้ประเมินว่าเป็นจริง เกมจะจบลง หากผู้เล่นทั้งสองมีชัยชนะน้อยกว่าสองครั้ง เราจะเพิ่มตัวแปร round_num ขึ้นหนึ่งรายการ และวางผู้เล่นไว้ที่จุดเริ่มต้น เติมชีวิตให้ครบ 100 และประกาศการเริ่มต้นรอบใหม่

ขั้นตอนที่ 2: การไหลของเกม

เกมไหล
เกมไหล

ในเกมนี้ โลกนั้นนิ่งและการไหลของเกมเชื่อมโยงกับการกระทำของผู้เล่น ในสี่ช่วงตึก เรากำหนดกฎของเกมส่วนใหญ่ บล็อกเหล่านี้คือ: เมื่อกดปุ่มขึ้น กดปุ่มลง บนปุ่ม A และกดปุ่ม B มาดูแต่ละบล็อคเหล่านี้กัน

เมื่อกดปุ่มขึ้น - ตรรกะกระโดดสองครั้ง หากเรากดปุ่มกระโดดน้อยกว่า 3 ครั้ง เราจะตั้งค่าความเร็วของผู้เล่นเป็น - 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 มิลลิวินาที เราจะตรวจสอบระยะห่างระหว่างผู้เล่นกับ AI ก่อน ถ้าน้อยกว่า 20 เราตั้งค่า AI ของเราในโหมดระยะประชิดโดยเพิ่มโอกาสโจมตีระยะประชิดเป็น 30 และโอกาสโจมตีระยะไกลเป็น 30 หากระยะทางสูงขึ้น มากกว่า 20 เราตั้งค่าโอกาสโจมตีระยะประชิดเป็นศูนย์ (ไม่มีไพนต์ในการโจมตีระยะประชิด เนื่องจากผู้เล่นอยู่ไกลเกินไป) และย้ายโอกาสเป็น 70 หลังจากตั้งค่าตัวแปรสำหรับโอกาสในการดำเนินการแล้ว เราจะดำเนินการกระทำเหล่านี้ตามโอกาสที่ระบุไว้ หากคุณลองเล่นกับ AI ธรรมดาๆ นี้ด้วยตัวเอง คุณจะเห็นว่าแม้พฤติกรรมของมันจะง่ายมาก การเอาชนะมันไม่ง่าย - บ่อยครั้งในกรณีที่ฝ่ายตรงข้ามที่ควบคุมด้วยคอมพิวเตอร์จะชนะเป็นส่วนใหญ่ เพราะมันสามารถทำการกระทำต่อวินาทีได้มากกว่า ผู้เล่นที่เป็นมนุษย์

หากคุณติดขัดขณะเขียนโค้ด คุณสามารถดาวน์โหลดโค้ดแบบเต็มในที่เก็บ GitHub สำหรับโปรเจ็กต์นี้และเปิดใน Makecode Arcade

ขั้นตอนที่ 4: เกม 2: Simulator ผู้เล่นหลายคน

เกม 2: Simulator ผู้เล่นหลายคน
เกม 2: Simulator ผู้เล่นหลายคน
เกม 2: Simulator ผู้เล่นหลายคน
เกม 2: Simulator ผู้เล่นหลายคน

รูปแบบเกมสำหรับผู้เล่นสองคนในการจำลองนั้นคล้ายกับเวอร์ชันผู้เล่นคนเดียวมาก ยกเว้นว่าเราแทนที่บล็อกพฤติกรรม AI ด้วยสี่บล็อกที่กดปุ่ม 2 ปุ่มของผู้เล่น - โดยมีเนื้อหาภายในบล็อกเหล่านี้สะท้อนเนื้อหาของบล็อกเดียวกันสำหรับผู้เล่น 1 มี ดูภาพหน้าจอเพื่อรับแนวคิดที่ดีขึ้นว่าคุณต้องเปลี่ยนแปลงอะไร นอกจากนั้น เรายังต้องเพิ่มผู้เล่นย้าย 2 โดยมีปุ่มบล็อกในฟังก์ชันเริ่มต้น และเปลี่ยนหน้าจอตอนท้ายสำหรับผู้เล่นสองเกมเป็น WIN แทน LOSE

ขั้นตอนที่ 5: เกม 3: Jacdac Multiplayer

เกม 3: Jacdac Multiplayer
เกม 3: Jacdac Multiplayer

ฉันพบการใช้งานชุมชนผู้เล่นหลายคนของ Jacdac ด้วยบล็อกอาเขตของ Makecode ในหัวข้อฟอรัมนี้

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

ฉันทดสอบเกมตัวอย่างที่นั่น (Space Invaders) และพบว่ามันทำงานได้ดีมาก น่าเสียดายที่กลไกของเกมของ Cthulhu Combat ใช้ตัวแปรจำนวนมากและดูเหมือนว่าส่วนขยาย Real Multiplayer ยังไม่รองรับการซิงค์ตัวแปร - ดังนั้นฉันจึงใช้งานได้ การกระทำของผู้เล่นสองคนถูกซิงค์ข้ามอุปกรณ์ แต่ชีวิตไม่สามารถทำได้ อย่าวางบนอุปกรณ์ของฝ่ายตรงข้าม นอกจากนี้ยังมีบางอย่างผิดปกติกับกลไกของกระสุนปืน กระสุนดูเหมือนจะไม่หายไปหลังจากชนกับกำแพง ซึ่งทำให้เกมขาดการเชื่อมต่อหลังจากยิงไปแล้วประมาณ 10 ลูก

คุณสามารถลองใช้ผู้เล่นหลายคนได้โดยดาวน์โหลดไฟล์-p.webp

ขั้นตอนที่ 6: ให้การต่อสู้ของคธูลูเริ่มต้นขึ้น

เริ่มการต่อสู้ของคธูลู!
เริ่มการต่อสู้ของคธูลู!

ยังมีการปรับปรุงอีกมากมายที่สามารถทำได้ในเกมต่อสู้ง่ายๆ ของเรา ตัวอย่างเช่น คุณสามารถเพิ่มพฤติกรรม AI ที่ซับซ้อนมากขึ้น หรือใช้ส่วนขยายเพื่อเพิ่มปุ่มคอมโบและ/หรือลำดับภาพเคลื่อนไหว ขอให้โชคดีและสนุกไปกับการเขียนโปรแกรมเกมของคุณเองด้วย GameGo และ Makecode Arcade

หากคุณสร้างเกมเวอร์ชันที่ปรับปรุงแล้ว แบ่งปันในความคิดเห็นด้านล่าง! สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ GameGo และฮาร์ดแวร์อื่นๆ สำหรับผู้ผลิตและผู้ให้การศึกษา STEM โปรดเยี่ยมชมเว็บไซต์ของเรา https://tinkergen.com/ และสมัครรับจดหมายข่าวของเรา