Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Delphi / Kylix / Turbo Pascal » Pingpong-Spiel Hilfe benötigt

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.01.2007, 21:32 Uhr
~erpel
Gast


Es ist zum Verrückt werden. Mal ging das Programm, mal nicht. Jetzt geht es garnicht mehr und meine random-Fkt. scheint den Geist aufgegeben zu haben, da der Anstieg immer gleich ist. Also das Problem ist, dass die wand den ball nicht reflektiert. Hmm, hoffe ihr könnt mir helfen.


Code:
program pingpong;
uses crt, graph;

var  graphmode, graphdriver : integer;
     anstieg, richtung      : integer;
     x,y,yb,i,punkte        : integer;
     taste                  : char;

begin
     clrscr;
     graphdriver := detect;     initgraph(graphdriver, graphmode, 'C:\TP\BGI');
     cleardevice;

     delay(2000);

     setcolor(blue);    settextstyle(3,0,4);
     outtextxy(200,0,'PING - PONG');

     setcolor(white);      setlinestyle(0,0,1);
     line(100,80,401,80);  line(100,80,100,282);        line(100,282,401,282);




     setviewport(101,81,401,281,clipon);

     x:=50;
     yb:=0;
     richtung:=1;
     punkte:=0;

     randomize;
     repeat
     anstieg:=random(5)-2;
     until anstieg <> 0;
     y:=random(79);

     setcolor(lightred);              circle(x,y,3);
     setfillstyle(1,lightred);        floodfill(x,y,lightred);
     setfillstyle(1,lightred);        bar(297,yb,300,yb+20);
     repeat

          setfillstyle(1,lightred);        bar(297,yb,300,yb+20);

          if (y = 196) or (y = 4) or (y = 5) then
          begin
               anstieg := anstieg * -1;
          end;

          if (x = 4) then
          begin
               richtung := richtung * -1;
          end;

          if ((x = 294) and ((y > yb) and (y < (yb + 20)))) then
          begin
               richtung := richtung * -1;
               inc(punkte);
          end;

          setcolor(black);         circle(x,y,3);
          setfillstyle(1,black);   floodfill(x,y,black);

          if richtung = 1 then
          begin
               case anstieg of
               1   : begin   x:=x+2;  y:=y-1; end;
               2   : begin   x:=x+2;  y:=y-2; end;
               -1  : begin   x:=x+2;  y:=y-1; end;
               -2  : begin   x:=x+2;  y:=y-2; end;
               end;
          end;

          if richtung = -1 then
          begin
              case anstieg of
               1   : begin   x:=x-2;  y:=y-1; end;
               2   : begin   x:=x-2;  y:=y-2; end;
               -1  : begin   x:=x-2;  y:=y-1; end;
               -2  : begin   x:=x-2;  y:=y-2; end;
               end;
          end;

          setcolor(lightred);              circle(x,y,3);
          setfillstyle(1,lightred);        floodfill(x,y,lightred);

          if keypressed = true then
          begin
               setfillstyle(1,black);        bar(297,yb,300,yb+20);
               taste:=readkey;
               if taste = #72 then
               begin
                    yb:=yb-5;
                    setfillstyle(1,lightred);        bar(297,yb,300,yb+20);
               end;
               if taste = #80 then
               begin
                    yb:=yb+5;
                    setfillstyle(1,lightred);        bar(297,yb,300,yb+20);
               end;
          end;

          delay(15);

     until x = 302 ;
     closegraph;
end.

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Delphi / Kylix / Turbo Pascal ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: