Ich schreibe ein 2D-Kachel-basiertes RTS. Und ich möchte eine Pseudo-3D-Funktion hinzufügen - Brücken über die Flüsse.
Ich habe noch keine Codierung gestartet und versuche nur zu überlegen, wie sie zum Kollisionserkennungsmodell passt. Ein Boot, das unter der Brücke vorbeifährt, und eine Einheit, die sich über die Brücke bewegt, werden schließlich dieselbe Zelle auf der Karte besetzen. Wie kann man sie vor Kollisionen schützen?
Gibt es einen gemeinsamen Ansatz zur Lösung eines solchen Problems? Oder muss ich dazu eine 3D-Welt implementieren?
2d
3d
collision-detection
rts
Aleguna
quelle
quelle
Antworten:
Grundsätzlich müssen Sie eine dritte Dimension erstellen, die im einfachsten Fall jedoch nur aus zwei Werten bestehen kann: "auf dem Boden / auf der Brücke" und "auf dem Wasser / unter der Brücke".
Eine Inspiration findet sich in der Art und Weise, wie Advanced Strategic Command dies tut: Einheiten besetzen eine bestimmte Höhenstufe, können sich nur auf Höhenstufen bewegen, die ihrem Typ entsprechen, es sei denn, es gibt bestimmte Funktionen, die es ihnen ermöglichen, etwas anderes zu tun (z. B. Landebahnen für Flugzeuge) und Das Ändern kostet normalerweise Bewegungspunkte, mit Strafen für einige Höhenstufen oder andere. Ein Plättchen kann von einer beliebigen Anzahl von Einheiten belegt werden, solange sich jede auf einer anderen Höhenstufe befindet.
Im Fall von ASC sind die Ebenen:
quelle
Sie können jeder Kachel ein einfaches Attribut hinzufügen, das ihre Ebene angibt.
Also zum Beispiel:
Jetzt können Sie Ihre Kacheln nach ihren Ebenenwerten sortieren und unten -> oben zeichnen! Dadurch sieht es so aus, als hätten Sie eine bestimmte Tiefe in Ihrem Spiel. Die meisten Fliesenmotoren unterstützen dies. Eine weitere coole Sache, die Sie hinzufügen können, ist die Transparenz Ihrer Texturen, sodass Sie bis zur untersten Ebene durchschauen können.
Dies kann zum Beispiel mit Wasser geschehen - stellen Sie sich das Wasser auf Stufe 1 und dann den Meeresboden auf Stufe 0 vor. Wenn die Wassertextur etwas transparent ist, können Sie den Meeresboden von oben sehen.
quelle