пятница, 6 марта 2020 г.

Сделал в догонку пример полосы здоровья с помощью узла ColorRect.

   Собственно, самый цимес этого примера - в принципе
 расчета цвета для  полосы здоровья. Суть в том, что изменение цвета из красного в зеленый, через желтый, требует изменения только двух каналов - R и G. Синий при этом лучше вообще выкрутить в ноль и не трогать. Если подробнее, то  градиент выглядит так:
Красный - 1.0, 0.0, 0.0
Желтый - 1.0, 1.0, 0.0
Зеленый - 0.0, 1.0, 0.0
Видно, что первую половину градиента красный остается неизменно равным 1.0, а вторую половину уменьшается до нуля, зеленый же наоборот в первую половину увеличивается до 1.0, а вторую половину остается неизменным. Код, который создает список цветов:

var colorList = []

for i in range(101):
        var R = 0.0
        var G = 0.0
        var B = 0.0
       
        if i > 50:
            R = (100 - i)*0.02
            G = 1.0
        if i < 51:
            R = 1.0
            G = i * 0.02
        colorList.append(Color(R, G, B))

КДПВ:



Как видно на картинке, я кроме colorRect  прикрутил еще ProgressBar и изменял его цвет с помощью параметра .modulate. ИМХО, получилось лучше, чем с моей самопальной полосой.


Оно же для посмотреть в динамике, так сказать:


Управление: стрелочки вправо-влево, ESC - выход.
Скачать: lifeBar.7z

Комментариев нет:

Отправить комментарий