Dies geschieht wahrscheinlich am besten durch Emulieren von 3D. Das Folgende ist 3D-Mathematik, die auf das für Ihren Fall erforderliche Minimum reduziert ist. Im Folgenden gehe ich davon aus, dass Sie ein [initial scale]
und ein [final scale]
für den Ball definieren, je nachdem, wie groß / nah er erscheinen soll, zusammen mit den Start- und Endkoordinaten und der [time]
Dauer. Sie sollten auch eine [gravity]
Konstante definieren .
Rahmen
Das [ball scale]
sollte proportional zu sein 1/[distance to screen]
, wo [distance to screen]
es linear mit der Zeit abnehmen sollte, es darf nicht 0 erreichen, sondern sollte bis zu dem Punkt abnehmen, an dem der Ball die gewünschte Größe hat.
Es spielt keine Rolle, in welcher Einheit die Entfernung gemessen wird. Am einfachsten ist es also, einfach zu deklarieren [initial distance]
, dass sie gleich 1/[initial scale]
und ist[final distance] = 1/[final scale]
Position
Der Ball sollte sich auch auf dieselbe nichtlineare Weise über den Bildschirm bewegen, auf der er skaliert. Wenn Sie also berechnet haben [ball scale]
, können Sie dies auch verwenden, um die Position zu ermitteln
[position] = [start position] + ([end position] - [start position]) *
([ball scale]-[initial scale]) / ([final scale]-[initial scale])
Schwere
Dadurch scheint sich der Ball in einer geraden Linie durch die Luft zu bewegen. Echte Bälle neigen dazu, dies aufgrund der Schwerkraft nicht zu tun. Abgesehen von sehr schnellen Schlägen würde es seltsam aussehen, wenn sich der Weg des Balls nicht nach unten biegt. Zuerst brauchen wir eine Parabel, die im Anfangs- und Endabstand zum Bildschirm durch 0 geht:
[height] = ([distance to screen]-[initial distance]) *
([final distance]-[distance to screen])
Dann sollte diese Parabel auf die gewünschte Schwerkraft skaliert werden, um langsamen Bällen eine größere Höhe zu verleihen:
[height] = [height] * [gravity] * [time]^2
Schließlich sollte die visuelle Darstellung dieser Höhe wie der Ball skaliert werden:
[visual height] = [height] * [ball scale]
Die [visuelle Höhe] sollte dann zum vertikalen Teil der Bildschirmposition hinzugefügt werden. Abhängig von der Zeit und der Schwerkraftskala kann dies dazu führen, dass der Ball für einen Teil des Schusses vom Bildschirm verschwindet.
Zögern Sie nicht zu fragen, ob etwas nicht klar ist.