Forum: Object-Pascal / Delphi-Language
Delphi
by jfheins,
11. Feb 2011
Das wird ihm auch nicht weiterhelfen ^^
Das mit den Vektoren hatte ich nur ins Spiel gebracht, weil jemand meinte:
Um zu zeigen: Man kann auf den Tangens verzichten, auch wenn die Geraden schräg im Raum liegen. Die Formel und den Normalenvektor kannst du daher wieder vergessen - du hast ja anscheinend nur vertikale/horizontale Flächen ;)
Zu dem Problem: Du hast ja bereits so eine Art...
Forum: Object-Pascal / Delphi-Language
Delphi
by jfheins,
10. Feb 2011
Du würdest dir mit Vektoren wesentlich einfacher tun.
Genau dafür sind die nämlich praktisch - anstatt des Winkels speicherst du ein deltaX und ein deltaY. Und jedesmal, wenn sich der Ball bewegen soll, veränderst du seine X Postition um deltaX udn seine Y Position um deltaY.
Die Prozedur sieht dann so aus:procedure TFormMain.MoveByAngle(pWinkel: Integer);
begin
SBall.Top := SBall.Top...
Forum: Object-Pascal / Delphi-Language
Delphi
by jfheins,
10. Feb 2011
Mit ein bisschen Vektorzeugs geht das immer (und nicht nur an horizontalen/vertikalen Flächen) - dann braucht man den Tangens gar nicht mehr :-)
Formel: v_neu = v_alt - 2 * (v_alt*n)*n
n ist der Normalenvektor der Fläche, v_neu und v_alt die vorher/nachher Geschwindigkeitsvektoren.
Naja, wenn der Ball rechts rausfliegt, wird der Ball (1) zurückgesetzt an den Rand und (2) die x...