Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 18:18
Entweder Du tolerierst das oder Du lässt den Ball noch einen "Zwischenschritt" machen. In dem Fall versetzt Du ihn nicht um VersatzX, sondern um -Shape.Left bzw. die Differenz zwischen rechter Shapeseite und Clientbreite des Formulars.

[edit] Das war wahrscheinlich jetzt nicht so richtig verständlich, daher ein Beispiel mit einer lokalen Variablen (wieder nur die X-Achse, etwas Arbeit sollst Du ja noch haben *g*), das macht es leichter:
Delphi-Quellcode:
var
  X: integer;
begin
  X := VersatzX;
  if X < 0 then //Ball bewegt sich nach links
    begin
      if Shape1.Left < -X then
        X := -Shape1.Left;
    end
  else //Ball bewegt sich nach rechts
    begin
      if ClientWidth < (Shape1.Left + Shape1.Width + X) then
        X := ClientWidth - (Shape1.Left + Shape1.Width);
    end;
  Shape1.Left:= Shape1.Left + X;
  (* Hier dann noch dasselbe für die Y-Achse, die Kollisionskontrolle und ggf. das Umdrehen des Vorzeichens *)  
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 6. Nov 2013 um 18:42 Uhr)
  Mit Zitat antworten Zitat