Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие по VB_6.doc
Скачиваний:
21
Добавлен:
24.12.2018
Размер:
3.17 Mб
Скачать

Примеры анимации Простая анимация

Пример 4.13. Движение кнопки по случайному закону - “Броуновское движение”.

Dim TT As Integer

Option Explicit

--------------------------------------------------------

Private Sub Form_Click()

Dim x As Single, y As Single, a As Single

Dim xmove As Single, ymove As Single

Dim i As Integer, j As Integer, ttek As Integer

Dim TimerTimes As Integer

Randomize (1)

Me.ScaleMode = 3 ' шкала в пикселях

Me.WindowState = 2

x = Me.ScaleWidth / 2

y = Me.ScaleHeight / 2

PSet (x, y)

For i = 0 To 50

If j > 15 Then j = 0

xmove = 100 * Rnd

ymove = 50 * Rnd

If Rnd < 0.5 Then

x = x + xmove

Else

x = x - xmove

End If

If Rnd < 0.5 Then

y = y + ymove

Else

y = y - ymove

End If

If x < 0 Or x > ScaleWidth Or y < 0 Or y > ScaleHeight Then

' ничего не делать

Else

Command1.Move x, y

Line -(x, y), QBColor(j)

End If

ttek = 0

While ttek < 20000

Timer1_Timer ‘вызов процедуры таймера

ttek = ttek + TT

DoEvents

Wend

TimerTimes = 0

j = j + 1

Next i

End Sub

Пример 4.14. Вспышка звезды

Dim TT As Integer

Option Explicit

-----------------------------------------------------------

Private Sub Form_Click()

Dim x As Single, y As Single, a As Single

Dim xmove As Single, ymove As Single

Dim i As Integer, j As Integer, ttek As Integer

Dim TimerTimes As Integer

Randomize (1)

Me.ScaleMode = 3 ' шкала в пикселях

Me.WindowState = 2

x = Me.ScaleWidth / 2

y = Me.ScaleHeight / 2

PSet (x, y)

For i = 0 To 50

If j > 15 Then j = 0

xmove = 100 * Rnd

ymove = 50 * Rnd

If Rnd < 0.5 Then

x = x + xmove

Else

x = x - xmove

End If

If Rnd < 0.5 Then

y = y + ymove

Else

y = y - ymove

End If

If x < 0 Or x > ScaleWidth Or y < 0 Or y > ScaleHeight Then

' ничего не делать

Else

Command1.Move x, y

Line -(x, y), QBColor(j)

End If

ttek = 0

While ttek < 20000

Timer1_Timer

ttek = ttek + TT

'Print ttek

DoEvents

Wend

TimerTimes = 0

j = j + 1

Next i

End Sub

Анимация посредством переноса изображений через буфер обмена

Независимо от способа создания рисунка в VB предусмотрена возможность перенести его в другой элемент управления или другие приложения Windows. Для этого используются методы SetData, GetData( ), GetForm, Clear.

Метод SetData – перемещает данные в объект.

Синтаксис:

Объект. SetData [ данные ],[формат]

Здесь:

Объект - буфер обмена, его идентификатор ClipBoard;

Данные – указывают, откуда переносятся данные (ImageBox, PictureBox и др.);

Формат – задает формат исходных данных.

Допустимые значения опции Формат приведены в табл. 4.4.

Таблица 4.4.