Найпростіші прийоми побудови анімації h2>
Володимир Коробицын p>
Компонент таймер і його властивості h2>
Мультимедійне
додаток буде неповним без будь-яких елементів анімації. Для того щоб
змусити рухатися, наприклад, автомобіль скористаємося компонентом типу
таймер. p>
Таймер
має зовсім невеликий набір властивостей в порівнянні з іншими компонентами C + +
Builder, але має нічим необмеженими здібностями вправно керувати
роботою програми в часовому просторі з точністю до однієї мілісекунди.
Що б помістити таймер на стартову форму Form1, потрібно клікнути мишею в
головному вікні у вкладці System по кнопці Timer (Таймер) із зображенням
циферблату годинника зі стрілками, а потім по самій формі в будь-якій її робочої частини.
Цей компонент під час роботи програми є невидимим. А ось під час
побудови проекту програми таймер видно на формі, і тому програмісту
зручно в будь-який час швидко звернутися до його властивостями або до функції обробки
Timer1Timer події OnTimer (Таймер включений). На формі можна встановити стільки
таймерів, скільки вам необхідно. Найважливішою властивістю компонента таймер
є Interval (Інтервал), значення якого за замовчуванням становить 1000
мілісекунд (одна секунда). Властивість Enabled (Дозвіл працювати) включає або
ж вимикає таймер в залежності від його значення (true або false). Значення
цих властивостей можна задати як до запуску проекту, так і змінювати їх програмним
способом під час роботи проекту. Подія Timer1Timer настає після закінчення
реального часу еквівалентного значенням властивості Interval для таймера. До тих
пір, поки таймер не вимкнений, ця подія буде наступати знов і знов. p>
Відкрийте
новий проект. На формі розташуйте таймер Timer1, для його властивості Enabled
встановіть значення false, а для властивості Interval значення 10 мілісекунд, що
буде відповідати однієї сотої долі секунди. p>
В
нашому випадку крім компонента таймер Timer знадобиться компонент образ Image.
Встановіть на форму компонент образ Image1. Підберіть невеликий за розмірами
малюнок із зображенням автомобіля і помістіть його в образ Image1, використовуючи
властивість Picture. Властивості AutoSize надайте значення true. Встановіть для
властивості Left значення в 15 одиниць, для того щоб автомобіль міг стартувати з
лівій частині форми. Розміри форми змініть за допомогою миші так, щоб її ширина
була трохи менше загальної ширини екрана, а її висота приблизно в два рази перевищувала
висоту автомобіля. p>
В
функцію обробки Image1Click помістіть рядок програмного коду: p>
Timer1-> Enabled
= True;// включити першу таймер p>
Таким
чином, при одиночному натисканні мишею по автомобілю, буде запущений таймер, і через
кожні десять мілісекунд буде виконуватися інструкція, яку ви повинні
розмістити у функції обробки Timer1Timer події OnTimer - таймер включено: p>
// переміщення
автомобіля вправо на 30 одиниць p>
Image1-> Left
= Image1-> Left + 30; p>
Де,
Left (лівий край) це властивість компонента Image1. Значення цієї властивості буде
дуже швидко наростати. В результаті отримаємо ефект переміщення автомобіля по
горизонталі. Запустіть проект програми на виконання. Клацніть мишею на
автомобіль, і він кинеться в нескінченність. Закрийте програму. Якщо ви
хочете знизити швидкість автомобіля, то збільшення його переміщення в 30 одиниць
зменшіть до 15. p>
Примусимо
автомобіль в будь-який час повертатися за велінням користувача на стартову
позицію з одиночного клацання на формі. У функцію обробки FormClick запишіть
рядок: p>
Image1-> Left
= 15;// повернення на стартову позицію p>
Запустіть
проект програми та перевірте цю інструкцію в роботі, клікнувши мишею спочатку по
автомобілю, а потім на формі. p>
Зупинимо
автомобіль на середині форми. Для цієї мети встановіть на форму другого таймер
Timer2. Його властивості Enabled надайте значення false, а властивості Interval
значення 145 (можливо це значення доведеться підібрати з-за іншого дозволу
вашого екрану по горизонталі). У функцію обробки Image1Click допишіть рядок: p>
Timer2-> Enabled
= True;// включити другий таймер p>
В
функції обробки Timer2Timer події OnTimer напишіть програмний код: p>
Timer1-> Enabled
= False;// виключити перше таймер p>
Timer2-> Enabled
= False;// виключити друге таймер p>
Таким
чином, при натисканні мишею по автомобілю включаться обидва таймера. Перший таймер
буде відповідати за переміщення автомобіля через кожні 10 мілісекунд, а друга
таймер при досягненні інтервалу часу в 145 мілісекунд вимкне першим
таймер для зупинки автомобіля і вимикається сам. Якщо клікнути по автомобілю
другий раз, він пересунеться до правого краю форми. При третьому натисканні автомобіль покине
кордону форми. Для його повернення на стартову форму клацніть мишею по формі.
Перевірте, чи працює програма. P>
Анімація
стане ефектніше, якщо її озвучити. Для цього скористайтеся вже знайомим вам
компонентом MediaPlayer. Його властивості Visible надайте значення false, для того
щоб в роботі додатку цей компонент виявився невидимим. Підберіть звуковий
файл з розширенням WAV, що містить, наприклад, «ревіння двигуна» або «скрип шин»
протяжністю один - дві секунди. Скопіюйте цей файл в папку вашого проекту.
У функцію обробки Image1Click додайте програмний код, причому вище раніше
записаних двох інструкцій: p>
MediaPlayer1-> Close ();// закрити файл p>
MediaPlayer1-> FileName =
"Auto.wav"; p>
MediaPlayer1-> Open ();// відкрити файл p>
MediaPlayer1-> Play ();// відтворити файл p>
Аналогічним
чином озвучте повернення автомобіля на стартову позицію файлом містить,
наприклад, «сигнал автомобіля». Можна скористатися вже встановленим
компонентом MediaPlayer1. Перевірте додаток в роботі зі звуковим супроводом. P>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://bc.boom.ru/
p>