netlib.narod.ru< Назад | Оглавление | Далее >

Знакомство с блоками и картами

Сердцем упомянутых во вступлении к главе двухмерных игр является техника рисования, известная как блочная графика (tiling). В ней вы для конструирования большой сцены используете маленькие прямоугольные группы пикселов (эти небольшие растры называются блоками — tiles). Порядок размещения, определяющий как рисуются блоки, называется картой (map). Все это показано на рис. 7.1.


Рис. 7.1. В рисовании больших двухмерных сцен блоки и карты идут рука об руку

Рис. 7.1. В рисовании больших двухмерных сцен блоки и карты идут рука об руку. Вы используете изображенные слева блоки для визуализации карты справа


На рис. 7.1 слева находятся четыре небольших пронумерованных изображения — это блоки. В середине вы видите таблицу с числами. Эта таблица задает порядок, в котором рисуются блоки (в стиле «раскрась по номерам цветов»). Для каждого элемента таблицы вы рисуете соответствующий блок, который представлен числом и продолжаете это, пока не нарисуете всю сцену. Таблица называется картой. После завершения обработки таблицы получается изображение, показанное справа.

Польза от использования блоков и карт ясна — они требуют очень мало памяти для хранения. Используя для карты формат «раскрась по номерам» вы сможете конструировать огромные (именно огромные) сцены, тратя на них очень мало памяти.

Предположим, к примеру, что используются блоки размером 16 × 16 пикселов. Предположим, что вы используете 8-разрядный цвет, тогда для набора из 256 блоков потребуется 65 536 байт памяти. Кроме того, у вас есть карта, представляющая собой массив байтов (каждый байт представляет номер рисуемого блока) размером 1024 × 1024 (1 048 576 байт). Итак, всего для хранения карты и блоков вам требуется 1 114 112 байт.

Поскольку размер каждого блока равен 16 пикселям, а размер карты — 1024 блока, в результате визуализации получается изображение размером 16 384 × 16 384 пиксела, для хранения которого требуется 268 435 456 байт. Вы видите как экономится память  вместо почти 300 Мбайт чуть больше 1 Мбайт.

ПРИМЕЧАНИЕ
Здесь мы сделали краткий обзор основ использования блоков и карт. Вы могли не понять насколько далеко простирается концепция использования блоков. Несмотря на то, что вы рисуете прямоугольные блоки, сама графика не должна быть прямоугольной, и даже не должна рисоваться на экране в виде прямоугольной решетки.

netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz