close

Вход

Забыли?

вход по аккаунту

?

Урок 3 (3)

код для вставкиСкачать
Урок 3. Создание анимации
Анимация - это имитация движения, производимая быстрым отображением на экране серии связанных между собой изображений. Настоящая анимация требует программного перемещения объектов, и часто использует также изменение размера или формы изображения.
Для создания анимации (иллюзии движения на экране какого-либо объекта) применяется принцип смены кадров (изображений), как это делается в мультипликации. Программа, имитирующая движение, должна реализовывать следующие этапы:
* создание изображения на экране;
* реализация временной паузы для того, чтобы глаз зафиксировал изображение;
* коррекция изображения.
Анимация часто используется для показа движения объектов. Перемещение объектов по форме
Свойства Left и Top Чтобы переместить объект на относительное расстояние, нужно добавлять или вычитать пиксели из текущего значения свойства Left. Например, чтобы переместить объект на 50 пикселей вправо, нужно добавить к свойству Left значение 50, как показано здесь:
OvalShape1.Left += 50
Аналогично осуществляется относительное перемещение вверх или вниз: с помощью добавления или вычитания пикселей из текущего значения свойства Top. Например, чтобы переместить объект на 30 пикселей вниз, нужно добавить к свойству Top значение 30, как показано здесь:
RectangleShape1.Top += 30
Свойство Location
Чтобы переместить объект одновременно в вертикальном и горизонтальном направлении, довольно просто использовать комбинацию значений свойств Left и Top. Например:
OvalShape1.Left += 50
OvalShape1.Top += 30
Однако разработчики Visual Basic .NET не рекомендуют использовать два оператора программы для перемещения объекта, если необходимо делать много перемещений объектов программы (например, если во время сложного анимационного требуется перемещать объекты сотни или тысячи раз). Вместо этого Microsoft рекомендует использовать свойство Location, например, следующий оператор программы перемещает овал в координаты (300, 200):
OvalShape1.Location = New Point(300, 200)
Чтобы с помощью свойства Location выполнить относительное перемещение, требуются свойства Location.X и Location.Y. Например, оператор программы
OvalShape1.Location = New Point(OvalShape1.Location.X - 50, OvalShape1.Location.Y - 40)
перемещает овал на 50 пикселей влево и на 40 пикселей вверх. Хотя эта конструкция кажется несколько громоздкой, она является рекомендуемым способом перемещения объектов формы во время выполнения программы.
Элемент управления Timer (таймер)
Чтобы объекты двигались, можно использовать циклы, но удобнее воспользоваться элементом управления Timer (находится на Панели элементов в разделе Компоненты).
Элемент управления Timer - это невидимый секундомер, который позволяет использовать системные часы. Он может быть использован как таймер для обратного отсчета от заданного интервала времени, что используется при создании пауз в программе, или повторения действий через заданные интервалы времени.
Некоторые свойства элемента управления Timer:
СвойствоЗначениеКомментарииIntervalInt32, значение не может быть меньше единицыВозвращает или задает время в миллисекундах (одна тысячная доля секунды) до вызова события Tick относительно момента, когда событие Tick произошло последний раз.
Если значение равно 1000, событиезапускается раз в секунду.EnabledTrue/FalseВозвращает или задает, запущен ли таймер. Значение True, если данный таймер включен; в противном случае - значение False (значение по умолчанию). Изменить значения свойств можно как при разработке, так и во время выполнения программы.
Если во время разработки программы установить значение свойства Enabled равным True, таймер начнет отсчет времени сразу после того, как форма будет загружена в память.
Некоторые методы элемента управления Timer:
МетодыОписаниеПример использованияАналогичное изменение свойстваStartЗапускает таймер. Timer1.Start()Timer1.Enabled = TrueStopОстанавливает таймер. Timer1.Stop()imer1.Enabled = False Основное событие таймера - Tick. Происходит по истечении заданного интервала таймера при условии, что таймер включен. Оно инициализируется системой, и частота появления события зависит от выставленного пользователем интервала: чем меньше установлено значение свойства Interval, тем чаще будет вызываться событие. Когда компонент включен, событие Tick вызывается через каждый интервал. В этом месте следует добавить исполняемый код.
Когда таймер активизирован, он постоянно работает, выполняя через заданные промежутки времени свою процедуру события до тех пор, пока пользователь не остановит программу или не отключит таймер.
Создание анимации с помощью объекта Timer и графических объектов
Один из способов создания анимации в программе состоит в помещении в процедуру события таймера одного или нескольких изменений свойств объекта Location, Top или Left. При этом через определенные интервалы времени таймер будет заставлять один или несколько объектов перемещаться по экрану. Также можно изменять размеры объектов, используя их свойства Height и Width.
Также использование в процедуре события значений размеров формы можно использовать для остановки анимации (отключения таймера), когда объект достигает границы формы или изменения направления движения объекта (заставить его отскакивать от одного или нескольких краев формы).
Задача. Создать следующую анимацию: круг движется на экране слева направо вдоль горизонтальной прямой, проходящей через центр формы; достигнув края формы, круг меняет направление на противоположное. Создать также кнопки старта, паузы и возобновления движения сначала.
В данном примере переменная d определяет направление движения круга: если d = 0, то он движется слева направо, а если 1 - то справа налево. Направление движения изменяется, если круг коснулся краев формы: If OvalShape1.Right >= Me.ClientSize.Width Then d = 1
и If OvalShape1.Left <= 0 Then d = 0
Чтобы круг двигался быстрее, нужно уменьшить значение Interval для объекта таймера или увеличить величину изменения свойства Left. Анимация изображения, созданного с помощью графических методов
Двигать также можно не только объекты, но и изображения, созданные с помощью графических методов. Это удобно особенно в тех случаях, когда создается движение не простого объекта типа круг, квадрат или линия, а комбинированного. В таком случае логично написать процедуру, которая рисует указанный объект, опираясь на координату одной из его точек. А затем вызывать эту процедуру в событии таймера. Следует заметить, что при создании анимации с использованием графических объектов, изменяются свойства именно этих объектов. А при использовании графически методов каждый раз рисуется новое изображение, а значит, старое нужно очищать. Если в объекте области вывода изображений нет других рисунков, то можно полностью очищать область рисования. Иначе нужно перерисовывать старое изображение цветом фона.
Задача. Создать следующую анимацию: кораблик движется в объекте области вывода изображений PictureBox слева направо. Кораблик останавливается, когда достигнет края области.
Процедура рисование кораблика цветом c:
В событии таймера сначала рисуем кораблик белым цветом, затем изменяем координату X и рисуем кораблик синим цветом, пока он не достигнет края PictureBox.
Анимация изображения с использование эффектов вращения
Задача. Создать следующую анимацию: один конец отрезка зафиксирован в центре формы, а второй движется по окружности, проходящей через центр формы, как секундная стрелка в часах.
В этой задаче a - это угол, на который поворачивается секундная стрелка,
LineShape1.X1, LineShape1.Y1 - координаты конца отрезка, который находится в центре, вокруг которого происходит вращение,
LineShape1.X2, LineShape1.Y2 - координаты второго конца отрезка, который движется по окружности.
Документ
Категория
Разное
Просмотров
68
Размер файла
138 Кб
Теги
урок
1/--страниц
Пожаловаться на содержимое документа