Einzelnen Beitrag anzeigen

Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#3

Re: "Ruckeln" bei bewegten Shapes abstellen

  Alt 20. Okt 2009, 14:32
Ok, danke.

Delphi-Quellcode:
procedure TPong.BewegungstimerTimer(Sender: TObject);
begin
     if Ball.Left>=Pong.Width then vLR:=2;
     if Ball.Left<=0 then vLR:=1;
     if vLR=1 then
        Ball.left:=Ball.Left+5 else Ball.Left:=Ball.Left-5;
     if vOU=1 then Ball.Top:=Ball.Top+2 else Ball.Top:=Ball.Top-2;
     if Ball.Top=680 then
        begin
             if Paddel.left<Ball.left+10 then
                if Paddel.Left+150>Ball.Left+10 then
                  vOU:=2;
        end;
     if Ball.Top=30 then
        begin
             if Gegner.left<Ball.left+10 then
                if Gegner.Left+150>Ball.Left+10 then
                  vOU:=1;
        end;
end;
Das ist jetzt der Code, der für den Ball zuständig ist.
Ist der Timer...


Delphi-Quellcode:
procedure TPong.ReaktionstimerTimer(Sender: TObject);
begin
     if Ball.Left+10-75<Gegner.Left then Gegner.Left:=Gegner.Left-5;
     if Ball.Left+10-75>Gegner.Left then Gegner.Left:=Gegner.Left+5
end;
Das ist der Timer, der das automatische Paddel angleicht.

____________________________

Im Weg liegen die nicht, ist auch bei einer Anordnug wie auf dem kleinen Bildchen.

Ball auf Formularhöhe/2, die beiden Paddel unten und oben...
Berechnungen sind oben.

Geht bestimmt auch viel einfacher, aber für den Anfang wollt ich das so lassen...

LG



____________________________
Zum Echtzeitsystem: Das ist mir schon klar, aber das Verhältnis stimmt. Ob 15 dann eigentlicht 18 oder 10 ist, ist eher nebensächlich...

Edit:

Ich hab gerade herausgefunden, dass es verstärkt ruckelt, wenn das Paddel bewegt wird...
Also bei MouseMove
Miniaturansicht angehängter Grafiken
pong_361.jpg  
  Mit Zitat antworten Zitat