Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Kollisions-Abfrage: Ball dreht sich im Kreis

  Alt 16. Mär 2006, 20:20
Hi,
joah, so gehts:
Delphi-Quellcode:
var
  dx, dy: integer;
begin
  // recalculate angle (collision-detection)
  if (spShape.Top >= (ClientHeight - spShape.Height)) or
    (spShape.Top <= 0) then
    fDeg := -fDeg;
  if (spShape.Left >= (ClientWidth - spShape.Width)) or
    (spShape.Left <= 0) then
    fDeg := 180-fDeg;

  // calculate movement
  dx := round( cos(DegToRad(fDeg))*10 );
  dy := round( sin(DegToRad(fDeg))*10 );

  // Move shape in direction of the angle
  spShape.Left := spShape.Left + dx;
  spShape.Top := spShape.Top + dy;
end;
Wobei ich mal behaupte, dass diese Lösung wesentlich einfacher ist, als wenn ich mir hier jetzt ein Vektor-System überlege und programmiere.

Chris
  Mit Zitat antworten Zitat