В этой небольшой статье будем собирать вот такое меню статистики:
Собственно суть всего — в виде анимации баров показывать статистику текущих ресурсов.
Ну и по традиции будем делать всё максимально динамически. Мы же образовательный ресурс %)
Поехали !
Для начала создадим префаб который будет показывать название ресурса и бар, поверх которого будет указано количество ресурса в процентах.
Для отрисовки бара я взял встроенную ноду ProgressBar, сделав её корневой нодой сцены. А для показа названия ресурса — Label.
Настраиваем по желанию.
Сцена выглядит вот так:
Далее нам надо создать сцену в которой наши бары будут рисовать все нужные нам данные.
Для красоты я создал фон.
Для этого я использовал ноду Panel с кастомным стилем. Вы, в свою очередь можете использовать что-то своё.
Для анимации прогресса в барах используем ноду Tween. Просто потому, что там есть изинги, и такие переходы выглядят гораздо более приятно чем линеиное заполнение. Впрочем, если надо оно там тоже есть.
Ну и теперь приступаем к коду !
Для начала опишем все наши ресурсы в словарик.
Отдельно создадим массив который будет запоминать все созданные бары.
И одну переменную для подсчета баров при их отрисовке.
В функции ready() строим все наши бары используя цикл.
После чего запускаем функцию graph() в которой поочередно запускаем анимацию заполнения баров.
В нашем случае твин делает анимацию перехода графика бара от нуля до нужных нам значений в течении 2 секунд.
Ну а таимер стартует отрисовку нового бара через полсекунды.
Так происходит пока количество баров меньше количества ресурсов.
Мы можем удалить ненужные ресурсы из словарика, или добавить еще что-то. Наш алгоритм это распознает, и создаст необходимое количество баров.
На этом всё.
Надеюсь вам был полезен этот материал.
Подписывайтесь на канал, и вступайте в группу в ВК.
Удачи !
P.S. — В качестве домашнего задания можете попробовать создавать, подключать и удалять после отрисовки всех баров ноду Tween непосредственно через код.
#godot #gdscript #игровой движок #программирование #годо