Hallo ihr Lieben,
ich entwickle grad ein Spiel, in dem eine Kugel (2D -> praktisch ein Kreis) durch ein Spielfeld rollt, das durch Blöcke gegeben und begrenzt ist.
Nun soll diese Kugel von den Blöcken abprallen. Das tut sie auch prima, sofern sie auf deren Seitenflächen trifft (da diese rechtwinklig sind ist ja einfach Einfalls- gleich Ausfallswinkel).
Aber wenn so eine Kugel auf ein Eck trifft, sieht es da mit dem Abprallen ganz und gar anders aus - ich frage mich nur schon seit einigen Stunden,
wie das konkret ist bzw. vor allem, wie ich das in Delphi umsetzen kann.
Ich hab das mal illustriert:
http://klammcam.loseoase.de/host/ball_abprallen.png
Das ist ja schon relativ komplex, da es ja auf den Aufprallwinkel (s. 2 und 3) ankommt und auf die Verschiebung zur Kante (s. 1 und 3)..
Die Bewegung der Kugel wird über x- und y-Änderung angegeben, lässt sich also rel. einfach in irgendwas anderes umrechnen, falls nötig.
Also Kugel 1 bewegt sich z.B. mit [0;1] (nicht nach links/rechts, aber 1 nach unten), Kugel 2 mit [-1;-1] (eins nach links, eins nach oben) pro Zeiteinheit.
Viele Grüße
flo