如何创建体验/升级系统?

时间:2016-12-09 16:16:05

标签: vb.net

我正在创建一个DnD角色创建计划,我已经陷入了“体验/水平”领域。我想要的是每1000次体验,级别上升(所以0到999级别为0,

所以,我已经使用以下代码来获取我的位置,但是当经验(txtExperience)更改为1000(或经验更改为2000时为2)时,它不会将标签(lblLevel)更改为1

  Private Sub txtExperience_textChanged(sender As Object, e As EventArgs) Handles txtExperience.TextChanged
    If txtExperience.Text = letters Then
        lblLevel.Text = "0"
    ElseIf txtExperience.Text >= 10000 Then
        lblLevel.Text = "Maxed"
    End If
    Select Case txtExperience.Text
        Case Is <= "999"
            lblLevel.Text = "0"
        Case "1000" To "1999"
            lblLevel.Text = "1"
        Case "2000" To "2999"
            lblLevel.Text = "2"
        Case "3000" To "3999"
            lblLevel.Text = "3"
        Case "4000" To "4999"
            lblLevel.Text = "4"
        Case "5000" To "5999"
            lblLevel.Text = "5"
        Case "6000" To "6999"
            lblLevel.Text = "6"
        Case "7000" To "7999"
            lblLevel.Text = "7"
        Case "8000" To "8999"
            lblLevel.Text = "8"
        Case "9000" To "9999"
            lblLevel.Text = "9"
    End Select


End Sub

我会说实话,我不确定我是否正确使用了Select Case ...当我尝试使用If语句时(以及其他每个案例......如果......) 。)它也不起作用。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

你可以进一步简化。使用基本数学,你可以摆脱长Select Case语句:

Dim Experience As Integer = 0
If Integer.TryParse(txtExperience.Text, Experience) = True Then
    If Experience >= 10000 Then
        lblLevel.Text = "Maxed"
        Return
    End If

    lblLevel.Text = Math.Floor(Experience / 1000).ToString()
Else
    MessageBox.Show("Input must be a whole number between 0 and 10000", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If

这是我的代码的在线测试:https://dotnetfiddle.net/VtGFLx

答案 1 :(得分:0)

integerstring

之间存在差异
Select Case Integer.Parse(txtExperience.Text)
        Case Is <= 999
            lblLevel.Text = 0
        Case 1000 To 1999
            lblLevel.Text = 1
        Case 2000 To 2999
            lblLevel.Text = 2
        Case 3000 To 3999
            lblLevel.Text = 3
        Case 4000 To 4999
            lblLevel.Text = 4
        Case 5000 To 5999
            lblLevel.Text = 5
        Case 6000 To 6999
            lblLevel.Text = 6
        Case 7000 To 7999
            lblLevel.Text = 7
        Case 8000 To 8999
            lblLevel.Text = 8
        Case 9000 To 9999
            lblLevel.Text = 9
    End Select