VisualFreeBasic游戏趣味编程_2.8_小球落地反弹

2026-1-21 / 0 评论 / 53 阅读

在本节我们尝试实现小球落地反弹的效果。首先在小球逐渐下落代码的基础上,设定变量vy记录小球在y轴方向上的速度,vy初始化为3。在do 循环语句中,小球的y坐标每次增加vy。
提示 do 是无限循环语句 for 是有限循环语句

一直向下运动效果

Sub 游戏执行过程(hWndForm As hWnd)
   Dim gg As yGDI = hWndForm
   gg.Brush(&HFF0000)
   Dim y  As Long = 10
   Dim vy As Long = 2
   Do
      y = y + vy
      If y > 280 Then y = -20
      gg.DrawEllipse(100, y, 20, 20)
      gg.Redraw : Sleep(10) : gg.Cls()
   Loop

End Sub

提示 循环都必须有一个配套使用,For 和 Next 配套,Do 和 Loop 配套 ,因为需要无限循环运动,因此用 Do 循环更适合。


上下反弹运动效果

当小球落地时,即小球刚和窗口最底部接触时,小球y坐标恰好等于240。为了实现小球落地时反弹,只需将其y轴上的速度反向(vy = – vy),执行y = y+ vy就相当于将y逐渐变小,即实现了小球向上反弹。

Sub 游戏执行过程(hWndForm As hWnd)
   Dim gg As yGDI = hWndForm
   gg.Brush(&HFF0000)
   Dim y  As Long = 10
   Dim vy As Long = 2
   Do
      y = y + vy
      If y <=0 Or y>=240 Then vy = -vy
      gg.DrawEllipse(100, y, 20, 20)
      gg.Redraw : Sleep(10) : gg.Cls()
   Loop

End Sub

评论一下?

OωO
取消