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