Einzelnen Beitrag anzeigen

KleinAmann

Registriert seit: 29. Apr 2008
Ort: Bad Waldsee
32 Beiträge
 
#1

Break-Game, Kugel auf Rechtecklanden lassen ...

  Alt 26. Jun 2008, 17:43
Hey Leutz,

Ich habe früher viel C++ Programmiert bin aber vor einiger Zeit auf Delphi umgestiegen.

Nun bin ich dabei ein naja einfaches Game zu schreiben, mein Problem liegtnach
if (bar.Top = Kugel.Top)
then if

vermute ich Code.

Und zwar soll, wenn der Ball auf das Rechteck fliegt wieder zurück kehren.
Dummerweiße erkennt mein Programm nicht dass der Ball die gleiche .left wie mein
Balken(Rechteck) hat. Dass rechteck hat eine Width von 25 darum auch immer +1/-1
da er ja , egal auf welcher Fläche er landet es Merken soll.

Ich hoffe ihr habts kapiert ...

Hier der Code :

Hey Leutz,

Ich habe früher viel C++ Programmiert bin aber vor einiger Zeit auf Delphi umgestiegen.

Nun bin ich dabei ein naja einfaches Game zu schreiben, mein Problem liegtnach
if (bar.Top = Kugel.Top)
then if

vermute ich Code.

Und zwar soll, wenn der Ball auf das Rechteck fliegt wieder zurück kehren.
Dummerweiße erkennt mein Programm nicht dass der Ball die gleiche .left wie mein
Balken(Rechteck) hat. Dass rechteck hat eine Width von 25 darum auch immer +1/-1
da er ja , egal auf welcher Fläche er landet es Merken soll.

Ich hoffe ihr habts kapiert ...

Hier der Code :

Delphi-Quellcode:
var
  Form1: TForm1;
  counter : integer;
  xK : integer;
  yK: integer;
  i : integer;

implementation

{$R *.dfm}


procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
yy : string;
xx : string;
begin
yy := IntToStr(Y);
xx := IntToStr(X);
aY.Caption := yy;
aX.Caption := xx;

if Y > 350 then if Y < 426 then bar.Top := Y;
if X < 501 then bar.Left := X; // Bar der Maus nachlaufen lassen!
end;



procedure TForm1.FormActivate(Sender: TObject);
begin
counter := 1;
xK := 300;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Kugel.Left := xK;
if (i = 1) then begin counter := counter +1;
                      yK := counter; end else
if (i = 2) then begin counter := counter -1;
                      yK := counter; end;

if (bar.Top = Kugel.Top)
  then if
   (bar.Left =
   (Kugel.Left) or (Kugel.Left +1) or (Kugel.Left -1) or
   (Kugel.Left +2) or (Kugel.Left -2) or (Kugel.Left +3) or (Kugel.Left -3) or
   (Kugel.Left +4) or (Kugel.Left -4) or (Kugel.Left +5) or (Kugel.Left -5) or
   (Kugel.Left +6) or (Kugel.Left -6) or (Kugel.Left +7) or (Kugel.Left -7) or
   (Kugel.Left +8) or (Kugel.Left -8) or (Kugel.Left +9) or (Kugel.Left -9) or
   (Kugel.Left +10) or (Kugel.Left -10) or (Kugel.Left +11) or (Kugel.Left -11) or
   (Kugel.Left +12) or (Kugel.Left -12) or (Kugel.Left +13) or (Kugel.Left -13) or
   (Kugel.Left +14) or (Kugel.Left -14) or (Kugel.Left +15) or (Kugel.Left -15) or
   (Kugel.Left +16) or (Kugel.Left -16) or (Kugel.Left +17) or (Kugel.Left -17) or
   (Kugel.Left +18) or (Kugel.Left -18) or (Kugel.Left +19) or (Kugel.Left -19) or
   (Kugel.Left +20) or (Kugel.Left -20) or (Kugel.Left +21) or (Kugel.Left -21) or
   (Kugel.Left +22) or (Kugel.Left -22) or (Kugel.Left +23) or (Kugel.Left -23) or
   (Kugel.Left +24) or (Kugel.Left -24) or (Kugel.Left +25) or (Kugel.Left -25))
    then begin
    i := 2; end;
if Kugel.Top < 410 then
begin
  Kugel.Top := Kugel.Top + yK;
end else begin
  yK := 160; xK := 372; Panel1.Visible := true;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i := 1
end;

end.
Mfg KleinAmann
Dominik A.
  Mit Zitat antworten Zitat