永发信息网

用vb设计小球碰撞之后反弹的程序,运行时结果不对,不知道哪错了

答案:1  悬赏:0  手机版
解决时间 2021-03-08 11:23
  • 提问者网友:愿为果
  • 2021-03-08 01:02
Dim Shuiping As Integer, Chuizhi As Integer
Private Sub Timer1_Timer()
Shuiping = 1
Chuizhi = 1
Shape1.Left = Shape1.Left + Shuiping * 50
Shape1.Top = Shape1.Top + Chuizhi * 50
If Shape1.Left >= Form1.ScaleWidth - Shape1.Width Then
Shuiping = -Shuiping
Shape1.Left = Shape1.Left - Shuiping * 50
ElseIf Shape1.Left <= 0 Then
Shape1.Left = Shape1.Left + Shuiping * 50
End If
If Shape1.Top >= Form1.ScaleHeight - Shape1.Height Then
Chuizhi = -Chuizhi
Shape1.Top = Shape1.Top + Chuizhi * 50
ElseIf Shape1.Top <= 0 Then
Shape1.Top = Shape1.Top + Chuizhi * 50
End If
End Sub
最佳答案
  • 五星知识达人网友:鱼忧
  • 2021-03-08 02:01
帮你改好了
出错的原因是shuiping,chuizhi=1不能放在timer里面,要不然每次timer后都会变回来
还有貌似你有几句话是没用的啊,我给你删掉了

Dim Shuiping As Integer, Chuizhi As Integer
Private Sub Form_Load()
Shuiping = 1
Chuizhi = 1
End Sub
Private Sub Timer1_Timer()
Shape1.Left = Shape1.Left + Shuiping * 50
Shape1.Top = Shape1.Top + Chuizhi * 50
If Shape1.Left >= Form1.ScaleWidth - Shape1.Width Or Shape1.Left <= 0 Then Shuiping = -Shuiping
If Shape1.Top >= Form1.ScaleHeight - Shape1.Height Or Shape1.Top <= 0 Then Chuizhi = -Chuizhi
End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯