2015-12-16 8 views
0

Я делаю игру в VB, в которой пользователь определяет статистику для своего персонажа. На экране создания персонажа у пользователя есть 5 навыков, все установлены в 1 и имеют максимум 10 очков умения, которые они могут потратить. После того, как все точки будут использованы, пользователь не может превышать это число.Как включить/отключить использование NumericUpDown, если максимальная сумма была повторно установлена ​​

Критерии использования применяются к их соответствующим навыкам, используя поля NumericUpDown, которые связывают выбранный номер и сохраняют его в переменной. Как я могу заставить программу распознать, что предел уровня квалификации достигнут, а дополнительные точки не могут быть распределены? Подумайте о создании персонажей RPG

ответ

0

Что-то вроде этого?

Private Sub NumericUpDown1_ValueChanged(sender As System.Object, e As System.EventArgs) Handles numUD1.ValueChanged 
    If maxcheck() Then 
     numUD1.Value -= 1 
    End If 
End Sub 

ли, что для всех ваших NumericUpDown полей. Каждый из них называют функции maxcheck() ниже:

Private Function maxcheck() 
    If numUD1.Value + numUD2.Value + numUD3.Value + numUD4.Value + numUD5.Value > 15 Then '10 skill points + 5 starting points 
     MessageBox.Show("All skill points spent!") 
     Return True 
    Else 
     Return False 
    End If 
End Function 

Вы могли бы быть в состоянии сделать это в одном обработчике, но я не смог понять, как получить какое поле было изменено, когда я сделал это.

0
Public Class Form1 

    Dim totalSkillPoints As Int16 = 15 

    Private Sub nudStrength_ValueChanged(sender As Object, e As EventArgs) Handles nudStrength.ValueChanged 
     If nudStrength.Value + nudInt.Value > totalSkillPoints Then 
      nudStrength.Value -= 1 
     End If 
    End Sub 


    Private Sub numInt_ValueChanged(sender As Object, e As EventArgs) Handles nudInt.ValueChanged 
     If nudStrength.Value + nudInt.Value > totalSkillPoints Then 
      nudInt.Value -= 1 
     End If 
    End Sub 
End Class 

Вы можете просто проверить все значения вместе с величиной ваших максимальных потенциальных точек умения. Когда ваш номер просто вернет изменение путем вычитания.

Редактировать: способ создания charlie функции будет выглядеть намного чище и облегчить добавление новых навыков в будущем.