VisualFreeBasic游戏趣味编程_5.5_针的发射与新增

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

首先在画面左边绘制一根针,表示待发射针的位置:

gg.DrawLine 0, 120, 100, 120

假设初始状态下没有针在旋转:

Dim lineNum As Long = 0

浮点数数组存储所有可能针的旋转角度,假设最多有1000根针
Dim Angles(999) As Single
当用户按下空格键时,针的个数加1,并且新增加的针初始角度为PI。用户不断按下空格键,即可持续生成新的针

      If IsKeyPress(VK_SPACE) Then '按下空格键
         If lineNum < 1000 Then 
            Angles(lineNum) = 180
            lineNum += 1
            Sleep 100
         End If       
      End If


全部代码

Sub 游戏执行过程(hWndForm As hWnd)
   Dim gg As yGDI   = hWndForm
   Dim pi As Single = 3.1415926 / 180

   Dim lineLength As Long = 100 ' 针的长度
   Dim As Long xEnd, yEnd ' 针的末端坐标(针起始位置为圆心)
   Dim lineNum As Long = 0
   gg.Brush '不填充色彩
   Dim rotateSpeed As Single = 0.5
   Dim Angles(999) As Single
   Dim i           As Long
   Do
      gg.Cls
      gg.Pen 3, BGR(0, 0, 0) '线宽为3,这样针看起来更明显
      gg.DrawLine 0, 120, 60, 120
      If IsKeyPress(VK_SPACE) Then '按下空格键
         If lineNum < 1000 Then 
            Angles(lineNum) = 180
            lineNum += 1
            Sleep 100
         End If       
      End If 
      If lineNum Then     '有针的情况
         For i = 0 To lineNum -1
            Angles(i) = Angles(i) + rotateSpeed '角度增加
            If Angles(i) > 360 Then Angles(i) = 0
            xEnd = 200 + lineLength *Cos(Angles(i) * pi) '计算针的末端坐标
            yEnd = 120 + lineLength *Sin(Angles(i) * pi)
            gg.DrawLine 200, 120, xEnd, yEnd
         Next
      End If
      gg.Pen 2, BGR(255, 0, 0) '设置圆盘线条颜色为红色
      gg.DrawEllipse 160, 80, 80, 80

      gg.Redraw
      Sleep 10
   Loop
End Sub

评论一下?

OωO
取消