利用do循环和IsKeyPress()函数,可以实现每次按键后,重新生成随机颜色。另外,利用Randomize()函数对随机函数初始化,避免每次运行的随机颜色都一样。
Sub 游戏执行过程(hWndForm As hWnd)
Dim gg As yGDI = hWndForm
gg.Cls BGR(180, 180, 180) 'GDI的颜色值。
gg.Pen 0, 0 '设置线条为没有
Dim i As Long, j As Long, 度 As Long
Do
Randomize
Dim h As Long = int(Rnd * 18) * 10
Dim color1 As COLORREF = HSBtoRGB_Gdi(HSB(h, 90, 80, 255))
Dim color2 As COLORREF = HSBtoRGB_Gdi(HSB(h + 180, 90, 80, 255))
For j = 110 To 30 Step -25
For i = 0 To 350 Step 18
画扇形(gg, 120, 120, j, i + 3 + 度, i + 0 + 度, BGR(0, 0, 0))
画扇形(gg, 120, 120, j, i + 8 + 度, i + 3 + 度, color1)
画扇形(gg, 120, 120, j, i + 13 + 度, i + 8 + 度, BGR(255, 255, 255))
画扇形(gg, 120, 120, j, i + 18 + 度, i + 13 + 度, color2)
Next
度 += 9
Next
gg.Redraw
Do
If IsKeyPress(VK_SPACE) Then Exit Do'按下了空格键"
Sleep 100
Loop
Loop
End Sub
练习题4-4:gg.DrawLine (x1, y1, x2, y2)可以画一条直线,(x1,y1)、(x2,y2)为直线两个端点的坐标。尝试绘制图4-15所示的围棋棋盘。

练习题4-5:利用画线函数和循环语句,尝试绘制图4-16所示的错觉图片。其错觉原理和“旋转蛇”错觉原理一样,第1行、第3行图片好像在向左移动,第2行、第4行图片好像在向右移动。

评论一下?