Ich versuche ein einfaches Spiel im Zelda-Stil zu entwickeln. Ich fand dieses Thema sehr nützlich
Wie hat LoZ: A Link to the Past mit Kollisionen unter einer Kachel umgegangen?
Das verwende ich als Referenz, um meinen Kollisionserkennungsmechanismus zu entwickeln. Es gibt jedoch etwas, das ich nicht verstanden habe. Wenn sich Link hinter Gebäuden befindet, wird nur ein Teil von ihm angezeigt. Kann mir jemand bitte helfen, zu verstehen, wie dieser Effekt erzielt werden kann? Ist das Gebäude nicht Teil des Hintergrunds?
Antworten:
2D-Tiled-Spiele haben normalerweise mehr Ebenen, die in verschiedenen Ebenen gerendert werden - einige werden im Hintergrund gerendert, andere über dem Spieler.
Dieser Teil des Daches wird über dem Spieler gerendert und deshalb kann der Spieler hinter dieses Gebäude gehen.
Hier ist das Bildbeispiel aus meinem Spiel, um es besser zu erklären:
quelle
Während die Antwort von Blodyavenger beschreibt, wie es am wahrscheinlichsten gemacht wird, gibt es hier eine andere Möglichkeit, die ein einfaches Umschalten der Perspektive ermöglicht (z. B. vier oder acht verschiedene Richtungen oder einige Höhenstufen der Kamera):
Betrachten Sie die Ansicht Ihrer Karte von oben nach unten, z
Wo zum Beispiel
X
eine hohe Säule markiert. Für jedes Objekt speichern Sie Bilder aller möglichen Perspektiven (oder verwenden dieselben ...), die beliebig viele Kacheln hoch sein können. Beginnen Sie beim Zeichnen einfach mit der Spalte oder Zeile, die sich in der aktuellen Perspektive auf der Rückseite befindet, z. B. Zeile 1, wenn Sie von Süden schauen. Zeichnen Sie danach die zweithäufigste Zeile / Spalte nach hinten und so weiter. Auf diese Weise wird etwas, das höher ist als eine Kachel (gedehnt auf die aktuelle Perspektive), einfach überzeichnet, was dahinter liegt.(Entschuldigung für den Mangel an schönen Bildern, ich bin nicht so gut in angewandten Grafiken ...)
quelle
Sie sollten eine Variable für die Tiefe haben und die Bilder mit der größten Tiefe zuerst zeichnen lassen, dann die anderen mit der geringsten Tiefe. Und die Tiefe jedes Objekts sollte dem Negativ seiner y-Koordinate entsprechen.
Depth=-y
quelle