Доделать программу, чтобы при нажатии на стрелочки картинка и ее отражение уезжало в разные стороны - 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.
Объяснение кода листинга программы
- Создаются два объекта Picture с именами pic1 и pic2, которые представляют собой изображения, созданные из файла 'ryba.jpg'.
- Выполняется поворот второго изображения (pic2) по вертикальной оси с помощью метода FlipVertical.
- Вычисляется ширина окна (windowwidth) и сохраняется в переменной xc, которая представляет собой значение середины окна по горизонтали.
- Выполняется отрисовка первого изображения (pic1) с помощью метода Draw, где координата X равна xc минус ширина изображения (pic1.Width), а координата Y равна 200.
- Выполняется отрисовка второго изображения (pic2) с помощью метода Draw, где координата X равна xc плюс ширина изображения (pic2.Width), а координата Y равна 200.
- Выполняется блокировка вывода в графическое окно с помощью функции lockdrawing.
- Запускается цикл repeat, который будет выполняться до тех пор, пока ширина изображения (xc-r-pic1.Width) не станет меньше или равно нулю.
- Внутри цикла определяется код нажатой клавиши с помощью функции readkey. Если код нажатой клавиши равен #0, то это считается служебным кодом. Если код нажатой клавиши равен #75, то увеличивается значение переменной r на 2.
- После определения кода нажатой клавиши, выполняется перерисовка окна с помощью функции redraw.
- После выполнения всех действий, связанных с движением изображений, уничтожаются объекты Picture с именами pic1 и pic2 с помощью функций Destroy.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д