2016-07-25 15 views
0

Ich habe 3 Plattformen und einen Spieler, der von einer Plattform zur exakten Mitte der nächsten Plattform nach rechts/links springen muss. Im Moment benutze ich Physik auf den Plattformen und dem Player, und addiere velocity.y für die Sprungstärke, und ich möchte die Geschwindigkeit berechnen, die von den Zentren der aktuellen Plattform berechnet wird, auf der er sich befindet, und der nächsten Plattform, die er sollte springen zu.Wie velocity.x zu berechnen, um zwischen den Plattformen zu springen?

Hat jemand eine Idee, wie diese Berechnung zu implementieren ist?

Danke!

Antwort

0

Unter der Annahme, dass die nächste Plattform auf gleiche Höhe ist und dass die Schwerkraft nur nach unten zeigt (dh Schwerkraft eine Null X-Komponente), können Sie die folgende Formel:

velocityX = distance * gravity * 0.5/velocityY 

Wo distance das ist Distanz, die Sie abdecken möchten (Abstand zwischen den Plattformen), gravity ist der absolute Wert der Gravitationsbeschleunigung (9.81 in Unity standardmäßig) und velocityY ist die vertikale Geschwindigkeitskomponente des Players nach dem Anwenden der Sprungkraft/Impuls (Geschwindigkeit).

Wenn die Plattformen nicht Level sind, erfordert das einige Berechnungen mehr.

+0

also, wenn ich einen Sprung durch Hinzufügen von Kraft von -350 zur velocity.y mache, sollte es durch -350 dividieren? Und ich nehme an, die Entfernung ist in Einheiten? – trueicecold

+0

Nein, es sollte durch die Endgeschwindigkeit dividiert werden, also die Geschwindigkeit * nachdem * Sie -350 hinzugefügt haben. Ich bin mir nicht sicher, wie du diesen großen Wert bekommen hast, und das ist zu negativ. Und ja, die Entfernung ist in Einheiten. – EvilTak