VisualFreeBasic游戏趣味编程_6.1_利用数组记录多个随机圆

2026-1-22 / 0 评论 / 56 阅读

本节讲解如何利用数组记录生成100个随机圆

首先定义3个数组存储所有圆的圆心坐标、半径:

   Dim 圆心x(99)  As Long '数组存储所有圆心的x坐标
   Dim 圆心y(99) As Long '数组存储所有圆心的y坐标
   Dim 半径(99)  As Long '数组存储所有圆的半径

设定圆的个数=100,在for循环中随机生成圆心坐标、半径,并存储在数组中:

   '生成圆,把数据保存在数组中
   Dim i As Long
   For i = 0 To 圆的个数 -1
      圆心x(i) = Int(Rnd *游戏W)
      圆心y(i) = Int(Rnd *游戏H)
      半径(i)  = Int(Rnd * (圆的最大半径 - 圆的最小半径 + 1)) + 圆的最小半径
   Next

然后对数组的所有元素进行遍历,即可绘制出所有圆的图案:

   gg.Pen 1, BGR(105, 105, 105) 'GDI的颜色值。
   gg.Brush BGR(204,204,0) 'GDI的颜色值。
   For i = 0 To 圆的个数 -1
        gg.DrawEllipse 圆心x(i) -半径(i), 圆心y(i)-半径(i),半径(i)*2,半径(i)*2
   Next 

完整代码参看

Sub 游戏执行过程(hWndForm As hWnd)
   Dim gg           As yGDI   = hWndForm
   Dim pi           As Single = 3.1415926 / 180
   Dim 圆心x(99)    As Long '数组存储所有圆心的x坐标
   Dim 圆心y(99)    As Long '数组存储所有圆心的y坐标
   Dim 半径(99)     As Long '数组存储所有圆的半径
   Dim 圆的个数     As Long = 100
   Dim 游戏W        As Long = DpiScaleI(Form1.ScaleWidth) '游戏区的尺寸
   Dim 游戏H        As Long = DpiScaleI(Form1.ScaleHeight)
   Dim 圆的最小半径 As Long = 5
   Dim 圆的最大半径 As Long = 40
   '生成圆,把数据保存在数组中
   Dim i As Long
   For i = 0 To 圆的个数 -1
      圆心x(i) = Int(Rnd *游戏W)
      圆心y(i) = Int(Rnd *游戏H)
      半径(i)  = Int(Rnd * (圆的最大半径 - 圆的最小半径 + 1)) + 圆的最小半径
   Next
   gg.Pen 1, BGR(105, 105, 105) 'GDI的颜色值。
   gg.Brush BGR(204,204,0) 'GDI的颜色值。
   For i = 0 To 圆的个数 -1
        gg.DrawEllipse 圆心x(i) -半径(i), 圆心y(i)-半径(i),半径(i)*2,半径(i)*2
   Next 
End Sub

评论一下?

OωO
取消