Мини-профиль
Гость, мы рады Вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
Персональная страница
Список пользователей
Правила сайта
Опросы
Обратная связь
Выход
Категории раздела
Тактики [2]
Тактики ведения боя, прокачки персонажа и т.п.
Warcraft [2]
Общая информация о Warcraft
Создание карт [7]
Уроки, советы и т.п.
Творчество [5]
Поиск
Наш опрос
Ваша любимая раса в Warcraft III?
Всего ответов: 452
Друзья сайта
Статистика
Комментариев: 69
Форум: 1/2
Фотографий: 103
Новостей: 364
Загрузок: 128
Статей: 50
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Сегодня были на сайте

Главная » Статьи » Warcraft 3 » Создание карт

Цвета в WarCraft III
1. Вступление.
Для отображения цветов в WarCraft III, мы пишем перед нужным словом специальный текст, который движок WarCraft преобразует в цвет. Чтобы полностью понять, как нужно поставить цвет, надо знать, как это работает, чтобы не обраoаться к программам, когда этого нельзя сделать.

2. Что такое цвет.
Все мы, надеюсь, знаем основные цвета:
• Красный
• Зелёный
• Синий

Когда мы ведём речь о них, мы их объединяем в RGB. Есть и другие цветовые схемы (CMYK, к примеру, но сейчас речь не о них).
В цветовой схеме RGB каждый основной цвет может быть назван каналом, иногда присутствует и четвёртый канал, который называется Альфа-канал, который отвечает за прозрачность, так что при соединении их воедино в цветовую схему, она будет называться "RGBA". Каждый из данных каналов требует 1 байт для того, чтобы компьютер мог обрабатывать цвет.
1 байт = 8 бит, а когда речь идёт о битах, тогда речь идёт и о двоичной системе (Binary), которая состоит только из двух символов - 1 и 0. Компьютер понимает язык такой системы.
Ниже дана таблица, в которой описан принцип работы двоичной системы и как из неё вычисляют число. Так как 1 байт = 8 бит, начнём с умножения на 2.

В Binary #2 каждый бит из набора равен единице, это означает, что 8 бит (1 байт) может хранить максимальное значение до 255. Правда, для того, чтобы создать 0, не нужно ни одного бита, а это означает, что область допустимых значений - от 0 до 255, это 256 слотов.
Вы можете подумать, что существует огромнейшее количество цветов и они ну никак не могут поместиться в 1 байт, и вы будете абсолютно правы. Мы даём 1 байт на каждый канал, а это 256 * 256 * 256 = 16777216 различных цветов (24-битная глубина цветов), причём это без учёта Альфа-канала, который поднимает число цветов до 4294967296 (32-битная глубина цветов).

И всё же, нам нужен более знакомый человеку путь представления этих четырёх отдельных байтов, так как для нас представлять цвета в таком виде трудно, а память компьютера более загружается. Поэтому нам нужно сжать каждый байт, используя систему счисления, которая уменьшит требовательность к памяти компьютера и сделает более понятный ввод цветового кода.
Существует много систем счисления, но чаще всего для цветов используется шестнадцатеричная (Hex).

3. Шестнадцатеричная система счисления.
Эта система называется 16-ричной, так как состоит из 16 уникальных символов. Вот они:

Если кто не знает, Decimal - десятичная система счисления.
Нех (16-ричная система, далее хекс) используется в основном для более понятного и удобного представления двоичной системы, но мы не будем работать с WarCraft III через двоичную систему. Всё, что нам надо - это представить 4 байта, как одно значение, которое будет содержать цветовой код.

В хексе строки цветового кода будут представлены двумя символами (16 * 16 = 256)
Так как RGBA требует 4 байта, хекс идеально подходит в целях сжатия. Ваш цветовой код станет длиной в 4 * 2 = 8 символов. Она изменит RGBA на RRGGBBAA.

Давайте сконвертируем шестнадцатеричное число в десятичное.


Как вы видите сами, мы смогли 3 символа представить в виде двух и скомбинировать всё в одну строку. RGBA всегда в 8 символов длиной, а так как мы убрали по одному символу из каждого значения, мы сэкономили себе байт.
Теперь вам понятно, как работает хекс. Перейдём к следующей части.

4. Цветовой код.
Научившись конвертировать код в строку, вы должны знать, как использовать то, что мы получили ранее. Мы не работали ни с двоичной, ни с десятичной системами, но зато изучили шестнадцатеричную систему и сконвертировали при помощи неё код. Теперь давайте используем полученную строку.
Везде, где только можно, цветовой код представлен в виде RRGGBBAA, но программирование за границами WarCraft III довольно непростое, а некоторые вещи даже не закончены.
В WarCraft III строка с цветовым кодом представлена в виде AARRGGBB. Но иногда Альфа-канал движком WarCraft не обрабатывается! Всё равно нам приходится писать код в полном объёме включая Альфа-канал.
Залить строку или её часть цветом очень просто - перед словом, с которого надо начать окрашивание, нужно поставить тег |c , а после последнего слова, которое требуется окрасить - тег |r . Заметьте, после тега |c тут же, без пробелов надо написать код цвета в формате AARRGGBB. Похоже на BB-коды форума, правда?

5. Несколько цветовых кодов.

Ниже даю вам табличку, которая покажет вам, какие цвета у каких игроков в WarCraft, так как это самые востребованные значения.

Автор: [DUOS]



Источник: http://warcraft3ft.info/board/podrobno_o_cvetakh_v_warcraft_iii/14-1-0-1224
Категория:Создание картАвтор: Сергей [E] [W]
Опубликовал:Goldrey [E] [W]Просмотров:1299
Опубликовано:21.06.2010, 10:08
Теги:WarCraft III, цвета
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Основной сайт проекта | Форум