Движущиеся картинки - Pascal

Узнай цену своей работы

Формулировка задачи:

1. получите на экране какую- либо фигуру и «оживите» ее. Например, пусть цыпленок летает; грузовик - едет, телефонный диск крутится и т.д. 2. Получите на экране изображение какой-либо фигуры и обеспечьте ее перемещение. Выбор направления и расстояния, на которое фигура должна переместиться выполняется с помощью датчика случайных чисел.

Решение задачи: «Движущиеся картинки»

textual
Листинг программы
program kv;
uses
    crt, graph;
var
   x, y, dx, dy, w, h, driver, mode: integer;
begin
     initgraph(driver, mode, 'G:/BP/BGI');
     if graphresult<>0 then begin
        writeln('none');
        halt
     end;
     dx:=1;
     dy:=0;
     w:=100;
     h:=10;
repeat
      setfillstyle(1, black);
      bar(x, y, x+w, y+h);
      x:=x+dx;
      y:=y+dy;
      setfillstyle(1, red);
      bar(x, y, x+w, y+h);
      delay(100);
      if (x+w>=getmaxx)and(y<=0) then
      begin
           dx:=0;
           dy:=1;
      end
      else
      if (y+h>=getmaxy)and(x+w>=getmaxx) then
      begin
           dx:=-1;
           dy:=0;
      end
      else
      if (x<=0)and(y+h>=getmaxy) then
      begin
           dx:=0;
           dy:=-1;
      end
      else
      if (y<=0)and(x<=0) then
      begin
           dx:=1;
           dy:=0;
      end;
until keypressed;
closegraph;
end.

Объяснение кода листинга программы

  1. В начале программы подключаются необходимые библиотеки crt и graph.
  2. Инициализируется графический драйвер и указывается путь к каталогу графического файла. Если произошла ошибка при инициализации, выводится сообщение none и программа завершается.
  3. Переменные dx, dy, w и h инициализируются значениями 1, 0, 100 и 10 соответственно.
  4. Запускается цикл повторения, который выполняется до нажатия клавиши.
  5. Внутри цикла устанавливается стиль заполнения (1 - черный, 2 - красный) и рисуется прямоугольник (бар) с координатами (x, y) и размерами (x+w, y+h).
  6. Координаты (x, y) увеличиваются на величину dx и dy. Если (x+w) больше максимального значения x или (y+h) больше максимального значения y, то меняется направление движения (dx и dy меняются местами).
  7. Если (x+w) меньше или равно 0 и (y+h) меньше или равно 0, то меняется направление движения (dx и dy меняются местами).
  8. Если (x<=0) и (y+h>=getmaxy), или (x<=0) и (y<=0), или (x+w>=getmaxx) и (y<=0), или (x+w>=getmaxx) и (y>=getmaxy), то меняется направление движения (dx и dy меняются местами).
  9. После завершения цикла, закрывается графический драйвер.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы