Was sollte in einem 2D-Endlosläufer passieren, wenn der Spieler "zu schnell" einen Hang hinauf rennt und springt?
Zum Beispiel in einem "normalen" Fall:
.O.
. __..O_____
. /
. /
O/
_/
Wenn er sich langsam genug nach rechts bewegt, springt er nach oben und landet auf dem flachen Teil der Oberfläche. Wenn er sich jedoch zu schnell bewegt, hat der Sprung keine Auswirkung, da seine Vorwärtsbewegung ihn wieder in Kontakt mit dem Hang bringt, bevor er hoch genug wird, um darüber hinwegzukommen. Wenn die Geschwindigkeit ausreichend hoch ist, gibt es effektiv keinen Sprung.
_________
/
.O/
O/
_/
Gibt es bekannte Möglichkeiten, um dieses Problem zu lösen? Ich weiß, dass es physikalisch korrekt ist *, aber gibt es Techniken, mit denen andere Spiele dies auf vernünftige Weise überwinden?
Als letzten Ausweg muss ich einfach alle zu schrägen Hänge entfernen.
* Wenn Sie den Spieler daran hindern, niemals rückwärts zu springen.
Antworten:
Hier sind einige Beispiele, wie Spiele (Läufer oder andere) mit dieser Situation umgegangen sind. Es gibt kein "Bestes" und Sie müssen sich noch entscheiden, welches für Ihr Spiel geeignet ist.
Der physikalisch "richtige" Weg (vertikaler Impuls)
Zum Springen fügen Sie Ihrer Bewegungsgeschwindigkeit (grün) einen vertikalen Impuls (rot ) hinzu . Die resultierende Geschwindigkeit (blau) bringt Sie immer über den Hang. Solange Ihr Hang nicht zu schnell steiler wird, springt Ihr Charakter immer über den Hang.
Die Einschränkung ist, dass Sie jetzt sehr hoch springen können, wenn Ihr Charakter einen steilen Hang hinauf rast.
Senkrechte Sprünge (Sonic)
Beim Springen verläuft Ihr Sprungimpuls in einer Richtung (rot) senkrecht zur Steigung (grün) . Möglicherweise erinnern Sie sich an dieses Verhalten aus den Sonic-Spielen.
Die Einschränkung ist, dass Sie an sehr steilen Hängen oft rückwärts springen.
Kein Springen auf Pisten
Vielleicht entscheiden Sie, dass Pisten etwas Besonderes sind und es keinen Sinn macht, darauf zu springen. Zum Beispiel sind Treppen eine besondere Art von Hang, auf den man in einigen Spielen überhaupt nicht springen kann.
Die Einschränkung ist, dass Sie, wenn Sie dem Spieler die Kontrolle auf diese Weise entziehen, die Erwartungen klar kommunizieren müssen, da der Spieler sonst frustriert werden kann. Zum Beispiel verwendet Castlevania eine spezielle "Treppensteigen" -Animation, um zu verdeutlichen, dass es sich um eine besondere Art von Bewegung handelt.
Kein Laufen an steilen Hängen
Eine andere Möglichkeit besteht darin, das Klettern zu steiler Hänge unmöglich zu machen - die Spieler rutschen nach unten, als wäre es ein wandartiges Hindernis. Da sie fallen oder herunterrutschen, ist es klar, dass sie auch in dieser Zeit nicht springen können.
Keine steilen Hänge
Sie könnten den einfachen Ausweg nehmen und Hänge, die Ihnen solche Probleme bereiten, vollständig entfernen. Dies ist keine so schlechte Idee, wie es sich anhört, denn das Gehen auf Hängen macht keinen Spaß. Hänge runter zu gehen ist viel aufregender!
Keine Pisten (die Mu-Antwort)
Wenn es um das Gameplay geht, bin ich ein Fan von minimalistischem Design - wie das Sprichwort sagt: "Perfektion wird endlich erreicht, nicht wenn es nichts mehr hinzuzufügen gibt, sondern wenn es nichts mehr zum Mitnehmen gibt". Dienen Pisten einem nützlichen Spielzweck oder sehen sie einfach nur gut aus - dh machen sie Spaß ? Schließlich ist es vollkommen in Ordnung, einen Läufer ohne Pisten zu haben.
quelle
Für alle anderen, die darauf stoßen, habe ich es umgangen, indem ich eine Mindestanzahl von Frames hatte, die in der Sprunganimation passieren müssen, bevor eine Kollision mit dem Hügel registriert wird. Auf diese Weise haben Sie eine Nachfrist, damit der Charakter ein wenig aufstehen kann, ohne sich um die Hangkollision sorgen zu müssen.
quelle
Der Raycast ist eine gute Idee. Sie können den Ray Judge verwenden, um festzustellen, ob es sich um eine Steigung handelt. Anschließend können Sie die Geschwindigkeit steuern, indem Sie die Geschwindigkeit des Spielers ändern.
quelle