Найти в Дзене

№105. Динамическое меню статистика ресурсов.

В этой небольшой статье будем собирать вот такое меню статистики:

Собственно суть всего — в виде анимации баров показывать статистику текущих ресурсов.
Ну и по традиции будем делать всё максимально динамически. Мы же образовательный ресурс %)

Поехали !

Для начала создадим префаб который будет показывать название ресурса и бар, поверх которого будет указано количество ресурса в процентах.
Для отрисовки бара я взял встроенную ноду
ProgressBar, сделав её корневой нодой сцены. А для показа названия ресурса — Label.
Настраиваем по желанию.

Сцена выглядит вот так:

-2

Далее нам надо создать сцену в которой наши бары будут рисовать все нужные нам данные.

Для красоты я создал фон.
Для этого я использовал ноду
Panel с кастомным стилем. Вы, в свою очередь можете использовать что-то своё.

Для анимации прогресса в барах используем ноду Tween. Просто потому, что там есть изинги, и такие переходы выглядят гораздо более приятно чем линеиное заполнение. Впрочем, если надо оно там тоже есть.

-3

Ну и теперь приступаем к коду !

Для начала опишем все наши ресурсы в словарик.
Отдельно создадим массив который будет запоминать все созданные бары.
И одну переменную для подсчета баров при их отрисовке.

В функции ready() строим все наши бары используя цикл.
После чего запускаем функцию
graph() в которой поочередно запускаем анимацию заполнения баров.
В нашем случае твин делает анимацию перехода графика бара от нуля до нужных нам значений в течении 2 секунд.
Ну а таимер стартует отрисовку нового бара через полсекунды.
Так происходит пока количество баров меньше количества ресурсов.

Мы можем удалить ненужные ресурсы из словарика, или добавить еще что-то. Наш алгоритм это распознает, и создаст необходимое количество баров.

-4
-5

На этом всё.
Надеюсь вам был полезен этот материал.
Подписывайтесь на канал, и
вступайте в группу в ВК.
Удачи !

P.S. — В качестве домашнего задания можете попробовать создавать, подключать и удалять после отрисовки всех баров ноду Tween непосредственно через код.
#godot #gdscript #игровой движок #программирование #годо

Наука
7 млн интересуются