在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
评论一下?