Kurzer Hinweis: Ich kenne Lua nicht, aber ich bin ziemlich gut in Mathematik / Physik und bitte nehmen Sie Kontakt mit mir auf, wenn ich Ideen behandele, mit denen Sie bereits vertraut sind.
Für jedes Objekt unter der Schwerkraft vxbleibt die horizontale Komponente der Geschwindigkeit während der gesamten Bewegung konstant.

In diesem Bild werden die roten Punkte zu gleichen Zeiten gemacht, so dass der Ball bei xjedem Tick gleiche Entfernungen in die Richtung zurücklegt (also vxkonstant ist), während er nicht in die yRichtung geht.
Das Folgende beantwortet Ihre Frage nicht direkt, ist aber nützlich, daher habe ich sie belassen
Es ist möglich, das Problem bei einer Startposition (x0, y0)und einer Endposition zu lösen, (xf,yf)welche Geschwindigkeit das Objekt anfänglich benötigt, um den Endpunkt zu erreichen. Dies kann unter Verwendung von Bewegungsgleichungen gelöst werden , die (vx,vy)als Anfangsgeschwindigkeiten, Tals Zeit zum Vervollständigen der Bewegung und gals Beschleunigung aufgrund der Schwerkraft definiert werden.
xf = x0 + vx*T // This has no acceleration part as it is zero for x
yf = y0 + vy*T - g*T^2/2
Das Lösen dieser beiden Gleichungen ergibt
vy = vx * (yf - y0)/(xf - x) + g * (xf - x0)/(2 * vx).
Dies ist keine vollständige Lösung, da Sie wissen, dass die Bewegung parabolisch ist, aber es sind drei Punkte erforderlich, um eine Parabel zu definieren. Sie müssen also entweder die Zeit wählen, die das Partikel benötigt, um seinen endgültigen Punkt zu erreichen, oder die Geschwindigkeit in x-Richtung.
Aktuelle Antwort
Sie wählen, dass der Endpunkt (xf,yf)der Scheitelpunkt der Parabel ist. Dies führt tatsächlich eine dritte Einschränkung ein, wie Sie in den Kommentaren erwähnt haben, diesmal für die Geschwindigkeit in der yRichtung.
Wie Sie in der verknüpften Frage gefunden haben, ist das vyErforderliche gegeben durch:
vy = sqrt(2 * g * (yf - y0)).
Sie können dann die Gleichung oben für die Verwendung vyvon in Bezug vxzu lösen für vxdie gibt,
vx = (xf - x0) * sqrt(g / (2 * (yf - y0))).
yStartPos = event.ySie feststellena = 0, dass Sie keine Parabel mehr haben. Fühlen Sie sich frei, mich zu korrigieren. (Ich werde morgen einen weiteren Riss bei einer Antwort haben, möchte aber auch überprüfen, ob Sie eine Art Schwerkraft simulieren, dh eine Kanonenkugel abfeuern, da ich nicht genau weiß, was Sie versuchen zu tun).