Wie gehen Sie mit "Zur Maus bewegen" um, wenn sich der Player bereits in der Maus befindet?

7

Ich mache ein Top-Down-2D-Spiel. Wenn sich mein Player bewegt, bewegt sich der Cursor nicht mit. In meinem Spiel bewegt sich der Spieler, indem er auf den Cursor zeigt und dann darauf zugeht. Dies bedeutet, dass der Spieler schließlich den Cursor erreicht und dann einen Fehler macht.

Wie gehe ich mit Spielerbewegungen um, wenn sie die Maus erreichen?

Daaksin
quelle
2
Ein paar Abbildungen oder Screenshots helfen dabei, klarer zu machen, was Sie tun / reparieren möchten.
William Mariager
1
Sie müssen diesen Fall auf die eine oder andere Weise behandeln (z. B. wie wäre es, wenn Sie sich nur bewegen, wenn es einen Mindestabstand gibt?). Die meisten Spiele, an die ich denken kann, ignorieren entweder einen zu nahen Cursor oder drehen Sie einfach weiter in die Richtung, in die er zeigt.
Mario
Wenn ein bestimmtes Problem auftritt, das Sie lösen möchten, fügen Sie weitere Informationen hinzu (Quellcode!). Im Moment ist nicht wirklich klar, wonach Sie suchen, außer einem "Ja" oder "Nein" (unwahrscheinlich).
Mario

Antworten:

15

Bei vielen Top-Down-2D-Spielen ist die Kamera auf den Player zentriert. Dadurch bewegt sich die Maus immer vom Player weg. Der von Ihnen erwähnte „Fehler“ kann behoben werden, indem unmittelbar um den Spieler eine tote Zone hinzugefügt wird. Wenn Sie mit der Maus innerhalb dieser Totzone klicken, werden die Befehle zum Verschieben und Drehen nicht aktiviert.

Das Bewegungs- und Drehverhalten soll nicht auf so kurzen Strecken funktionieren. Es wird oft das Ziel überschießen und hier wird der "Fehler" eingeführt. Der Algorithmus schwingt im Wesentlichen auf dem Ziel, ohne es erreichen zu können. Die Alternative, dies zu beheben, besteht darin, eine Art maximale Geschwindigkeit basierend auf der Entfernung zum Ziel zu haben. Sehen Sie sich das Verhalten bei der Lenkankunft an, um mehr über dieses Problem zu erfahren:

Vermeiden des Umlaufens beim Lenkverhalten

Lenkverhalten ankommen

MichaelHouse
quelle
2
+1 für die Totzone, dies ist wahrscheinlich der schnellste und einfachste Weg, um das Problem zu beheben.
Alexandre Desbiens
1
Interessant. Wenn distance<speedich in allen meinen Spielen die speedgleiche Entfernung einnehme, bewege einen Tick und stoppe dann die Animation.
Mooing Duck
+1 in der Tat funktioniert ein einfaches "Wenn Cursor> min Abstand vom Spieler, dann bewegen" in der Regel gut, und Sie können die Steuerung und das Spielverhalten drastisch ändern, indem Sie mit der Zahl spielen. Ein kleiner vermeidet Störungen, während ein großer das grundlegende Handling ändert, so dass es lockerer und verzeihender ist, wenn winzige Handrucke auftreten.
BrianH