Создание анимации "Летающий шар" на Visual Basic - VB
Формулировка задачи:
Народ, помогите, не могу понять, каким образом это осуществить.
На языке программирования V.B. написать прог-у "летающий мячик", которая организует движения мячика на форме. При достижении границы формы мячик должен "отскакивать" от нее по закону "угол падение=углу отражения" и случайным образом менять цвет. Предусмотреть возможность задания пользователем скорость мячика.
Решение задачи: «Создание анимации "Летающий шар" на Visual Basic»
textual
Листинг программы
Option Explicit
Dim WithEvents Tmr As Timer
Const Speed As Long = 60, Radius As Long = 300
Private Sub Form_Load()
Me.FillStyle = vbSolid: Me.FillColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Set Tmr = Me.Controls.Add("VB.Timer", "Tmr")
Tmr.Interval = 64: Tmr.Enabled = True
End Sub
Private Sub Tmr_Timer()
Static X As Long, Y As Long, Dx As Long, Dy As Long
If Dx = 0 Then
X = Me.ScaleWidth / 2: Y = Me.ScaleHeight / 2
Dx = Speed: Dy = Speed
ElseIf X - Radius < 0 Then
X = Radius: Dx = -Dx: Me.FillColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
ElseIf Y - Radius < 0 Then
Y = Radius: Dy = -Dy: Me.FillColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
ElseIf X + Radius > Me.ScaleWidth Then
X = Me.ScaleWidth - Radius: Dx = -Dx: Me.FillColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
ElseIf Y + Radius > Me.ScaleHeight Then
Y = Me.ScaleHeight - Radius: Dy = -Dy: Me.FillColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Else
X = X + Dx: Y = Y + Dy
End If
Me.Cls: Me.Circle (X, Y), Radius
End Sub