การออกแบบการเลื่อนหน้าจอสไตล์ร็อคแมน


25

ซีรีส์ Mega Man ของ NES คลาสสิกใช้เทคนิคการเลื่อนที่เฉพาะเจาะจงมากซึ่งฉันมีปัญหาในการใช้งาน โดยพื้นฐานแล้วระดับจะแบ่งออกเป็น "หน้าจอ" ซึ่งมีขนาดเท่ากันทั้งหมด หน้าจอบางหน้าเลื่อนเข้าหากันอย่างราบรื่นสร้างภาพลวงตาของการเล่นที่กว้างขึ้น หน้าจอบางหน้าหยุดกล้องไม่ให้เลื่อนจนกว่าโปรแกรมเล่นจะถึงขอบของหน้าจอในเวลาที่มีการเปลี่ยนภาพและหน้าจอถัดไปแสดงขึ้น อาจเป็นไปได้ที่หน้าจอเดียวจะมีการเปลี่ยนแปลงมากกว่าหนึ่งครั้งตัวอย่างเช่นมีบันไดที่ขึ้นไปหนึ่งหน้าจอ แต่คุณสามารถเดินไปข้างหน้าไปยังอีกหน้าจอหนึ่งได้

การเปลี่ยนหน้าจอเหล่านี้เป็นแบบจำลองได้อย่างไร?

แผนภาพการเปลี่ยนแปลงหน้าจอ Mega Man

  • หน้าจอ 0 เป็นหน้าจอเริ่มต้นซึ่งผู้เล่นเริ่มต้น
  • หน้าจอ 0-3 เป็นการเลื่อนในแนวนอนอย่างราบรื่นและปรากฏต่อผู้เล่นในรูปแบบการเล่นต่อเนื่อง
  • เนื่องจากมีการเปลี่ยนแปลงระหว่างหน้าจอ 3 และเป็นหน้าจอใกล้เคียง 4 และ 5 กล้องจะไม่เลื่อนผ่านขอบด้านขวาหรือขอบด้านบนของหน้าจอ 3 ยกเว้นว่าผู้เล่นเลื่อนไปที่ขอบนั้นและ "ดัน" ผ่านไปยังหน้าจอถัดไป
  • เมื่อผู้เล่นย้ายไปที่ขอบการเปลี่ยนแปลงอย่างใดอย่างหนึ่งอินพุตของผู้ใช้จะถูกปิดใช้งานชั่วขณะและกล้องจะเปลี่ยนไปสู่พื้นที่ใหม่หลังจากที่อินพุตผู้ใช้ถูกกู้คืน

  • หน้าจอสีน้ำเงิน (หน้าจอ 5) ปิดใช้งานการเลื่อนแนวนอนเพื่อให้สามารถเปลี่ยนแนวตั้งได้เท่านั้น

  • หน้าจอสีเขียว (หน้าจอ 6) มีการเปลี่ยนแนวตั้งกลับไปที่หน้าจอ 5 แต่ยังช่วยให้การเลื่อนแนวนอนราบรื่นไปสู่หน้าจอ 7

แก้ไข : การใช้การเปลี่ยนในแง่ของห้องนำฉันไปสู่สิ่งนี้:

แผนภาพการใช้โครงสร้างห้อง

รอยหยักขนาดเล็กที่มีลูกศรเป็นบริเวณที่เกิดการเปลี่ยนแปลงได้ แต่ละภูมิภาคมี "ทิศทาง" และโกหกเพียงด้านนอกของพื้นที่ที่มองเห็นของห้อง ทันทีที่ผู้เล่นชนภูมิภาคการเปลี่ยนภาพก็จะเริ่มขึ้น


1
พฤติกรรมนี้ยังมีอยู่ในเกม 2 มิติในซีรีย์ Metroid
Sparr

ใช่มันเป็นสิ่งเดียวกัน ความแตกต่างที่ IIRC Metroid อนุญาตให้ใช้การเลื่อนแบบเรียบในแนวตั้งในบางห้อง / เพลาในขณะที่ Mega Man ไม่เคยมีการเลื่อนแบบเรียบในแนวตั้ง มีการเปลี่ยนแปลงอยู่เสมอ
Zack The Human

ฉันได้ยินสิ่งนี้เรียกว่า
Blecki

คำตอบ:


21

มันเสียงเหมือนสิ่งที่คุณต้องการคือแนวคิดของห้องตรงข้ามกับหน้าจอ หน้าจอ 1-3 จะเป็นห้องหนึ่งเช่นห้องพักของคุณแล้วอาจจะมีขนาดใดและรูปร่างหรือแม้กระทั่งการ จำกัด ขนาดของหลายรายการที่หน้าจอ

กล้องของคุณจะติดตามผู้เล่นผ่านห้องที่กำหนดจนกระทั่งผู้เล่นเข้าใกล้ชายแดนเกินไป (ความกว้างหน้าจอครึ่งหนึ่ง) เมื่อผู้เล่นเคลื่อนที่ข้ามเส้นขอบและไปยังอีกห้องหนึ่ง

แต่ละห้องจะมีชุดของจุดเชื่อมต่อซึ่งถูกแมปไปยังจุดเชื่อมต่อของอีกห้องหนึ่ง - สร้างจุดเปลี่ยน


ขอบคุณสำหรับคำแนะนำ นี่คือสิ่งที่ฉันต้องการทำในตอนแรก แต่ฉันก็เจอสิ่งกีดขวางบนถนนเมื่อพยายามรับมือกับช่วงการเปลี่ยนภาพ ตัวอย่างเช่นมีห้องยาวที่มีทางเข้าจากด้านบนทางด้านซ้ายของห้องและทางออกที่ด้านบนสุดของด้านขวา ฉันคิดว่าวิธีที่จะจัดการกับเรื่องนี้คือการมีการกำหนดพื้นที่ขนาดเล็กซึ่งสามารถเรียกการเปลี่ยนแปลง, อืม?
Zack The Human

อีกเล็กน้อย: แนวคิด "ห้อง" เป็นสิ่งที่ฉันมีอยู่ในเกมของฉัน ห้องสามารถมีขนาดโดยพลการ แต่ฉันยังไม่ได้กำหนดวิธีการเปลี่ยนจากห้องหนึ่งไปยังอีกห้องหนึ่ง
Zack The Human

1
@Zack: กล้องติดตามผู้เล่นไปรอบ ๆ ขอบเขตกล้องจะต้องไม่ทับห้องข้างนอกที่ผู้เล่นอยู่ (เช่นถ้าขอบด้านขวาของวิวพอร์ตอยู่ตรงขอบด้านขวาของห้องนี้กล้องจะไม่สามารถเลื่อนไปทางขวา) หากผู้เล่นผ่านผนังห้องเข้าไปในห้องที่อยู่ติดกันให้ติดตามกล้องอย่างรวดเร็วจนกว่ามันจะปลอดภัยภายในห้องใหม่ (คุณเพียงแค่ต้องกังวลเกี่ยวกับการขึ้น / ลง / ซ้าย / ขวาในโครงสร้างของคุณสำหรับการเคลื่อนไหวนี้) เป็นทางเลือกถ้าผู้เล่นเดินขึ้นไปบนกำแพงห้องควบคุมโดยอัตโนมัติและบังคับให้พวกเขาเดินไปข้างหน้าเพื่อให้อยู่ในห้องใหม่อย่างสมบูรณ์
doppelgreener

1
@ แซค: การแก้ไขคำถามของคุณดูเหมือนจะสัมพันธ์กับสิ่งที่ฉันคิด ตำแหน่งของผู้เล่นสามารถย้ายออกจากห้องที่กำหนดในตำแหน่งการเปลี่ยนภาพนั้น (ระหว่าง y1 ถึง y2 บนผนังแนวตั้งหรือ x1 และ x2 บนผนังแนวนอน) และทันทีที่คุณทำคุณวางตำแหน่งในห้องถัดไป - ดังนั้นจึงหลีกเลี่ยงการวนกลับไปมาและดำเนินการเปลี่ยนภาพ
TreDubZedd

1
คุณอาจพิจารณา "เส้นขอบ" รอบ ๆ ห้องซึ่งโดยทั่วไปจะเป็นพื้นที่ที่ไม่สามารถเล่นได้ (ยกเว้นสำหรับช่วงเปลี่ยนภาพ) คุณสามารถออกแบบห้องของคุณแบบกราฟิกเช่นเส้นขอบที่ไม่สามารถเล่นได้จะมีกราฟิก "กำแพง" อยู่เสมอ แต่พื้นที่การเปลี่ยนแปลงจะเปิดทิ้งไว้เช่นเดียวกับส่วนอื่น ๆ ของห้อง คุณสามารถปลอมแปลง "ทับซ้อน" โดยการรอให้ผู้เล่นข้ามไปที่ชายแดน (เล่นได้) ทั้งหมดและในห้องถัดไปตรวจสอบให้แน่ใจว่าตำแหน่งใหม่ไม่ได้ตัดกับเส้นขอบเลย
TreDubZedd

-8

แนวคิดของพื้นที่สกรอลล์ขนาดใหญ่ที่ถูกสร้างขึ้นจากชิ้นงานขนาดหน้าจอเป็นสิ่งประดิษฐ์ของข้อ จำกัด ด้านทรัพยากรที่รุนแรงบนคอนโซลแบบคลาสสิกซึ่งประสิทธิภาพการทำงานอาจเพิ่มขึ้นได้โดยการเก็บข้อมูลเป็นชิ้นขนาดเฉพาะ (เช่นหน้าหน่วยความจำเดียว) มีเหตุผลน้อยมากที่จะใช้ระบบดังกล่าวในเกมที่ทันสมัย


7
ฉันเข้าใจว่านักพัฒนาดั้งเดิมต้องใช้การเลื่อนด้วยวิธีนี้เพื่อโหลดไทล์สไปรต์ ฯลฯ ฉันไม่จำเป็นต้องใช้ระบบที่อิงกับหน้าจอที่อธิบายไว้ในคำถามของฉันสิ่งที่ฉันต้องการคือเลียนแบบกล้องและ / หรือเลื่อนการเคลื่อนไหว
Zack The Human

4
-1 - การแบ่งพื้นที่เล่นออกเป็นชิ้น ๆ ที่ไม่ต่อเนื่องอาจไม่เกี่ยวข้องกับการโหลดอีกต่อไป แต่มันยังสร้างความรู้สึกที่เฉพาะเจาะจงสำหรับผู้เล่นและช่วยให้พวกเขาแมปพื้นที่ทางจิตใจ

@ Joe มีความเกี่ยวข้องกับคำตอบของฉันอย่างไร ฉันเจาะจงชิ้นงานที่มีขนาดหลายหน้าจอโดยตรงและโดยตรง ฉันไม่ได้พูดอะไรเกี่ยวกับชิ้นส่วนที่ไม่ต่อเนื่องหรือไม่
Sparr

ฉันต้องการให้คุณรู้ว่าฉันไม่ได้ลงคะแนนคำตอบของคุณ แต่ฉันไม่คิดว่ามันจะตอบคำถามของฉัน: 'การเปลี่ยนหน้าจอเหล่านี้เป็นแบบจำลองได้อย่างไร'
Zack The Human

@ แซคขอบคุณ ถ้ามันไปในเชิงลบมากเกินไปฉันจะลบมัน แต่ถ้ามันอยู่ที่ -3 แล้วฉันจะทิ้งมันไว้เพราะฉันคิดว่ามันตรงประเด็นแม้ว่าจะไม่ใช่คำตอบโดยตรง
Sparr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.