我正在使用visual basic 2010制作一款游戏,除了我在使用全局变量方面遇到的一个问题外几乎完成了它。我已将它们设置在一个模块中,如下所示:
Module Module1
Public Structure Maths
Public accuracy As Integer
Public speed As Integer
Public vision As Integer
End Structure
Public Mathsprogress As Maths
End Module
我想对这些变量做的是在一个表单中使用它们来存储值,这样我就可以将这些值传递给第二种形式。为此,我创建了嵌套的if语句,它应根据'不正确的值来设置变量mathsprogress.accuracy = x
的值。
'''''''''''CONTINUED''''''''''''''''''
Else : incorrect = incorrect + 1
If incorrect = 0 Then
Mathsprogress.accuracy = 10
ElseIf incorrect < 2 And incorrect > 0 Then
Mathsprogress.accuracy = 9
ElseIf incorrect = 3 Then
Mathsprogress.accuracy = 8
ElseIf incorrect = 4 Then
Mathsprogress.accuracy = 7
ElseIf incorrect = 5 Then
Mathsprogress.accuracy = 6
ElseIf incorrect = 6 Then
Mathsprogress.accuracy = 5
ElseIf incorrect = 7 Then
Mathsprogress.accuracy = 4
ElseIf incorrect = 8 Then
Mathsprogress.accuracy = 3
ElseIf incorrect = 9 Then
Mathsprogress.accuracy = 2
Else
Mathsprogress.accuracy = 1
End If
End If
但由于某种未知的原因,当我使用第二种形式的变量时,它应该显示&#39; mathsprogress.accuracy&#39;在进度条中,它表示“0的值”无效,必须介于最小值和最大值之间。这使我认为从IF语句存储的值没有转移到第三种形式。第三种形式的代码是:
Private Sub pbaccuracy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbaccuracy.Click
pbaccuracy.Value = Mathsprogress.accuracy
End Sub
我知道变量设置正确,因为它在第一个表单的表单加载中设置mathsprogress.accuracy = 10时有效。我的问题可能在于我放置了大量的IF语句,有人可以解释一下吗?
由于