Рассмотрим объект, который движется по экрану. Пусть это будет квадрат со стороной 20 пикселей. При движении координаты всех его точек будут меняться. Чтобы строить квадрат в любом месте экрана, мы выберем его левый верхний угол в качестве базовой (опорной) точки и обозначим ее координаты за (x,y). Координаты противоположного угла будут равны
(x+20,y+20).
Теперь надо придумать способ изобразить движение так, чтобы рисунок не мигал, и про-
грамма работала одинаково на всех компьютерах независимо от быстродействия. Для этого применяют такой алгоритм:
1) рисуем фигуру на экране;
2) делаем небольшую задержку (обычно 10-20 мс);
3) стираем фигуру;
4) меняем ее координаты;
5) переходим к шагу 1.
Эти действия повторяются до тех пор, пока не будет получена команда «закончить движение» (в нашем случае – нажата клавиша Esc или объект вышел за правую границу экрана).
Пусть движение прямоугольника происходит на синем фоне. Тогда самый быстрый и простой способ стереть его – это нарисовать его же, но синим цветом. Поэтому удобно написать процедуру, параметрами которой являются координаты x и y, а также цвет color. Когда мы используем синий цвет, фигура стирается с экрана.
|
|
Все действия, которые входят в алгоритм, надо выполнить много раз, поэтому применим
цикл. Кроме того, мы заранее не знаем, сколько раз должен выполниться этот цикл, поэтому применяем цикл while (цикл с условием).
Условие окончания цикла – выход фигуры за границы экрана или нажатие на клавишу
Esc. Мы будем использовать окно размером 400 на 400 пикселей. При этом координата x может меняться от 0 до 399, поэтому нужное нам условие продолжения цикла выглядит так:
x + 20 < 400
Когда это условие нарушается, квадрат «уехал» за границу окна и нужно закончить выполнение программы.