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