Предварительный анализ

Рассмотрим объект, который движется по экрану. Пусть это будет квадрат со стороной 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

Когда это условие нарушается, квадрат «уехал» за границу окна и нужно закончить выполнение программы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: