VB中如何设计一个标签Label1在碰到窗体边框后随机方向移动的代码
展开全部
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
就行,自己解决,不要追问了
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
就行,自己解决,不要追问了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询