Иллюстрированный самоучитель по C++ Builder

Мультипликация. Метод базовой точки.

Под мультипликацией обычно понимается движущийся и меняющийся рисунок. В простейшем случае рисунок может только двигаться или только меняться.

Обеспечить перемещение рисунка довольно просто: надо сначала вывести рисунок на экран, затем через некоторое время стереть его и снова вывести этот же рисунок, но уже на некотором расстоянии от его первоначального положения. Подбором времени между выводом и удалением рисунка, а также расстояния между старым и новым положением рисунка (шага перемещения), можно добиться того, что у наблюдателя будет складываться впечатление, что рисунок равномерно движется по экрану.

Метод базовой точки

Следующая простая программа показывает, как можно заставить двигаться изображение, сформированное из графических примитивов. Окно и форма программы приведены на рис. 3.14.

Иллюстрированный самоучитель по C++ Builder › Графика › Мультипликация. Метод базовой точки.
Рис. 3.14. Окно и форма программы

На поверхности формы находится один-единственный компонент Timer, который используется для генерации последовательности событий, функция обработки которых обеспечивает вывод и удаление рисунка. Значок компонента Timer находится на вкладке System (рис. 3.15). Следует обратить внимание, что компонент Timer является невизуальным. Это значит, что во время работы программы компонент в диалоговом окне не отображается. Поэтому компонент Timer можно поместить в любую точку формы. Свойства компонента Timer приведены в табл. 3.7.

Иллюстрированный самоучитель по C++ Builder › Графика › Мультипликация. Метод базовой точки.
Рис. 3.15. Значок компонента Timer

Таблица 3.7. Свойства компонента Timer.

Свойство Определяет
Name Имя компонента. Используется для доступа к свойствам компонента
Interval Период возникновения события OnTimer, Задается в миллисекундах
Enabled Разрешение работы. Разрешает (значение true) или запрещает (значение false) возникновение события OnTimer

Компонент Timer генерирует событие OnTimer. Период возникновения события onTimer измеряется в миллисекундах и определяется значением свойства interval. Следует обратить внимание на свойство Enabled. Оно дает возможность программе "запустить" или "остановить" таймер. Если значение свойства Enabled равно false, то событие onTimer не возникает.

В рассматриваемой программе вывод изображения выполняет функция ship, которая рисует на поверхности формы кораблик. В качестве параметров функция ship получает координаты базовой точки. Базовая точка (X0, Y0) определяет положение графического объекта в целом; от нее отсчитываются координаты графических примитивов, образующих объект (рис. 3.16). Координаты графических примитивов можно отсчитывать от базовой точки не в пикселах, а в относительных единицах. Такой подход позволяет легко выполнить масштабирование изображения.

Иллюстрированный самоучитель по C++ Builder › Графика › Мультипликация. Метод базовой точки.
Рис. 3.16. Базовая точка (х0, у0) определяет положение объекта

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.