VB中如何设计一个标签Label1在碰到窗体边框后随机方向移动的代码
1个回答
2013-06-24
展开全部
Dim Dx As Long
Dim Dy As Long Private Sub Form_Load()Dx = Rnd() * 100
Dy = Rnd() * 100Timer1.Interval = 100
Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
'碰到左边If Label1.Left < 0 Then
Dx = Rnd() * 100
End If '碰到右边If Label1.Left + Label1.Width > Me.ScaleWidth Then
Dx = -Rnd() * 100 '负的
End If
'碰到上边If Label1.Top < 0 Then
Dy = Rnd() * 100
End If '碰到下边If Label1.Top + Label1.Height > Me.ScaleHeight Then
Dy = -Rnd() * 100 '负的
End If'只要 dx dy 随机,角度就随机了Label1.Left = Label1.Left + Dx
Label1.Top = Label1.Top + Dy
End Sub
'这个程序移动的速度是随机的,因为dx dy 随机 要想速度不变,只要产生dx dy 后,再按比例放大缩小dx dy 就行,自己解决,不要追问了
Dim Dy As Long Private Sub Form_Load()Dx = Rnd() * 100
Dy = Rnd() * 100Timer1.Interval = 100
Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
'碰到左边If Label1.Left < 0 Then
Dx = Rnd() * 100
End If '碰到右边If Label1.Left + Label1.Width > Me.ScaleWidth Then
Dx = -Rnd() * 100 '负的
End If
'碰到上边If Label1.Top < 0 Then
Dy = Rnd() * 100
End If '碰到下边If Label1.Top + Label1.Height > Me.ScaleHeight Then
Dy = -Rnd() * 100 '负的
End If'只要 dx dy 随机,角度就随机了Label1.Left = Label1.Left + Dx
Label1.Top = Label1.Top + Dy
End Sub
'这个程序移动的速度是随机的,因为dx dy 随机 要想速度不变,只要产生dx dy 后,再按比例放大缩小dx dy 就行,自己解决,不要追问了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询