Thema: Delphi Geschwindigkeit umkehren

Einzelnen Beitrag anzeigen

DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#1

Geschwindigkeit umkehren

  Alt 10. Nov 2012, 23:21
Guten Abend alle miteinander.
Momentan arbeite ich an einem kleinen Spiel, in dem es darum geht, Kreise zu vernichten. Diese Kreise werden mit einem timer erzeugt (array of TKreis).
Sie haben eine grundgeschwindigkeit von speedx=5 und speedy=5. Es gibt Objectives und Weapons, unter Objectives findet man unter anderem eine Kiste. Ich bewege sie in dem ich ihr einfach die mausposition zuweise. Das Problem ist das ich nicht weiß wie ich eine gute Kollision hinbekomme. Kollidieren die Kiste und ein kreis wird der kreis momentan in die selbe richtung aus der er kam zurückgeschleudert. ich will aber einfallswinkel gleich ausfallswinkel. Was ich bisher ausprobiert habe (ohne Erfolg):

Delphi-Quellcode:
if InterSectRect(StubRect,Kreis[b].BoundsRect,Image3.BoundsRect) and Image3.Visible then
    begin
      Kreis[b].speedx := -(Kreis[b].speedx);
      Kreis[b].speedy := -(Kreis[b].speedy);
      end;
    end;
und:


Delphi-Quellcode:
if InterSectRect(StubRect,Kreis[b].BoundsRect,Image3.BoundsRect) and Image3.Visible then
    begin
      Kreis[b].speedx := -Abs(Kreis[b].speedx);
      Kreis[b].speedy := -Abs(Kreis[b].speedy);
      end;
  Mit Zitat antworten Zitat