สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: Alter-ego ของเรา - ถังสีเหลือง
- ขั้นตอนที่ 2: นำศัตรูออกมา
- ขั้นตอนที่ 3: 42 ของเกม
- ขั้นตอนที่ 4: เกมและการปรับปรุงที่ไม่มีที่สิ้นสุด
วีดีโอ: Battle City Remake บน GameGo ด้วย Makecode Arcade: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
GameGo เป็นคอนโซลพกพาสำหรับเล่นเกมย้อนยุคที่เข้ากันได้กับ Microsoft Makecode พัฒนาโดย TinkerGen STEM education มันใช้ชิป STM32F401RET6 ARM Cortex M4 และสร้างขึ้นสำหรับนักการศึกษา STEM หรือเพียงแค่ผู้ที่ชอบสนุกกับการสร้างวิดีโอเกมย้อนยุค คุณสามารถทำตามบทช่วยสอนนี้และลองเล่นเกมในโปรแกรมจำลอง Makecode Arcade แล้วเรียกใช้บน GameGo
ในบทความนี้ เราจะพยายามสร้างเกมยิงรถถัง Battle City แบบคลาสสิก ซึ่งเดิมผลิตและเผยแพร่ในปี 1985 โดย Namco สำหรับ Nintendo Entertainment System (NES) ในเกมดั้งเดิม ผู้เล่นควบคุมรถถังและยิงขีปนาวุธเพื่อทำลายรถถังศัตรู รถถังศัตรูพยายามที่จะทำลายฐานของผู้เล่น เช่นเดียวกับรถถังของผู้เล่นเอง เราจะทำการปรับเปลี่ยนการเล่นเกมเพื่อให้เข้ากับแนวทางปฏิบัติในการเขียนโปรแกรมบล็อกด้วย GameGo ได้ดีขึ้น แต่การสร้างใหม่ของเราจะยังคงมีความคล้ายคลึงกันมากกับเกมดั้งเดิม เอาล่ะ!
เสบียง
GameGo
ขั้นตอนที่ 1: Alter-ego ของเรา - ถังสีเหลือง
เปิด Makecode Arcade ที่ https://arcade.makecode.com/ และคลิกที่โครงการใหม่ เราจะเริ่มสร้างอัตตาของเราให้กลายเป็นรถถังสีเหลือง เลือก Set mySprite เป็น sprite of kind player block และดึงรถถังสีเหลืองหงายขึ้นด้านบนเป็น sprite เริ่มต้นของเรา วางบล็อกนั้นไว้ด้านในของ start block เพิ่ม move mySprite พร้อมบล็อคปุ่ม ตอนนี้เรามีรถถังที่สามารถเคลื่อนที่ด้วยปุ่มในการจำลองได้! ดีแต่หันหน้าไปทางเดียวกันเสมอแม้เมื่อเราเลื่อนลงหรือไปด้านข้าง…
ในการแก้ไขนั้น ให้เพิ่มบล็อกอีกสี่บล็อก หนึ่งบล็อกสำหรับแต่ละปุ่มทิศทางสร้างตัวแปรใหม่ เรียกว่าทิศทาง - เราจะบันทึกทิศทางการเคลื่อนที่ของรถถังของเราในนั้น 100 จะสอดคล้องกับลง -100 จะสอดคล้องกับขึ้น 200 สำหรับขวาและ -200 สำหรับซ้าย ทำไมตัวเลขเหล่านี้? คุณจะเห็นในภายหลัง เมื่อเราเพิ่มโพรเจกไทล์ที่รถถังของเราจะยิง ตรรกะภายในบล็อกทั้งสี่นี้ง่ายมาก - เราตรวจสอบว่าทิศทางใหม่ (จากการกดปุ่ม) เหมือนกับทิศทางก่อนหน้านี้หรือไม่ หากเป็นเช่นนั้น โดยพื้นฐานแล้ว เราจะไม่ทำการเปลี่ยนแปลงใดๆ หากไม่ใช่ เราจะเปลี่ยนสไปรท์ของรถถัง และในกรณีที่ทิศทางลงและซ้าย เราจะพลิกภาพของสไปรท์เพื่อหลีกเลี่ยงการดึงสไปรต์เพิ่มเติม สุดท้าย มากำหนดทิศทางเริ่มต้นเป็น -100 (รถถังขึ้นไป) เพราะนี่คือวิธีที่รถถังของเราเริ่มเกม ลองย้ายถังสีเหลืองตอนนี้สไปรท์จะเปลี่ยนไปตามทิศทางของการเคลื่อนไหวทันที! ยอดเยี่ยม ตอนนี้ขอเพิ่มกระสุน
เราจะยิงกระสุนที่มีกระสุนนัดไปยังโพรเจกไทล์ (วาดสี่เหลี่ยมเงินเล็กๆ สำหรับสไปรท์นั้น) จาก mySprite ด้วยความเร็ว vx vy ด้านในของปุ่มเปิด A บล็อกกดเราต้องตรวจสอบค่าสัมบูรณ์ของทิศทางเพื่อดูว่าถังสีเหลืองหงายขึ้น / ลงซ้าย / ขวาหรือไม่ จากนั้นเราดำเนินการยิงกระสุนปืนด้วยความเร็วของตัวแปรทิศทาง - นั่นคือสาเหตุที่เรามี -100/100/-200/200 สำหรับค่าทิศทาง
ตอนนี้เรามีรถถังสีเหลืองที่สามารถยิงขีปนาวุธและเคลื่อนที่ได้ หากรถถังจำลองสีเหลืองสามารถรู้สึกได้ มันคงรู้สึกเหงาในความว่างเปล่าที่ว่างเปล่านี้โดยไม่มีศัตรูและสิ่งที่ต้องทำ ดังนั้นสำหรับขั้นตอนต่อไป เรามาเพิ่มศัตรูเพื่อให้มันผ่านพ้นเวลาไป
ขั้นตอนที่ 2: นำศัตรูออกมา
เราจะเริ่มขั้นตอนนี้โดยการสร้างตัวแปรใหม่จำนวนหนึ่ง: อาร์เรย์สองชุด (ชุดหนึ่งสำหรับเก็บภูตผีศัตรูและอีกชุดหนึ่งสำหรับควบคุมทิศทางของศัตรู) ตัวแปรเวลาวางไข่สำหรับเก็บช่วงเวลาระหว่างการวางไข่ จำนวนศัตรูสำหรับเก็บจำนวนศัตรูสูงสุด ในเวลาเดียวกัน. นอกจากนี้เรายังจะเพิ่มโพรเจกไทล์สองอัน (โพรเจกไทล์และโพรเจกไทล์ของศัตรู) ที่ยิงเข้าในบล็อกเริ่มต้น ซึ่งจะช่วยให้เราหลีกเลี่ยงข้อผิดพลาดได้ในภายหลัง
ต่อไปเราจะสร้างในการอัปเดตเกมทุกๆ … ms บล็อก ใส่ตัวแปร spawn_time ที่นั่น ตรรกะภายในบล็อกนั้นง่าย - หากจำนวนศัตรูทั้งหมดในสนามรบน้อยกว่าจำนวนศัตรูสูงสุดที่อนุญาต ให้เพิ่มศัตรูลงในศัตรู_sprite_list แล้วเพิ่ม 200 (ไปทางขวา) ทิศทางสำหรับศัตรูนั้น
ถัดไป ในบล็อกของศัตรูที่สร้างบนสไปรต์ เราเพิ่มเอฟเฟกต์กราฟิก วางไว้บนไทล์ว่างแบบสุ่ม และเรียกใช้ฟังก์ชัน pick_direction สำหรับสไปรต์นี้ ในสไปรท์ชนิดศัตรูชนกำแพง เราเรียกฟังก์ชันเดียวกันว่า pick_direction
มีอะไรอยู่ในหน้าที่นั้น? นี่คือสิ่งที่เริ่มซับซ้อนเล็กน้อย ดังนั้นเดี๋ยวก่อน มีโอกาส 50 เปอร์เซ็นต์ที่รถถังศัตรูจะเพิ่มขึ้นและ 50 เปอร์เซ็นต์จะลดลง - เราเปลี่ยนสไปรท์ตามนั้น เคล็ดลับเดียวที่นี่คือ เราต้องเปลี่ยนค่าที่สอดคล้องกับรถถังศัตรูนั้นในศัตรู_directions_list ให้เป็นทิศทางใหม่ ดังนั้นเราจึงต้องให้มันยิงกระสุนไปในทิศทางที่ถูกต้อง เพื่อที่เราจะพบดัชนีของสไปรท์ของศัตรูในศัตรู_sprite_list และเปลี่ยนค่าของไอเท็มนั้นในรายการศัตรู_directions
สุดท้าย มาเพิ่มการยิงกัน เราเพิ่มรายการอื่นในการอัปเดตเกมทุกๆ 500 ms บล็อกและใส่ a สำหรับรายการในศัตรู_sprite_list ด้วยโอกาส 30% สไปรต์ของศัตรูจะยิงกระสุนของศัตรูในทิศทางการเคลื่อนที่ของมัน
หากเราเปิดเกมในการจำลองตอนนี้ เราจะสามารถเห็นรถถังสีเหลืองและรถถังศัตรูของเราปรากฏในจุดเดียวกันและเข้าสู่พื้นที่ว่าง เราสามารถยิงและพวกเขาก็สามารถยิงรถถังสีเหลืองของเราได้ แต่ไม่มีอะไรเกิดขึ้น ยังคงให้ความรู้สึกไร้ความหมาย:) มาเพิ่มการตกแต่งและกลไกของเกมเป็นขั้นตอนสุดท้ายกัน
ขั้นตอนที่ 3: 42 ของเกม
เราจะเริ่มขั้นตอนนี้โดยเพิ่มชีวิตและคะแนนจากแท็บข้อมูลและตั้งค่าชีวิตเป็น 10 และให้คะแนนเป็นศูนย์ จากนั้นเราเพิ่ม block set tile map ไปที่ …. วาดแผนผังไฟล์ให้ดูเหมือนที่คุณเห็นในภาพหน้าจอด้านบน อย่าลืมเพิ่มกำแพง!
มาเพิ่มสไปรท์ชนิดโปรเจกไทล์ทับซ้อนกับสไปรท์ชนิดอื่นๆ ของผู้เล่นกันเถอะ - นี่คือเวลาที่กระสุนของศัตรูพุ่งเข้าใส่รถถังสีเหลืองของเรา เราจำเป็นต้องตรวจสอบให้แน่ใจว่าโพรเจกไทล์เหล่านี้เป็นกระสุนของศัตรู ไม่ใช่ของเรา ดังนั้นเราจะเพิ่มว่าหากเงื่อนไขภายในบล็อกและหากประเมินว่าเป็นจริง เราจะลบหนึ่งอันออกจากจำนวนชีวิต ในทำนองเดียวกัน ในบล็อกอื่นบนสไปรท์ชนิด Projectile ซ้อนทับกับศัตรูประเภท Sprite อื่นๆ เราตรวจสอบให้แน่ใจว่าโพรเจกไทล์นั้นเป็นโพรเจกไทล์จากรถถังสีเหลือง และหากเงื่อนไขนี้ประเมินว่าเป็นจริง เราจะทำลาย otherSprite(รถถังศัตรู) ให้ลบออกจากรายการ ของศัตรู_sprite_list และเพิ่มหนึ่งรายการเพื่อทำคะแนน
สิ่งสุดท้ายคือเงื่อนไขชัยชนะและความพ่ายแพ้ - สำหรับชัยชนะ เราจะตรวจสอบว่าคะแนนสูงกว่าหรือเท่ากับ 10 ในบล็อกตลอดกาลหรือไม่ ถ้าใช่ เราจะแสดงหน้าจอชัยชนะ และในบล็อกศูนย์ชีวิต เราจะแสดงหน้าจอเกมโอเวอร์
ตอนนี้ลองใช้ในการจำลองเพื่อดูว่าเกมทำงานตามที่คาดไว้หรือไม่ จากนั้นอัปโหลดไปที่ GameGo และสนุกไปกับการทำลายรถถังศัตรู!
ขั้นตอนที่ 4: เกมและการปรับปรุงที่ไม่มีที่สิ้นสุด
ในที่เก็บ GitHub ของเรา คุณสามารถดาวน์โหลดไฟล์สองไฟล์สำหรับ Makecode Arcade ไฟล์หนึ่งจะเหมือนกันทุกประการที่คุณจะได้รับหากคุณทำตามคำแนะนำนี้ และอีกไฟล์หนึ่งเป็นเวอร์ชันอัปเกรด ซึ่งสร้างระดับความก้าวหน้าแบบสุ่ม มี 10 ระดับ โดยแต่ละระดับจะถูกสร้างขึ้นแบบสุ่มด้วยจำนวนศัตรูที่เพิ่มขึ้นในแต่ละระดับที่ต่อเนื่องกัน
และแน่นอนว่ายังมีอีกหลายสิ่งที่คุณหรือนักเรียนของคุณสามารถเพิ่มลงในเกมได้ มีเพลงที่ดีกว่า กำแพงที่แตกหักได้ เงื่อนไขชัยชนะที่แตกต่างกัน และอื่นๆ!
หากคุณสร้างเกมเวอร์ชันที่ปรับปรุงแล้ว แบ่งปันในความคิดเห็นด้านล่าง! สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ GameGo และฮาร์ดแวร์อื่นๆ สำหรับผู้ผลิตและผู้ให้การศึกษา STEM โปรดเยี่ยมชมเว็บไซต์ของเรา https://tinkergen.com/ และสมัครรับข้อมูลจากบล็อกของเรา
TinkerGen ได้เริ่มแคมเปญ Kickstarter สำหรับ MARK (Make A Robot Kit) ซึ่งเป็นชุดหุ่นยนต์สำหรับสอนการเขียนโค้ด หุ่นยนต์ AI!
แนะนำ:
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: 8 ขั้นตอน
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: บางครั้งฉันพูดภาษาอังกฤษได้ดีมาก บางครั้งก็ไม่มี… สิ่งแรกเลย นี่เป็นการสอนครั้งแรกของฉันและภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน ดังนั้นโปรดอย่ากดดันฉันมากเกินไป นี่จะไม่เกี่ยวกับวิธีการสร้างเฟรมที่ง่าย มันเกี่ยวกับการติดตั้ง
(ผู้เล่นหลายคน) ต่อสู้บน GameGo ด้วย Makecode Arcade: 6 ขั้นตอน
(ผู้เล่นหลายคน) ต่อสู้บน GameGo ด้วย Makecode Arcade: GameGo เป็นคอนโซลพกพาเกมย้อนยุคที่เข้ากันได้กับ Microsoft Makecode ที่พัฒนาโดย TinkerGen STEM education มันใช้ชิป STM32F401RET6 ARM Cortex M4 และสร้างขึ้นสำหรับนักการศึกษา STEM หรือเพียงแค่ผู้ที่ชอบสนุกกับการสร้างวิดีโอย้อนยุคกา
Platformer ที่มีระดับไม่มีที่สิ้นสุดบน GameGo ด้วย Makecode Arcade: 5 ขั้นตอน (พร้อมรูปภาพ)
Platformer ที่มีระดับไม่มีที่สิ้นสุดบน GameGo ด้วย Makecode Arcade: GameGo เป็นคอนโซลพกพาเกมย้อนยุคที่เข้ากันได้กับ Microsoft Makecode ที่พัฒนาโดย TinkerGen STEM education มันใช้ชิป STM32F401RET6 ARM Cortex M4 และสร้างขึ้นสำหรับนักการศึกษา STEM หรือเพียงแค่ผู้ที่ชอบสนุกกับการสร้างวิดีโอเกมย้อนยุค
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: 9 ขั้นตอน
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: ในรูปแรก เรามี Arduino และเรียกว่า "Arduino Uno"ในรูปที่สอง เรามี Arducam และเรียกว่า "Arducam OV2640 มินิ 2MP"พร้อมกับภาพที่สอง มีวัสดุที่คุณต้อง
โคมไฟติดผนัง LED Night City Skyline: 6 ขั้นตอน (พร้อมรูปภาพ)
โคมไฟติดผนัง LED Night City Skyline: คำแนะนำนี้อธิบายวิธีที่ฉันสร้างโคมไฟติดผนังตกแต่ง แนวคิดก็คือเส้นขอบฟ้าของเมืองยามค่ำคืน โดยมีหน้าต่างบางบานในอาคารที่มีแสงสว่างเพียงพอ ตัวโคมไฟใช้แผงลูกแก้วสีน้ำเงินกึ่งโปร่งใสพร้อมรูปเงาดำของอาคารที่ทาสีด้วย