Ich bin grad dabei einen kleinen Pong-Klon zu schreiben. Dazu hab ich eine Kollisionsabfrage geschrieben. Diese funktioniert auch soweit, nur die Handlung, wenn der Ball nicht getroffen wurde, wird nicht ausgeführt... Hier einmal der ganze Code mit Kollisionsabfrage:
Delphi-Quellcode:
if Ball.Top >= Schlaeger1.Top-25 then // Kollision mit Schlaeger 1
begin
if (Ball.Left < Schlaeger1.Left+Schlaeger1.Width) and (Ball.Left > Schlaeger1.Left) then
begin
Richtung := not Richtung;
inc(y_move);
end else
begin // Ball nicht gefangen
if Ball.Top = Schlaeger1.Top then begin
Timer1.Enabled := false; // der Ball wird gestoppt
ShowMessage('Spieler2 hat einen Punkt!');
Ball.Top := 208; // Ball wird auf Startposition zurückgesetzt
Ball.Left := 312;
end;
end;
end;
Wo ist der Fehler darin?
Ich find ihn einfach nicht