Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 214; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.144.219.156 (0.021 с.) |