Рисование движущегося массива пикселов с остановкой на границах экрана- Pascal(Паскаль)

 x1:= Gx div 2;  y1:= Gy div 2;
for i:=1 to 300 do begin
  X[i]:= x1+ i mod 10;   { массив осколков }
   Y[i]:= y1+ i div 10;
  PutPixel(X[i], Y[i], 15);
   VX[i]:= -10 + random(21);
  VY[i]:= -10 + random(21) 
end;
SetColor(5);     
 Rectangle(x1, y1, x1+9, y1+30);  { бомба }
  ch:= ReadKey; { задержка до нажатия клавиши }
for i:=1 to 100 do begin
  sound(random(80));  
delay(1);  
nosound  { звук взрыва } 
end;
SetColor(0);    
Rectangle(x1, y1, x1+9, y1+30); { взрыв бомбы }
 
Repeat
 for i:=1 to 300 do begin
if(X[i]+VX[i] > 0) and (X[i]+VX[i] < Gx) and
(Y[i]+VY[i] > 0) and (Y[i]+VY[i] < Gy)
             
   then begin      { если пиксел не перелетит за край экрана }
   PutPixel(X[i],Y[i],0);   X[i]:= X[i]+VX[i];  Y[i]:= Y[i]+VY[i];
   PutPixel(X[i], Y[i], 14)  end     { движение осколков }
    else begin VX[i]:= 0;  VY[i]:= 0;{ если пиксел долетел до края экрана }
    sound(200); delay(2); nosound end
 end   
Until Keypressed;

Leave a Comment

25 + = 28