Доброго времени суток.
Имеются некоторые улучшения, каждый из которых в свою очередь имеет 5-10 уровней. Как сделать так, чтобы при покупке первого уровня он деактивировался, а второй становился доступным для приобретения?
Как вариант, можно в одно место установить, скажем, кнопки с разным уровнем, и по нажатию на каждую из них скрывать купленную и делать активной другую. Думаю, можно как-то грамотнее через массивы? :)
Храните где-нибудь текущее количество купленных улучшений данного типа :)
Например, у вас будет массив Upgrade[]
из n элементов и переменная _curentUpgrade
, которая хранит количество купленных улучшений. Тогда следующий цикл прохода по доступным кнопкам сделает то, что вам нужно:
Button[] _buttons;
int _curentUpgradeLevel;
void UpdateInteractable()
{
int count = _buttons.Length;
for (int i = 0; i < count; i++)
{
var button = _buttons[i];
button.interactable = i == _curentUpgradeLevel;
}
}
Пока улучшений не было - активна только кнопка с индексом 0 - т.е. первая в списке. При покупке вызывайте что-то вроде:
void BuyUpgrade()
{
_curentUpgradeLevel++;
UpdateInteractable();
}
Когда улучшения закончатся - все кнопки будут неактивны :)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне нужно идентифицировать если произошла ошибка в программе 1сНапример если служба выключена, то 1с выдаст ошибку (определенное окно)
Как можно сделать элемент DateTime в WPF, так чтобы не надо было вводить вручную точкиС маской какой-то например
такой вопросЕсть две БД, настроил master-detail, то есть это все работает правильно, открывает два DataGridView и при переходе по позициями, происходит...