VisualFreeBasic游戏趣味编程_2.5_小球下落动画

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

在2-4的基础上,每绘制一个小球后 gg.Redraw 刷新显示,加上Sleep(1000)语句,表示程序暂停1000毫秒(1秒),即可实现小球从上向下依次出现的效果。

Sub 游戏执行过程(hWndForm As hWnd)
   Dim gg As yGDI = hWndForm
   gg.Brush(&HFF0000)
   Dim y As Long = 10
   Dim St As Long = 40
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000)
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000)
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000)
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000)
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)

End Sub

接下来,利用gg.Cls(GetSysColor(COLOR_WINDOW))清屏函数,在绘制新的小球前先清除画面上的内容,即可实现一个小球逐渐下落的动画效果。

Sub 游戏执行过程(hWndForm As hWnd)
   Dim gg As yGDI = hWndForm
   gg.Brush(&HFF0000)
   Dim y As Long = 10
   Dim St As Long = 40
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) 
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) 
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) 
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)
   gg.Redraw :Sleep(1000):gg.Cls(GetSysColor(COLOR_BTNFACE)) 
   y=y+St
   gg.DrawEllipse(100, y, 20, 20)

End Sub

评论一下?

OωO
取消