Доделать программу, чтобы при нажатии на стрелочки картинка и ее отражение уезжало в разные стороны - Pascal ABC

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

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

Надо что-бы при нажатии на стрелочки на клавиатуре картинка и ее отражение уезжало в разные стороны.

Решение задачи: «Доделать программу, чтобы при нажатии на стрелочки картинка и ее отражение уезжало в разные стороны»

textual
Листинг программы
pic1:=Picture.Create('ryba.jpg'); //создаем 1 рисунок
pic2:=Picture.Create('ryba.jpg'); //создаем 2 рисунок
pic2.FlipVertical; //поворачиваем 2 по вертикальной оси
........................
//рисуем всякие линии
xc:=windowwidth div 2; //середина окна по горизонтали
....................................
pic1.Draw(xc-r-pic1.Width,200);//выводим 1 слева от центра
pic2.Draw(xc+r,200);//выводим 2 справа от центра
lockdrawing;//Блокируем вывод в графическое окно (см. Справку)
repeat
c:=readkey;//определяем код нажатой клавиши
if c=#0 then c:=readkey; //если 0, то служебная
if c=#75 then r:=r+2;//если 75, то по идее стрелка  влево, но в простом АВС это почему-то вправо
                     //увеличим расстояние на 2
pic1.Draw(xc-r-pic1.Width,200); //нарисуем на новом месте 1
pic2.Draw(xc+r,200);//и 2
redraw; //перерисуем окно
until xc-r-pic1.Width<=0;//конец если 1 доехал долевого края
pic1.Destroy; //уничтожим рисунки
pic2.destroy;
end.

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

  1. Создаются два объекта Picture с именами pic1 и pic2, которые представляют собой изображения, созданные из файла 'ryba.jpg'.
  2. Выполняется поворот второго изображения (pic2) по вертикальной оси с помощью метода FlipVertical.
  3. Вычисляется ширина окна (windowwidth) и сохраняется в переменной xc, которая представляет собой значение середины окна по горизонтали.
  4. Выполняется отрисовка первого изображения (pic1) с помощью метода Draw, где координата X равна xc минус ширина изображения (pic1.Width), а координата Y равна 200.
  5. Выполняется отрисовка второго изображения (pic2) с помощью метода Draw, где координата X равна xc плюс ширина изображения (pic2.Width), а координата Y равна 200.
  6. Выполняется блокировка вывода в графическое окно с помощью функции lockdrawing.
  7. Запускается цикл repeat, который будет выполняться до тех пор, пока ширина изображения (xc-r-pic1.Width) не станет меньше или равно нулю.
  8. Внутри цикла определяется код нажатой клавиши с помощью функции readkey. Если код нажатой клавиши равен #0, то это считается служебным кодом. Если код нажатой клавиши равен #75, то увеличивается значение переменной r на 2.
  9. После определения кода нажатой клавиши, выполняется перерисовка окна с помощью функции redraw.
  10. После выполнения всех действий, связанных с движением изображений, уничтожаются объекты Picture с именами pic1 и pic2 с помощью функций Destroy.

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


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

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

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