korveen, если как в ММО, то не совсем так.
Создаётся интовый массив, в котором каждый элемент - это количество опыта для получения нового уровня.
Тут можно пойти двумя путями, обычно применяется первый:
интовый массив (правильнее всего хранить его в какой-нибудь статической переменной)
Код на абстрактном языке
Код
levels[1] = 100;
levels[2] = 300;
levels[3] = 700;
...
levels[n] = 100500;
Далее на конктретном персонаже висит компоненл с публичным методом addExp()
Код
public void addExp(int exp) {
currentexp += xpp;
if (currentexp>=levels[currentlevel+1]) {
currentlevel++;
// аллелуя новый уровень
}
}
Второй, это то, как хотите вы, отличается тем, что при
Код
if (currentexp>=levels[currentlevel+1]) {
currentlevel++;
currentexp = 0;
// соответственно при этом и в массиве хранится не суммарное значение а просто сколько надо опыта набрать
}
Обычно же онуляется параметр % сколько осталось до следующего уровня, а опыт суммируется без обнуления