Собственно, самый цимес этого примера - в принципе
расчета цвета для полосы здоровья. Суть в том, что изменение цвета из красного в зеленый, через желтый, требует изменения только двух каналов - 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
расчета цвета для полосы здоровья. Суть в том, что изменение цвета из красного в зеленый, через желтый, требует изменения только двух каналов - 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
Комментариев нет:
Отправить комментарий