Ich baue ein Spiel mit Spielern und Raketen.
Ich möchte eine Rakete von P1 nach P2 abfeuern. Die Rakete sollte immer genau fünf Sekunden brauchen, um P2 zu erreichen. Die Rakete sollte auch P2 verfolgen. Wenn sich P2 weiter entfernt, muss der Flugkörper schneller werden, um die Zeitbeschränkung zu erfüllen. Wenn sich P2 nach links bewegt, muss sich die Rakete nach links bewegen (und auch die Geschwindigkeit ändern). Wenn P2 näher an P1 heranrückt, muss die Rakete langsamer werden.
Ist das möglich? Was ist der beste Weg, um dies zu erreichen?
Ich habe derzeit keine Vector2D-Klasse (dies ist eigentlich kein Spiel, aber die Analogie funktioniert gut). Wenn möglich, möchte ich eine Lösung, für die keine erforderlich ist.
Bearbeiten: Dies ist auch keine Rakete. :) :)
Vielen Dank!
Antworten:
Die Bearbeitung ist beruhigend. :) :)
Okay, hier ist eine einfache Update-Schleife ...
Angenommen, wenn wir die Rakete abfeuern, initialisieren wir
remainingFlightTime = 5f
dann ...quelle
Warum nicht die Position ändern und das Ziel aktualisieren, wenn es sich ändert?
Möglicherweise müssen Sie sich ansehen, wie Lerping funktioniert, aber es würde ungefähr so aussehen:
Durch Lerping ändern Sie im Grunde genommen die Position eines Objekts über einen bestimmten Zeitraum, sodass Sie sagen können, dass Sie sich zu 50% von A nach B befinden und das Objekt dort platziert wird. Lerping ist direkt, so dass Sie sich immer auf das Ziel zubewegen (wie Sie es in den Kommentaren möchten).
quelle