ПОНЯТНО О Visual Basic NET (том 2)

Суть анимации


Суть анимации лучше всего объяснять, используя методы рисования.

В начале Глава 8.  я объяснил идею создания иллюзии движения картинок по экрану. Там же мы двигали по форме объекты – элементы управления. Попробуем заставить двигаться по экрану не объекты, а нарисованные нами геометрические фигуры. Пусть слева направо должна двигаться окружность. Для этого мы должны сначала нарисовать ее слева и быстро стереть, для чего нарисовать ее на том же месте, но цветом фона. Несмотря на то, что мы окружность быстро стерли, она успеет мелькнуть на экране, и глаз это заметит. Затем нужно нарисовать и стереть такую же окружность чуть правее, затем еще правее и т.д.

Ввиду причин, упомянутых в 13.5.3, откажемся от операторов цикла. Будем использовать таймеры. Создадим проект. Поместим в него таймер. Установим его интервал в 30. Вот программа:

Dim x As Integer = 100                                                                     'Координаты  окружности

Dim y As Integer = 150

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Dim Граф As Graphics = Me.CreateGraphics

        Dim Черное_перо As Pen = New Pen(Color.Black, 5)

        Dim Перо_цвета_фона As Pen = New Pen(Me.BackColor, 5)

        Dim i As Integer

        Граф.DrawEllipse(Черное_перо, x, y, 20, 20)                          'Рисуем окружность

        For i = 1 To 5000000 : Next                                                      'Пустой цикл для задания паузы

        Граф.DrawEllipse(Перо_цвета_фона, x, y, 20, 20)                 'Стираем окружность

        x = x + 1                                                                                      'Перемещаемся немного направо

End Sub

Пояснения: Когда вы попробуете выполнить эту программу на компьютере, изображение движущейся окружности может получиться некачественным – окружность в процессе движения будет мерцать и пульсировать. Это связано с разверткой электронно-лучевой трубки вашего монитора. Если создать маленькую паузу между рисованием и стиранием окружности, нежелательные эффекты уменьшатся. Пауза нужна для того, чтобы окружность не слишком быстро исчезала с экрана. Эту паузу я создаю пустым циклом. Поэкспериментируйте с диаметром, толщиной окружности, продолжительностью паузы или шагом движения по горизонтали. Последние две величины и интервал таймера определяют скорость движения.

Задание 83.          

Пусть по экрану движется «вагон» – прямоугольник и два кружочка.



Содержание раздела