Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Простейшие приемы построения анимации

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.6.2024

Простейшие приемы построения анимации

Владимир Коробицын

Компонент таймер и его свойства

Мультимедийное приложение будет неполным без каких-либо элементов анимации. Для того чтобы заставить двигаться, например, автомобиль воспользуемся компонентом типа таймер.

Таймер имеет совсем небольшой набор свойств по сравнению с другими компонентами C++ Builder, но обладает ничем неограниченными способностями ловко управлять работой приложения во временном пространстве с точностью до одной миллисекунды. Что бы поместить таймер на стартовую форму Form1, нужно кликнуть мышью в главном окне во вкладке System по кнопке Timer (Таймер) с изображением циферблата часов со стрелками, а затем по самой форме в любой ее рабочей части. Этот компонент во время работы приложения является невидимым. А вот во время построения проекта приложения таймер виден на форме, и поэтому программисту удобно в любое время быстро обратиться к его свойствам или к функции обработки Timer1Timer события OnTimer (Таймер включен). На форме можно установить столько таймеров, сколько вам необходимо. Важнейшим свойством компонента таймер является Interval (Интервал), значение которого по умолчанию составляет 1000 миллисекунд (одна секунда). Свойство Enabled (Разрешение работать) включает или же выключает таймер в зависимости от его значения (true или false). Значение этих свойств можно задать как до запуска проекта, так и изменять их программным способом во время работы проекта. Событие Timer1Timer наступает по истечении реального времени эквивалентного значению свойства Interval для таймера. До тех пор пока таймер не выключен, это событие будет наступать вновь и вновь.

Откройте новый проект. На форме расположите таймер Timer1, для его свойства Enabled установите значение false, а для свойства Interval значение 10 миллисекунд, что будет соответствовать одной сотой доле секунды.

В нашем случае кроме компонента таймер Timer понадобится компонент образ Image. Установите на форму компонент образ Image1. Подберите небольшой по размерам рисунок с изображением автомобиля и поместите его в образ Image1, используя свойство Picture. Свойству AutoSize придайте значение true. Установите для свойства Left значение в 15 единиц, для того чтобы автомобиль мог стартовать из левой части формы. Размеры формы измените с помощью мыши так, чтобы ее ширина была чуть меньше общей ширины экрана, а ее высота примерно в два раза превышала высоту автомобиля.

В функцию обработки Image1Click поместите строку программного кода:

Timer1->Enabled = true; //включить первый таймер

Таким образом, при одиночном клике мышью по автомобилю, будет запущен таймер, и через каждые десять миллисекунд будет выполняться инструкция, которую вы должны разместить в функции обработки Timer1Timer события OnTimer – таймер включен:

//перемещение автомобиля вправо на 30 единиц

Image1->Left = Image1->Left + 30;

Где, Left (левый край) это свойство компонента Image1. Значение этого свойства будет очень быстро нарастать. В результате получим эффект перемещения автомобиля по горизонтали. Запустите проект приложения на выполнение. Кликните мышью на автомобиль, и он устремится в бесконечность. Закройте приложение. Если вы хотите снизить скорость автомобиля, то приращение его перемещения в 30 единиц уменьшите до 15.

Заставим автомобиль в любое время возвращаться по велению пользователя на стартовую позицию по одиночному щелчку на форме. В функцию обработки FormClick запишите строку:

Image1->Left = 15; //возврат на стартовую позицию

Запустите проект приложения и проверьте эту инструкцию в работе, кликнув мышью вначале по автомобилю, а затем на форме.

Остановим автомобиль на середине формы. Для этой цели установите на форму второй таймер Timer2. Его свойству Enabled придайте значение false, а свойству Interval значение 145 (возможно это значение придется подобрать из-за другого разрешения вашего экрана по горизонтали). В функцию обработки Image1Click допишите строку:

Timer2->Enabled = true; //включить второй таймер

В функции обработки Timer2Timer события OnTimer напишите программный код:

Timer1->Enabled = false; //выключить первый таймер

Timer2->Enabled = false; //выключить второй таймер

Таким образом, при клике мышью по автомобилю включатся оба таймера. Первый таймер будет отвечать за перемещение автомобиля через каждые 10 миллисекунд, а второй таймер при достижении интервала времени в 145 миллисекунд выключит первый таймер для остановки автомобиля и выключится сам. Если кликнуть по автомобилю второй раз, он передвинется к правому краю формы. При третьем клике автомобиль покинет границы формы. Для его возврата на стартовую форму кликните мышью по форме. Проверьте, так ли работает приложение.

Анимация станет эффектнее, если ее озвучить. Для этого воспользуйтесь уже знакомым вам компонентом MediaPlayer. Его свойству Visible придайте значение false, для того чтобы в работе приложения этот компонент оказался невидимым. Подберите звуковой файл с расширением WAV, содержащий, например, «рев двигателя» или «скрип шин» протяженностью одна – две секунды. Скопируйте этот файл в папку вашего проекта. В функцию обработки Image1Click добавьте программный код, причем выше ранее записанных двух инструкций:

MediaPlayer1->Close();  //закрыть файл

MediaPlayer1->FileName = "Auto.wav";

MediaPlayer1->Open();  //открыть файл

MediaPlayer1->Play();  //воспроизвести файл

Аналогичным образом озвучьте возврат автомобиля на стартовую позицию файлом содержащем, например, «сигнал автомобиля». Можно воспользоваться уже установленным компонентом MediaPlayer1. Проверьте приложение в работе со звуковым сопровождением.

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://bc.boom.ru/




1. Реферат- Законы термодинамики и термодинамические параметры систем
2. СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ Институт управления бизнеспроцессами и экономики Кафедра- Маркети
3. политика ~ это отношения центром которых является власть
4. тема управління судном по курсу
5. РАНЧО 445051 РФ Самарская обл.
6. Международный туризм Юго-восточная Азия
7. Производственно-техническая база предприятий автомобильного транспорта
8. вариантами номерами ответов ИН ПР ПА ХО
9. Work- t school- t university-t college-t se t prty-t concert t the sttion-t the irport t sb~s house-t sb~s plce t the doctor~s on bus-on trin-on plne-on ship in cr on b
10. Перенос чужеродной ДНК в протопласты
11. Да разве не каждый квалифицированный работник способен стать руководителем спросите вы
12. Розробка системи автоматизації процесу спікання агломераційної шихти в умовах агломераційного цеху на під
13. Регистрация для того чтобы зарегистрироваться 3 Вводим стандартные данные для регистрации электронную п
14. Физиологические основы здорового образа жизни
15. тема 1 Вместо введения Ощущение системного кризиса точнее слома ключевых общественных механизмов неп
16. кредитної системи
17. 10 введение
18. ~аза~стан аума~ы ~лы Жібек жолы мен оны~ бойында~ы ~алаларды археологиялы~ негізде зерттеу ~ашан басталды
19. Основные вехи социологии XIX века
20. Роль государства в повышении качества продукци