Einzelnen Beitrag anzeigen

jojo-sp

Registriert seit: 6. Sep 2006
Ort: Heiligenroth
10 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Mein Pong Problem

  Alt 21. Mai 2014, 16:07
Hallo,

ich rate jetzt mal, aber vermutlich ist die Abfrage mit Ball.Left=Spieler2.Left hier das Problem,

Wenn der Ball den Left Wert nicht genau trifft, kann es sein, dass er einfach weiter fliegt.

Das heisst also, dass du einmal auf <= und auf >= prüfen musst.

Das ganze kann man aber auch mit einem Timer prüfen und beim auftreffen auf den Schläger nur den hinzuaddierten Wert ändern, da z.B. C=A+-B C=A-B ist.

Also in etwa so:

Delphi-Quellcode:
procedure TfrmPong.tBallTimer(Sender: TObject);
begin
  if (Ball.Left <= Spieler1.Left) or (Ball.Left >= Spieler2.Left) then
    FBallSpeed := -FBallSpeed;
   
  Ball.Left:=Ball.Left + FBallSpeed;
end;
Jeder hat einmal klein angefangen; ich zum Beispiel als Baby.
  Mit Zitat antworten Zitat