Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Ballspiel(Pongähnlich) (https://www.delphipraxis.net/177435-ballspiel-pongaehnlich.html)

DeddyH 6. Nov 2013 21:46

AW: Ballspiel(Pongähnlich)
 
Nö, das hast Du eben nicht gemacht. Setz doch übrigens bitte künftig Delphi-Tags, das ist die Schaltfläche mit dem Helm im Beitragseditor, dann wird das auch schön formatiert. Ich mach das hier mal, dann sieht das so aus:
Delphi-Quellcode:
begin
  Shape1.Left:= Shape1.Left+VersatzX;
  Shape1.Top:= Shape1.Top+VersatzY;
  if (0 >= self.Shape1.Left) or
    (self.Shape1.Left >= self.Width - self.Shape1.width) then
    VersatzX := -VersatzX
end;

(* Das hier steht nun frei im Raum, damit kann der Compiler nichts anfangen *)
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;
Richtig wäre gewesen:
Delphi-Quellcode:
procedure TDeinForm.DasWasDemTimerZugewiesenIst(Sender: TObject);
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;

karrax 7. Nov 2013 16:33

AW: Ballspiel(Pongähnlich)
 
danke für alles :)
habe es ohne den befehl hinbekommen


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz