Программирование игр для Windows. Советы профессионала


Операция - часть 4


Предположим, мы последовательно скопируем первые 16 значений в таблицу выбора цветов и создадим таким образом несколько банков, содержащих по 16 тонов с одинаковыми значениями RGB, как это показано на рисунке 7.1.

В таком случае банк 0 будет иметь диапазон от 0 до 15, банк 1 — от 16 до 31 и т. д. Каждый банк будет содержать одинаковые значения RGB, поэтому, когда данные фона примут нулевое значение, цвет объекта не изменится. Точнее:

0 OR (0-16) = (0-16)

Однако интереснее, когда исходные данные принимают ненулевое значение. Предположим, что они имеют значение 5 (или цвет 6, с точки зрения исходного изображения), в то время как данные фона равны 32 (или цвет 2). Применив К этим значениям логическую операцию OR, мы получим число 37. Это соответствует пятому цвету в третьем банке. Цвет 37 имеет такое же значение RGB, как цвет 6 или индекс 5, так как в каждый банк мы копировали по 16 цветов. (Не пытайтесь уменьшать количество цветов в игре, их и так всего 16! Но в то же время важно постараться с умом использовать таблицу выбора цвета, чтобы по возможности ускорить процесс бит-блиттинга).

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




Начало  Назад  Вперед



Книжный магазин