Ich hab wiedermal Probleme mit meinem Pong
Und zwar hab ich die KI für mein Pong jetzt angepasst, sodass sie auf beide Bälle reagieren kann, wobei sie nun immer auf den Ball reagieren soll, der näher dran ist. Folgender Code:
Delphi-Quellcode:
case KI_LVL of
1: if (Ball.Top) or (Ball2.Top) <= KI_LVL1 then // wenn einer der Beiden Bälle die vordefinierter Höhe erreicht hat
begin
if Ball.Top < Ball2.Top then begin // der Ball ist höher als der Ball2, dann wird auf Ball reagiert
if Ball.Left + Ball.Width / 2 <= Schlaeger2.Left + Schlaeger2.Width / 2 then // wenn mitte vom Ball links von der Mitte vom Schläger ist
begin
Schlaeger2.Left := Schlaeger2.Left - 15; // Schläger wird bewegt
end;
if Ball.Left + Ball.Width / 2 >= Schlaeger2.Left + Schlaeger2.Width / 2 then // Wenn die Mitte vom Ball rechts von der Mitte vom Schläger ist
begin
Schlaeger2.Left := Schlaeger2.Left + 15; // schläger wird bewegt
end;
end else begin // wenn Ball nicht höher ist als Ball2
if Ball2.Left + Ball2.Width / 2 <= Schlaeger2.Left + Schlaeger2.Width / 2 then // das gleiche oben mit Ball2
begin
Schlaeger2.Left := Schlaeger2.Left - 15; // schläger wird bewegt
end;
if Ball2.Left + Ball2.Width / 2 >= Schlaeger2.Left + Schlaeger2.Width / 2 then // s.o.
begin
Schlaeger2.Left := Schlaeger2.Left + 15; // schläger wird bewegt
end;
end;
end;
Nur irgendwie bewegt sich der Schlaeger2 nicht mehr
Ich hab irgendwie das Gefühl, dass der Fehler in der zweiten Zeile liegt, aber wo genau?
oder findet jemand einen anderen Fehler?
Zur kleinen Erläuterung dazu:
Der Code hat vorher ja wunderbar funktioniert, als ich halt noch keine Abfragen mit Ball2 drin hatte. Es muss also im Grunde irgendwie daran liegen...
//edit: und sry für den Titel, aber ich wusste nicht, wie ich das Problem so kurz zusammenfassen konnte