Gra w Pascalu - problem z przeszkodami.

2011-10-09 15:50
0

Witam!
Zacząłem pisać grę w Dev-Pascalu w której poruszamy się prostokątem i zestrzeliwujemy przeszkody. Zrobiłem planszę, ograniczyłem zasób ruchów prostokąta( nie wychodzi po za planszę), strzela(1.niestety tylko z środka, początkowo chciałem aby strzelał z jednego i drugiego końca, lecz nie potrafię tego zrobić; 2.gdy strzelam, strzał rusza się razem z prostokątem - jeśli wystrzelę pocisk w danym miejscu i zacznę poruszać się w prawo, pocisk robi to analogicznie), i moim mankamentem są przeszkody, które mają być kółkami.. Gdy próbowałem je zrobić, kółka nie spadały w dół, tylko mnożyły się obok siebie. Czy jest ktoś w stanie napisać 'te przeszkody'? Oto mój dotychczasowy kod :

uses graph, crt,wincrt;
var karta,tryb : smallint;
    x1,y1,i,x2,y2,x11,y11,x22,y22,t,p1,p2,p3,x111,x222,p11,p22,lx1,ly1,lx2,ly2,l2x1,l2y1,l2x2,l2y2,l3x1,l3y1,l3x2,l3y2,xo,yo,ro,x,k,w: integer;
    q : char;

begin
 karta:=detect;
 initgraph(karta,tryb, '');

 t:=0;
 k:=0;

 lx1:=100;
 ly1:=500;
 lx2:=800;
 ly2:=500;
 l2x1:=100;
 l2y1:=500;
 l2x2:=100;
 l2y2:=0;
 l3x1:=800;
 l3y1:=500;
 l3x2:=800;
 l3y2:=0;

 setcolor(white);
 line(lx1,ly1,lx2,ly2);
 line(l2x1,l2y1,l2x2,l2y2);
 line(l3x1,l3y1,l3x2,l3y2);

 i:=1;        {do petli zeby się wykonywala caly czas}
 x1:=400;
 x2:=500;
 y1:=450;          {prostokąt}
 y2:=470;
 setfillstyle(1,blue);
 bar(400,450,500,470);

 x11:=450;
 x22:=450;
 y11:=449;       {strzal}
 y22:=419;

 p1:=450;             {zmienna pomocnicza do strzal}
 p2:=501;
 p3:=430;

 repeat

   if keypressed then
     begin
       q:=readkey;
       if q=#77 then {prawo}
         begin
           setfillstyle(1, black);
           bar(x1,y1,x2,y2);
           x1:=x1+14;
           x2:=x2+14;
           setfillstyle(1,blue);
           bar(x1,y1,x2,y2);
         end;
       if q=#75 then        {lewo}
         begin
           setfillstyle(1,black);
           bar(x1,y1,x2,y2);
           x1:=x1-14;
           x2:=x2-14;
           setfillstyle(1,blue);
           bar(x1,y1,x2,y2);
         end;

     if x1<=101 then
        begin
         setfillstyle(1, black);
         bar(x1,y1,x2,y2);
         x1:=101;                                  {ograniczenie ruchów prostokąta}
         x2:=200;
         y1:=450;
         y2:=470;
         setcolor(white);
         line(100,450,100,470);
         setfillstyle(1, blue);
         bar(x1,y1,x2,y2);
         x1:=x1+1;
         x2:=x2+1;
         y1:=450;
         y2:=470;

    end;

     if x2>=799 then
       begin
        setfillstyle(1, black);
        bar(x1,y1,x2,y2);
         x1:=700;
         x2:=799;
         y1:=450;
         y2:=470;                                    {ograniczenie ruchów prostokąta}
        setcolor(white);
         line(800,470,800,450);
        setfillstyle(1, blue);
        bar(x1,y1,x2,y2);
         x1:=x1-1;
         x2:=x2-1;
         y1:=450;
         y2:=470;
        end;

       if (q=#75) then
         begin                    {strzalki}
           p1:=p1-10;
         end;
       if (q=#77) then
         begin
           p1:=p1+10;
         end;

       if (q=#32) and (t=0)  then
           begin                                      {pocisk}
               x11:=p1;
             x22:=p1;
             t:=1;
           end;

      end;

     if (t=1) then
       begin
         delay(1);
         setcolor(black);                                           
         line(x11,y11,x22,y22);
         x11:=(x1+x2) div 2;
         x22:=(x1+x2) div 2;
         y11:=y11-1;
         y22:=y22-1;
         setcolor(blue);
         line(x11,y11,x22,y22);

        end;

         if y11=0 then
         begin
           t:=0;
           y11:=449;
           y22:=419;
         end;

    until i=2;
 readkey;
 closegraph;
end.
edytowany 3x, ostatnio: madmike, 2011-10-09 15:52

Pozostało 580 znaków

2011-10-09 16:11
0
x1,y1,i,x2,y2,x11,y11,x22,y22,t,p1,p2,p3,x111,x222,p11,p22,lx1,ly1,lx2,ly2,l2x1,l2y1,l2x2,l2y2,l3x1,l3y1,l3x2,l3y2,xo,yo,ro,x,k,w: integer;

Dżizas! Co to ma być?!


Pozostało 580 znaków

2011-10-09 16:17
0

Po prostu niektórych zmiennych zapomniałem usunąć..

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0