Класс Color (Color Class)
Перейти к навигации
Перейти к поиску
В Ren'Py есть класс Color, который может использоваться для преобразования из одного цветового пространства в другое или выполнения различных операций теории цвета. Цвета неизменны и могут использоваться везде, где можно использовать цветовой кортеж.
Цветовые кортежи функционируют в одном из трёх цветовых пространств:
- RGB – Red, Green, Blue
- HLS – Hue, Lightness, Saturation
- HSV – Hue, Saturation, Value
В качестве примера приведём некоторые вычисления, которые можно выполнить для получения необходимого цвета (всё цвета, перечисленные ниже, ярко-зеленые):
# Стандартные цвета в Ren'Py.
Color("#0f0")
Color("#00ff00")
Color((0, 255, 0, 255))
# Преобразование цвета из других цветовых пространств.
Color(hls=(.333, 0.5, 1.0))
Color(hsv=(.333, 1.0, 1.0))
# Превращает красный цвет в зелёный с помощью метода, который вычисляет новый цвет.
Color("#f00").rotate_hue(.333)
- class Color(color=None, hls=None, hsv=None, rgb=None, alpha=1.0)
- Класс Color используется для представления и управления цветами, а так же для преобразования между различными цветовыми пространствами. Он также представляет непрозрачность в виде альфа-канала.
- При создании класса Color, один из аргументов color, hls, hsv или rgb должен быть представлен (если все аргументы принимают значение None, возвращается значение None).
- color
- Цвет в одном из стандартных форматов, который Ren'Py понимает. К ним относятся:
- Объект Color.
- Кортеж (r, g, b) или (r, g, b, a), в котором все числа находятся в диапазоне от 0 до 255.
- Строка, задающая цвета в шестнадцатеричном формате, в форме "#rgb", "#rgba", "#rrggbb" или "#rrggbbaa".
- hls
- Цвет в цветовом пространстве HLS. Цвет должен быть представлен трёхэлементным кортежем, где каждый элемент находится в диапазоне от 0.0 до 1.0.
- hsv
- Цвет в цветовом пространстве HSV. Цвет должен быть представлен трёхэлементным кортежем, где каждый элемент находится в диапазоне от 0.0 до 1.0.
- rgb
- Цвет в цветовом пространстве RGB. Цвет должен быть представлен трёхэлементным кортежем, где каждый элемент находится в диапазоне от 0.0 до 1.0.
- Если указанный цвет не содержит альфа-значение, используется alpha. alpha должен находиться в диапазоне от 0.0 до 1.0.
- Объекты Color можно использовать в качестве четырехэлементных кортежей, в которых элементами являются (красный, зелёный, синий и альфа). Когда объект используется в качестве кортежа, значение каждого элемента находится в диапазоне от 0 до 255.
- Объекты Color поддерживают операторы +, - и *, представляющие покомпонентное сложение, вычитание и умножение. Некоторые виды использования этих операторов могут привести к созданию цветов с компонентами, которые не находятся в поддерживаемом диапазоне. Такие цвета не должны передаваться в другие части Ren'Py. Метод normalize может быть вызван для возврата нового цвета с компонентами, ограниченными соответствующим диапазоном.
- Объект Color имеет следующие свойства:
- hls
- Вычисляет цвет, как кортеж из трёх чисел с плавающей точкой, задающих тон, светлоту и насыщенность. Каждый элемент находится в диапазоне от 0.0 до 1.0.
- hsv
- Вычисляет цвет, как кортеж из трёх чисел с плавающей точкой, задающих тон, насыщенность и значение цвета. Каждый элемент находится в диапазоне от 0.0 до 1.0.
- rgb
- Вычисляет цвет, как кортеж из трёх чисел с плавающей точкой, задающих красный, зеленый и синий. Каждый элемент находится в диапазоне от 0.0 до 1.0.
- alpha
- Вычисляет альфа-канал (непрозрачность) данного объекта Color в виде числа от 0.0 до 1.0, где 0.0 – прозрачность, а 1.0 – непрозрачность.
- hexcode
- Вычисляет строку, содержащую шестнадцатеричный код цвета в форме #rrggbbaa или #rrggbb.
- Объекты Color используют следующие методы. Поскольку цвета неизменны, эти методы всегда вычисляют новый объект Color.
- interpolate(other, fraction)
- Выполняет интерполяцию между этим объектом Color и other в цветовом пространстве RGB, вычисляя новый объект Color в качестве результата. Если fraction составляет 0.0, результат будет таким же, как и заданный Color, при 1.0, результат совпадает с other.
- interpolate_hls(other, fraction)
- Выполняет интерполяцию между объектом Color и other в цветовом пространстве HLS, вычисляя новый объект Color в качестве результата. Если fraction составляет 0.0, результат будет таким же, как и заданный Color, при 1.0, результат совпадает с other.
- other может быть строка, объект Color или кортеж HLS.
- interpolate_hsv(other, fraction)
- Выполняет интерполяцию между объектом Color и other в цветовом пространстве HSV, вычисляя новый объект Color в качестве результата. Если fraction составляет 0.0, результат будет таким же, как и заданный Color, при 1.0, результат совпадает с other.
- other может быть строка, объект Color или кортеж HSV.
- multiply_hls_saturation(saturation)
- Умножает насыщенность выбранного цвета на saturation и вычисляет результат в виде нового объекта Color. Этот метод выполняется в цветовом пространстве HLS.
- multiply_hsv_saturation(saturation)
- Умножает насыщенность выбранного цвета на saturation и вычисляет результат в виде нового объекта Color. Этот метод выполняется в цветовом пространстве HSV.
- multiply_value(value)
- Умножает значение выбранного цвета на value и вычисляет результат в виде нового объекта Color. Этот метод выполняется в цветовом пространстве HSV.
- normalize(self)
- Возвращает нормализованную версию данного объекта Color, где все компоненты попадают в диапазоне от 0 до 255.
- opacity(opacity)
- Умножает альфа-канал данного объекта Color на opacity и вычисляет новый цвет.
- replace_hls_saturation(saturation)
- Заменяет насыщенность выбранного цвета saturation и вычисляет результат в виде нового объекта Color. Этот метод выполняется в цветовом пространстве HLS.
- replace_hls_saturation(saturation)
- Заменяет насыщенность выбранного цвета saturation и вычисляет результат в виде нового объекта Color. Этот метод выполняется в цветовом пространстве HSV.
- replace_hue(hue)
- Заменяет оттенок выбранного цвета hue, который должен находиться в диапазоне от 0.0 до 1.0. Вычисляет новый объект Color.
- replace_lightness(lightness)
- Заменяет светлоту выбранного цвета lightness и вычисляет результат в виде нового объекта Color. Этот метод выполняется в цветовом пространстве HLS.
- replace_opacity(opacity)
- Заменяет альфа-канал выбранного цвета opacity и вычисляет результат в виде нового объекта Color.
- replace_value(value)
- Заменяет значение выбранного цвета value и вычисляет результат в виде нового объекта Color. Этот метод выполняется в цветовом пространстве HSV.
- rotate_hue(rotation)
- Поворачивает оттенок выбранного цвета на rotation и вычисляет новый объекта Color. rotation представляет собой часть полного поворота, для преобразования градусов делят на 360.0.
- shade(fraction)
- Создаёт оттенок выбранного цвета, смешивая его с чёрным. fraction – это доля цвета, который находится в новом цвете. Если fraction составляет 1.0, цвет не изменяется, при 0.0, возвращается чёрный.
- Альфа-канал не изменяется.
- tint(fraction)
- Создает оттенок выбранного цвета, смешивая его с белым. fraction – это доля цвета, который находится в новом цвете. Если fraction составляет 1.0, цвет не изменяется, при 0.0, возвращается белый.
- Альфа-канал не изменяется.
Источник[править | править код]
Статья "Color Class" на английском языке.
На главную страницу | Официальная документация движка | Вернуться к началу статьи |