Нарисовать дом и заставить его двигаться в произвольном направлении - Turbo Pascal

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

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

Привет всем. Помогите разобраться с движением объектов в турбо паскаль. Необходимо нарисовать дом и заставить его двигаться в произвольном направлении. Дом нарисовал, но перемещать его не получается. Заранее благодарю! Собственно код:

Решение задачи: «Нарисовать дом и заставить его двигаться в произвольном направлении»

textual
Листинг программы
program L10;
uses crt,graph;
var gd,gm:integer;
    x,y,dx,dy:integer;
    ptr:pointer;
    size:integer;
begin
gd := detect;
initgraph(gd,gm,'c:\tp7\BGI');
line(100,100,100,200);
line(100,200,200,200);
line(200,200,200,100);
line(100,100,200,100);
line(100,100,150,50);
line(150,50,200,100);
size:=imagesize(100,50,200,200);
getmem(ptr,size);
getimage(100,50,200,200,ptr^);
putimage(100,50,ptr^,xorput);
x:=10;
y:=10;
dx:=10;dy:=10;
repeat
x:=x+dx;
y:=y+dy;
putimage(X,Y,ptr^,xorput);
delay(100);
putimage(X,Y,ptr^,xorput);
if (x>520) or (x<10)then dx:=-dx
else
if(y<10) or (y>310) then dy:=-dy;
until keypressed;
end.

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

  1. Создание программы L10 с использованием Turbo Pascal.
  2. Использование библиотек crt и graph.
  3. Инициализация графического дисплея с помощью функции initgraph.
  4. Создание дома с помощью функции line.
  5. Получение размера изображения с помощью функции imagesize.
  6. Выделение памяти с помощью функции getmem.
  7. Получение изображения с помощью функции getimage.
  8. Отображение изображения на графическом дисплее с помощью функции putimage.
  9. Установка начальных координат для движения дома с помощью переменных x, y, dx, dy.
  10. Цикл повторения движения дома:
    • Обновление координат x и y на основе переменных dx и dy.
    • Отображение обновленного изображения на графическом дисплее с помощью функции putimage.
    • Задержка отображения изображения на экране с помощью функции delay.
  11. Проверка условий для изменения направления движения дома:
    • Если x больше 520 или x меньше 10, то значение dx меняется на -dx.
    • Если y меньше 10 или y больше 310, то значение dy меняется на -dy.
  12. Ожидание нажатия клавиши с помощью функции keypressed.

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


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

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

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