![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Изменение форм и видов объектовСодержание книги
Поиск на нашем сайте
Следующим видом анимации является изменение объектов. Для периодичного изменения формы и вида объектов обычно используется переменная-счетчик целого типа. Каждое значение этой переменной фиксирует определенное состояние объекта.
Для оформления графического интерфейса проекта поместим на форму таймер и три компонента TImage: в Image1 загрузим изображение круглой луны, в Image2 – половины луны и в Image3 – месяца (рис. 14). Все три компонента наложим друг на друга так, чтобы они практически совпадали (рис. 15) и установим свойство Visible равным False.
Рис. 14 Фазы луны
Рис. 15 Графический интерфейс окна
Введем переменную-индикатор n целого типа. Эта переменная будет соответствовать различным фазам луны. При n = 1 выводится изображение полной луны (Image1.Visible = true), при n = 2 – половины луны (Image2.Visible = true), при n = 3 – месяца (Image3.Visible = true). Если n = 4, то луна на небе вообще отсутствует. Переменная-счетчик может менять свои значения с помощью оператора n:= n+1. Обработчик события OnTimer будет иметь вид:
Текст программного кода значительно сократится, если использовать вывод изображения различных фаз луны во время выполнения программы. В этом случае достаточно будет одного компонента TImage, размещенного на форме:
Рис. 16 Графический интерфейс окна.
При n = 1 в Image1 загружается файл с полной луной (1.bmp), при n = 2 – с половиной луны (2.bmp), при n = 3 – с месяцем (3.bmp). Обработчик события OnTimer будет иметь следующий вид:
Движение объектов и изменение их форм можно совместить в одном проекте. Рассмотрим пример такой программы.
В данном проекте будет использоваться и изменение вида объекта (человека), и движение объекта (мяча). Для создания графического интерфейса проекта нарисуем в графическом редакторе Paint следующие изображения: 1. изображение человечка с опущенными руками – 1.bmp (рис. 17, а); 2. изображение человечка с поднятыми руками – 2.bmp (рис. 17, б); 3. изображение приседающего человека – 3.bmp (рис. 17, в); 4. изображение мяча – ball.bmp (рис. 17, г); 5. изображение подставки – floor.bmp (рис. 17, д).
а) б) в) г) д) Рис. 17 Изображения, используемые в проекте.
Начнем с программирования первого упражнения. Для этого поместим на форму 3 объекта TImage со следующими свойствами: - У объекта Image1 в свойство Picture загрузим рисунок 1.bmp; transparent = true; visible = true; stretch = true. - У объекта Image2 в свойство Picture загрузим рисунок 2.bmp; transparent = true; visible = false; stretch = true. - У объекта Image3 в свойство Picture загрузим рисунок floor.bmp; transparent = true; visible = true; stretch = true. При этом изображения Image1 и Image 2 должны практически точно накладываться друг на друга. Для организации повторения первого упражнения поместим на форму компонент Timer1 с интервалом 500. В результате получим графический интерфейс подобно тому, как изображено на рис. 18.
Рис. 18 Графический интерфейс проекта «Зарядка» для выполнения первого упражнения
Далее поместим на форму еще один объект TImage – Image4, в который загрузим изображение приседающего человечка (3.bmp). Свойство Visible у этого объекта должно равняться false. Чтобы организовать повторение приседаний, разместим на форме еще один таймер Timer2 с интервалом 500.
Рис. 19 Графический интерфейс проекта «Зарядка» для выполнения двух упражнений
Аналогично добавим на форму изображение мяча в компоненте Image5 и компонент Timer3 с интервалом 100 для работы с мячом (рис. 20).
Рис. 20 Графический интерфейс проекта «Зарядка»
Создадим обработчик события OnTimer для компонента Timer1. Чтобы получить эффект мультипликации нужно организовать чередование видимости изображений человека с опущенными и поднятыми руками. Для этого введем переменную-индикатор n, которая может принимать последовательно значения 1 и 2. Если n = 1, то виден человек с опущенными руками. Если n = 2, то виден человек с поднятыми руками.
Текст программы обработчика события для Timer1 будет следующим:
Зададим число повторов (15 раз) для первого упражнения и организуем переход ко второму упражнению. Для этого введем еще одну переменную-индикатор k. При k =15 первый таймер должен прекратить свою работу, а второй таймер – начать. Текст программы обработчика события для первого таймера с заданием числа повторов будет следующим:
Аналогично составляется обработчик события для второго таймера. Только здесь при f = 15 должно исчезнуть изображение приседающего человека и появиться изображение мяча и человека с опущенными руками.
Создадим обработчик для третьего таймера, который отвечает за движение мячика. Мяч должен лететь вниз, отскакивать от пола и возвращаться в исходное положение. Организовать движение мяча можно с помощью следующей конструкции: Image5.Top:=Image5.Top + 40. Если верхняя граница мяча плюс его высота будет больше, чем верхняя граница подставки, то свойство Image5.Top должно принять начальное значение. Число повторов упражнения с мячом задается аналогично. Текст программы обработчика события для Timer3 будет следующим:
Проект «Зарядка» можно усложнить, добавив новые упражнения.
Задания
1. Создать проект моделирования движения человека: a. идущего; b. бегущего; c. танцующего; d. выполняющего сигнализацию флажками; e. играющего на гитаре. 2. Создать проект, в котором распускается цветок. 3. Создать проект, в котором два человека бросают друг другу мячик. Когда мячик подлетает к человечку, он должен поднять руки, чтобы отбить мяч. Затем человек опускает руки. Изменение размеров объектов
Размеры объектов в Delphi определяются свойствами Width (Ширина) и Height (Высота). Чтобы задать другие размеры у компонентов, необходимо установить новые значения этих свойств. Например, команда Image1.Width:= Image1.Width + 5 увеличивает ширину объекта Image1 на 5 пикселей.
Оформите графический интерфейс проекта подобно тому, как показано на рис. 21. В компонент Image1 помещено изображение дороги, в Image2 – изображение автомобиля, в Image3 – изображение дерева. Чтобы дерево могло увеличивать свои размеры, у объекта Image3 следует обязательно установить свойство Stretch (Растяжение) равным True.
Текст процедуры обработчика события OnTimer будет следующим:
Рис. 21 Графический интерфейс окна
Чтобы эффект движения был более реалистичным можно добавить в проект увеличивающуюся разметку на дороге, а также различные объекты, стоящие вдоль дороги.
Пример программы движения объектов
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.214.156 (0.01 с.) |