主题:如何实现一个小球从窗体顶部移动到底部后再移动至顶部?
wulei0301
[专家分:0] 发布于 2010-12-17 22:00:00
如何实现一个小球从窗体顶部移动到底部后再移动至顶部?不停的循环,直至按一“停止”按钮。
回复列表 (共7个回复)
沙发
老大徒伤悲 [专家分:29120] 发布于 2010-12-18 10:44:00
你的难点在哪里,说说看。
板凳
wulei0301 [专家分:0] 发布于 2010-12-18 23:41:00
难点是:小球可以通过“top与hight”落到窗体的底部,但是不知道如何使它再移动到顶部。我起初还是用top与 hight,可是小球只能上移一次,就不又落下,再上移一次,如此反复。希望你能帮我解决这问题,谢谢了!
3 楼
老大徒伤悲 [专家分:29120] 发布于 2010-12-20 09:27:00
关键是条件判断。
4 楼
老大徒伤悲 [专家分:29120] 发布于 2010-12-20 09:39:00
Dim 运动方向 As Boolean
Const 步长 = 200 '如果要模拟自由落体及其反弹,则不用慈祥,而且需要修改timer里面的算式
Private Sub Command1_Click()
Timer1.Interval = 100
End Sub
Private Sub Form_Load()
Command1.Caption = "开始"
Shape1.Shape = 3
Shape1.FillColor = vbBlack
Shape1.FillStyle = 0
End Sub
Private Sub Timer1_Timer()
If 运动方向 Then
Shape1.Top = Shape1.Top - 步长
If Shape1.Top <= 0 Then 运动方向 = Not 运动方向
Else
Shape1.Top = Shape1.Top + 步长
If Shape1.Top >= Me.ScaleHeight - Shape1.Height Then 运动方向 = Not 运动方向
End If
End Sub
5 楼
老大徒伤悲 [专家分:29120] 发布于 2010-12-20 09:41:00
我没有放“停止”按钮,如果需要,只须,
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
6 楼
xingjhmvp [专家分:0] 发布于 2010-12-21 15:40:00
ding
7 楼
feitianzhu1000 [专家分:0] 发布于 2010-12-21 22:38:00
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 50
End Sub
Private Sub Timer1_Timer()
Label1.Top = Label1.Top + 100
If Label1.Top > Form1.Height Then
Label1.Top = 0
End If
End Sub
我来回复