Mega Man-Style-Bildschirm-Scrolling-Design

25

Die klassische Mega Man-Serie von NES verwendet eine sehr spezielle Bildlauf-Technik, bei der es mir schwer fällt, mich auf die Implementierung einzulassen. Im Wesentlichen ist die Ebene in "Bildschirme" unterteilt, die alle die gleiche Größe haben. Einige Bildschirme rollen nahtlos ineinander und erwecken den Eindruck eines größeren Spielfelds. Einige Bildschirme verhindern das Scrollen der Kamera, bis der Player den Rand des Bildschirms erreicht hat. Zu diesem Zeitpunkt erfolgt ein Übergang, und der nächste Bildschirm wird angezeigt. Es ist auch möglich, dass ein einzelner Bildschirm mehr als eine Überblendung hat, zum Beispiel eine Leiter, die zu einem Bildschirm führt, aber Sie können auch vorwärts zu einem anderen Bildschirm gehen.

Wie können diese Bildschirmübergänge modelliert werden?

Mega Man Bildschirm Übergangsdiagramm

  • Bildschirm 0 ist der Startbildschirm, auf dem der Player gestartet wird.
  • Bildschirm 0-3 rollt horizontal reibungslos und erscheint dem Spieler als ein kontinuierliches Spielfeld.
  • Da es einen Übergang zwischen Bildschirm 3 und den benachbarten Bildschirmen 4 und 5 gibt, bewegt sich die Kamera nicht über den rechten oder oberen Rand von Bildschirm 3 hinaus, es sei denn, der Player bewegt sich zu diesem jeweiligen Rand und "schiebt" sich zum nächsten Bildschirm durch.
  • Sobald sich der Player an einer der Überblendungskanten befindet, wird die Benutzereingabe vorübergehend deaktiviert und die Kamera wechselt in den neuen Bereich. Danach wird die Benutzereingabe wiederhergestellt.

  • Der blaue Bildschirm (Bildschirm 5) hat das horizontale Scrollen deaktiviert, sodass nur vertikale Übergänge möglich sind.

  • Der grüne Bildschirm (Bildschirm 6) hat einen vertikalen Übergang zurück zu Bildschirm 5, ermöglicht jedoch auch ein horizontales ruckelfreies Scrollen in Bildschirm 7.

Edit : Das Implementieren der Übergänge in Bezug auf Räume führt mich dazu:

Raumstruktur-Implementierungsdiagramm

Die kleinen Kerben mit einem Pfeil sind die Bereiche, in denen ein Übergang auftreten kann. Jede Region hat eine „Richtung“ und liegt nur außerhalb des sichtbaren Bereichs des Raumes. Sobald der Spieler eine Region erreicht, wird ein Übergang gestartet.

Zack der Mensch
quelle
1
Dieses Verhalten tritt auch in den 2D-Spielen der Metroid-Reihe auf.
Sparr
Ja, es ist im Wesentlichen dasselbe. Der Unterschied besteht darin, dass IIRC Metroid in einigen Räumen / Schächten vertikales Smooth-Scrolling zulässt, während Mega Man niemals vertikales Smooth-Scrolling hatte. Es gab immer einen Übergang.
Zack The Human
Ich habe das so genannte "Flick Screening" gehört.
Blecki

Antworten:

21

Es hört sich so an, als ob Sie das Konzept von Räumen im Gegensatz zu Bildschirmen brauchen . Die Bildschirme 1 bis 3 wären ein Raum, z. B. könnten Ihre Räume dann eine beliebige Größe und Form haben oder sogar auf die Größe eines Vielfachen eines Bildschirms beschränkt sein .

Ihre Kamera folgt dem Spieler durch einen bestimmten Raum, bis der Spieler zu nahe an den Rand gelangt (halbe Bildschirmbreite). Wenn sich der Spieler über die Grenze und in einen anderen Raum bewegt, führen Sie die Übergangsvisualisierung durch.

Jeder Raum verfügt über eine Reihe von Zugangspunkten, die den Zugangspunkten eines anderen Raums zugeordnet sind. Auf diese Weise werden die Übergangspunkte erstellt.

TreDubZedd
quelle
Danke für den Vorschlag. Dies ist, was ich ursprünglich tun wollte, aber ich bin auf eine mentale Blockade gestoßen, als ich versuchte, mit Übergängen umzugehen. Angenommen, es gibt einen langen Raum mit einem Eingang von oben am linken Ende des Raums und einem Ausgang oben am rechten Ende. Ich nehme an, der Weg, um damit umzugehen, besteht darin, kleine Regionen zu definieren, die den Übergang auslösen können, hmm?
Zack The Human
Ein bisschen weiter: Das "Raum" -Konzept ist das, was ich derzeit in meinem Spiel habe. Räume können beliebig groß sein, aber ich habe noch nicht definiert, wie der Übergang von Raum zu Raum erfolgen soll.
Zack The Human
1
@Zack: Die Kamera folgt dem Player herum. Die Kamera-Begrenzungen dürfen niemals einen Raum außerhalb des Raums überlappen, in dem sich der Player befindet (dh, wenn die rechte Kante des Ansichtsfensters an der rechten Kante dieses Raums anliegt, kann sich die Kamera nicht nach rechts bewegen). Wenn der Player durch eine Raumwand in einen angrenzenden Raum gelangt, lassen Sie die Kamera schnell verfolgen, bis sie sich sicher im neuen Raum befindet (Sie müssen sich für diese Bewegung nur um Auf / Ab / Links / Rechts in Ihrer Struktur kümmern). Wenn der Spieler auf eine Raumwand zugeht, können Sie optional die automatische Steuerung übernehmen und ihn zwingen, vorwärts zu gehen, um sich vollständig im neuen Raum zu befinden.
Doppelgreener
1
@Zack: Deine Frage scheint mit dem zu korrelieren, was ich gedacht habe. Die Position des Spielers kann nur an diesen Übergängen (zwischen y1 und y2 an einer vertikalen Wand oder x1 und x2 an einer horizontalen Wand) aus einem bestimmten Raum verschoben werden. Sobald dies der Fall ist, platzieren Sie die Position im nächsten Raum - So vermeiden Sie eine "Hin- und Her" -Schleife - und führen Sie den visuellen Übergang durch.
TreDubZedd
1
Sie können auch eine "Grenze" um jeden Raum in Betracht ziehen, die im Allgemeinen nicht spielbar ist (mit Ausnahme der Übergangsregionen). Sie können Ihre Räume grafisch so gestalten, dass der nicht spielbare Rand immer "Wand" -Grafiken enthält, die Übergangsbereiche jedoch wie der Rest des Raums offen bleiben. Sie können eine vorübergehende "Überlappung" vortäuschen, indem Sie darauf warten, dass der Spieler die (spielbare) Grenze vollständig überschreitet, und im nächsten Raum sicherstellen, dass die neue Position die Grenze überhaupt nicht überschneidet.
TreDubZedd
-8

Das Konzept größerer Bildlaufbereiche, die aus bildschirmgroßen Blöcken bestehen, ist ein Artefakt schwerwiegender Ressourcenbeschränkungen bei klassischen Konsolen, bei denen Leistungssteigerungen erzielt werden könnten, wenn Daten in Blöcken bestimmter Größen (z. B. einer Speicherseite) gespeichert werden. Es gibt kaum einen Grund, ein solches System in einem modernen Spiel einzusetzen.

Sparr
quelle
7
Ich verstehe, dass die ursprünglichen Entwickler das Scrollen auf diese Weise implementieren mussten, um Kacheln, Sprites usw. zu laden. Ich muss das in meiner Frage beschriebene bildschirmbasierte System nicht implementieren. Ich möchte wirklich die Kamera emulieren und / oder oder Scrollbewegung.
Zack The Human
4
-1 - Die Aufteilung des Spielbereichs in unterbrochene Abschnitte ist möglicherweise nicht mehr relevant für das Laden, schafft aber dennoch ein besonderes Gefühl für den Spieler und hilft ihm, den Bereich mental abzubilden.
@ Joe, wie ist das für meine Antwort relevant? Ich spreche speziell und direkt die Chunks an, die mehrere Bildschirme haben. Ich sagte nichts darüber, dass die Stücke diskontinuierlich sind oder nicht.
Sparr
Ich wollte Sie wissen lassen, dass ich Ihre Antwort nicht abgelehnt habe, aber ich glaube nicht, dass sie meine Frage beantwortet: "Wie können diese Bildschirmübergänge modelliert werden?".
Zack The Human
@Zack danke. wenn es zu viel negativer wird, lösche ich es, aber wenn es bei -3 bleibt, lasse ich es, da ich denke, dass es relevant ist, auch wenn es keine direkte Antwort ist
Sparr